웹 환경에서 데이터를 주고받을 때 지켜야 하는 프로토콜이다.
http 메세지로 바이트 형태의 모든 데이터를 주고받을 수 있다.
메세지의 구조는 시작 라인, 헤더, 공백 라인, 메세지 바디로 이루어져 있다.
클라이언트에서 요청할 때 보내는 메세지와 서버가 응답할 때 보내는 메세지가 다르다. 먼저 요청할 때의 메세지를 보면 시작 라인에는 get, post와 같은 http 메세와 쿼리 스트링이 들어간다. 쿼리 스트링에는 무엇을 요청하는 지에 대한 정보와 http 버전이 담겨 있다. 헤더에는 호스트의 주소가 들어있다. 그러고 공백 라인이라는 말 그대로 빈 줄을 만들어 한 줄 띄우고 메세지 바디가 들어간다. 리소스를 조회하는 get에서는 지원하는 데가 많이 없어 잘 사용하지 않지만, 회원 가입 같은 데이터를 보내 서버에 데이터를 저장시키는 요청 처리 메서드인 post는 메세지 바디에 저장할 데이터를 담아 보낸다.
반면 응답할 때의 메세지는 시작 라인에 http 버전과 상태 코드를 보낸다. 상태 코드는 200, 404 같은 거다. 헤더에는 내용의 길이, 형식 등 전송에 필요한 부가 정보가 들어있다. 그 다음은 똑같이 공백 라인이 오고, 메세지 바디에는 html 형식의 보낼 데이터가 들어있다.