🔎 목차
- HTTP 메시지 구조 스펙
- 시작라인
- 헤더
- 메시지 바디
📌 HTTP 메시지
HTTP 메시지는 요청 메시지, 응답 메시지로 나눌 수 있다.
HTTP 메시지 구조 스펙
- start-line(시작 라인)
- header(헤더)
- CRLF(공백 라인)
- message-body
👉 start-line(시작라인)
start-line가 나타내는 것
- 클라이언트: 실행되어야 할 요청(request-line)
- 서버: 요청 수행에 대한 성공 또는 실패(status-line)
요청 메시지
method SP request-target SP HTTP-version CRLF
- SP: 공백, CRLF: 엔터
- 요청 메시지에서 시작 라인은 request-line
- method - HTTP 메서드
- request-target - 요청 대상
- 요청 대상 지정
- 요청 대상 포멧 다양함
- 보통 절대경로인 /로 시작
- 다른 유형의 경로 지정 가능
추가) 요청 대상 포멧
- origin 형식
- 끝에 ?와 쿼리 문자열이 붙는 절대 경로
- 같이 쓰는 HTTP 메서드: GET, POST, HEAD, OPTIONS
- absolute 형식
- 완전한 URL 형식
- 같이 쓰는 HTTP 메서드: GET
- authority 형식
- 도메인 이름[:포트]로 이루어진 URL 형식, 포트는 옵션
- 같이 쓰는 HTTP 메서드: CONNECT
- asterisk 형식
- OPTIONS와 함께 * 하나로 서버 전체 나타냄
- 같이 쓰는 HTTP 메서드: OPTIONS
응답 메시지
HTTP-version SP status-code reason-pharse CRLF
- 응답메시지에서 시작 라인은 status-line
- statue-code - HTTP 상태 코드
- 클라이언트가 보낸 요청 성공인지 실패인지 나타냄
- ex. 200, 404
- reason-pharse
- 상태 코드의 의미 짧게 나타냄
- ex. 200 OK
field-name":" OWS field-vlaue OWS
- OWS: 띄어쓰기 허용
- field-name과 콜론 사이 띄어쓰기는 허용하지 않음
- 헤더에 HTTP 전송에 필요한 부가 정보 담음
- 메시지 바디 내용, 크기, 등등
- 모든 메타 데이터 들어있음
추후 정리필요
👉 message-body(메시지 바디)
- 실제 전송할 데이터
- byte로 표현할 수 있는 모든 데이터 전송 가능
- HTML 문서, 이미지, 영상, JSON 등등
출처
인프런 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages