HTTP 메시지의 구조에 대해서 알아본다.
HTTP 메시지 구조는 아래와 같은 규칙을 가진다.start-line 시작 라인
header 헤더
empty line 공백 라인 (CRLF)
message body
구체적으로 HTTP 응답 메시지의 구조에 대해서 알아보자.
공식 스펙(https://datatracker.ietf.org/doc/html/rfc7230#section-3
)에 나와있는 규칙과 규칙을 따르는 예시다.
공식 스펙
HTTP-message = start-line
*( header-field CRLF )
CRLF
[ message-body ]
예시 HTTP 요청 메시지
GET /ranking/read?oid=112&aid=0003447803 HTTP/1.1
Host: www.entertain.naver.com
- 요청 메시지
- 시작 라인(start-line)
- start-line = request-line / status-line
- request-line = method SP(공백) request-target SP HTTP-version CRLF(엔터)
- HTTP 메서드 (GET: 조회)
- 종류: GET, POST, PUT, PATCH, DELETE ...
- 서버가 수행해야 할 동작 지정
- 요청 대상(/ranking/read?oid=112&aid=0003447803)
- absolute-path[?query](절대경로(?쿼리))
- 절대경로="/"로 시작하는 경로
- HTTP Version(1.1)
예시 HTTP 응답 메시지
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3423
<html><body>...</body></html>
- 응답 메시지
- 시작 라인(start-line)
- start-line = request-line / status-line
- status-line = HTTP-version SP status-code SP reason-phrase CRLF
- HTTP Version
- HTTP 상태 코드: 요청 성공, 실패를 표시
- 200, 400, 500 등
- 이유 문구: 직관적인 상태 코드 설명 글
HTTP 헤더
- header 규칙 = field-name":" OWS field-value OWS (OWS: 띄어쓰기 허용)
- header 용도 = HTTP 전송에 필요한 모든 부가 정보(메시지 바디의 내용, 메시지 바디의 크기 등)
HTTP 바디
- body 용도 = 실제 전송할 데이터
이번 장에서는 HTTP 헤더와 HTTP 바디에 대해서는 상당히 간략하게 알아보았다.
이어지는 장에서 좀 더 자세하게 알아보도록 한다.
'Infrastructure > Network' 카테고리의 다른 글
[HTTP] 메서드 - 2 (종류) (0) | 2021.06.23 |
---|---|
[HTTP] 메서드 - 1 (API URI 설계) (0) | 2021.06.23 |
[HTTP] 기본 (0) | 2021.06.22 |
[URI] URI와 WebBrowser (0) | 2021.06.22 |
[Protocol] 인터넷 통신 (0) | 2021.06.21 |