HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환하는 방식입니다.
메시지의 타입은 두 가지로,
클라이언트에서 서버로 보내는 요청 메시지와 서버에서 클라이언트로 요청에 대한 응답 메시지가 있습니다.
웹 개발자가 손수 HTTP 메시지를 텍스트로 작성하는 경우는 드물며
대부분 소프트웨어, 브라우저, 프록시, 또는 웹 서버가 그 일을 하기 때문에
오늘은 HTTP 메시지의 간단한 형식만 정리하겠습니다.
HTTP 메시지 형식
1. 시작 줄 (Start Line) : 실행되어야 할 요청, 또는 요청 수행에 대한 성공 또는 실패가 기록되어 있습니다. 이 줄은 항상 한 줄로 끝납니다.
2. Header : 해당 메시지의 메타데이터. 즉, 요청에 대한 설명, 혹은 메시지 본문(Body)에 대한 설명이 들어갑니다.
3. Blank Line : 메시지 헤더와 메시지 바디를 구분하는 빈 줄이 삽입됩니다. 해당 메시지 메타 정보의 끝을 알리는 역할입니다.
4. Body : 요청 시 필요한 내용, 응답 시 전달하려는 데이터를 실제로 담습니다. 본문의 존재 유무 및 크기는 첫 줄과 헤더에 명시됩니다.
그럼 해당 형식을 따르는 요청 메시지와 응답 메시지의 예를 들면서 추가 설명을 하겠습니다.
요청 메시지의 예
1. 시작 줄 (Start Line) : 요청에 대한 정보를 담고 있습니다. 요청에 대한 동작을 명시하고, 띄어쓰기 다음에 경로를 작성하고, 사용하는 프로토콜의 버전을 명시합니다.
해당 예시에서는 "GET" 메서드로 "/example-page" 리소스를 HTTP/1.1 버전으로 요청하고 있습니다.
2. Header : 해당 요청에 대한 추가 정보를 제공합니다. 이 헤더들은 요청의 세부 정보를 설명하거나, 서버에 대한 지시를 전달합니다.
3. Blank Line : HTTP 메시지 형식에 맞게, 헤더들과 메시지 본문을 구분하기 위한 빈 줄이 삽입됩니다.
4. Body : 요청 시에 필요한 내용을 담습니다. 위 예시와 같은 GET 메서드의 경우 Body가 생략될 수 있습니다.
응답 메시지의 예
1. 시작 줄 (Start Line) : 응답에 대한 정보를 담고 있습니다. 위의 예시에서는 사용한 프로토콜과 응답 코드 "200" 그리고 그 응답 코드에 대한 간단한 설명인 "OK"로 성공 응답을 전달하고 있습니다.
2. Header : 응답에 대한 정보와 메시지 본문(Body)의 설명을 담고 있습니다. 해당 예시에서는 메시지의 크기인 "Content-Length", 메시지 본문의 유형인 "Content-Type"으로 Body를 설명합니다.
3. Blank Line : HTTP 메시지 형식에 맞게, 헤더들과 메시지 본문을 구분하기 위한 빈 줄이 삽입됩니다.
4. Body : 클라이언트에게 보낼 실질적인 데이터를 담고 있습니다. 해당 예시에서는 HTML 문서를 담고 있습니다.
다음에는
오늘 글에 등장하는 "GET"과 같은 HTTP 메서드와
그에 따른 응답 코드를 정리하면 좋을 것 같다.
'WEB > HTTP' 카테고리의 다른 글
HTTP 응답 상태 코드 (0) | 2023.10.02 |
---|---|
HTTP Methods (0) | 2023.10.01 |
URL (0) | 2023.09.29 |