✔지난시간 정리 : URL을 해독하고 해독한 URL의 요구에 따라 리퀘스트 메시지를 만들어 웹서버에 전송 -> 웹서버에서 받은 메시지를 또 해독하고 결과데이터가 든 응답 메세지를 만들어 클라이언트에게 반송 -> 클라이언트는 응답 메시지를 확인 🐢
지난시간에는 전체적인 흐름을 살펴보았다면,
오늘은 HTTP포맷, Request Message & Response Message에 대해 알아봅니다.
(책.. 일관성이 없어... 리퀘스트 메시지라고 하면서 받는 메시지는 응답메시지라고 함..😦)
HTTP메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식을 말한다.
HTTP 요청과 응답의 구조는 서로 닮았으며, 구조는 아래와 같다.
Request Line
[HTTP 메서드][URL] [HTTP버전]
POST / HTTP 1.1
GET /books HTTP/1.0
HEAD /test.html?query=corn HTTP/1.1
HTTP 메시지 헤더
대소문자 구분 없는 문자열 다음에 콜론(:
)이 붙으며 그 뒤에는 헤더 값이 온다.
(각 필드 뜻은 책 참고 ㅇㅅㅇ)
메시지 본문(body)
메시지 내용은 클라이언트에서 서버에 송신하는 데이터(폼에 입력한 데이터를 POST메소드로 웹서버에 보낼 때 등에 데이터)가 들어간다.
HTTP 응답의 시작 줄은 상태 줄(status line)이라고 불리며, 다음과 같은 정보를 갖고 있다.
프로토콜 버전 : 보통 HTTP/1.1
상태 코드 : 요청의 성공 여부를 나타냄 (200, 402, 302 ... )
상태 텍스트(응답 문구) : 짧고 간결하게 상태 코드에 대한 설명을 글로 나타내어 사람들이 HTTP 메시지를 이해할 때 도움이 됨
[프로토콜 버전][상태코드] [상태 텍스트]
HTTP/1.1 404 Not Found.
메시지 헤더
메시지 본문(body)
메시지 본문은 바이너리 데이터로 취급한다.