HTTP 메시지의 분류
- HTTP 요청 메시지와 HTTP 응답 메시지로 구분한다.
start-line 시작 라인
header 헤더
empty line 공백 라인(CRLF)
message body
HTTP 요청 메시지 예시
GET /search?q=hello&hl=ko HTTP/1.1
Host: www.google.com
message body
HTTP 응답 메시지 예시
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 4432
message body
HTTP 메시지의 구조
시작 라인
- 요청 메시지
GET /search?q=hello&hl=ko HTTP/1.1
요청 메시지에서는 시작 라인이 request-line 이라고 불린다.
request-line = HTTP 메서드
(SP:공백) 요청대상
(SP:공백)HTTP버전
CRLF(엔터)
- HTTP메서드 : GET, POST, PUT, DELETE 등
- 요청 대상 : “/”로 시작하는 절대경로 (/search?q=hello&hl=ko)
- HTTP 버전 : HTTP/1.1
- 응답 메시지
HTTP/1.1 200 OK
응답 메시지에서는 시작 라인이 status-line 이라고 불린다.
status-line = HTTP 버전
(SP)상태 코드
(SP)상태 문구(reason-phrase)
CRLF(엔터)
- HTTP 상태코드 : 요청 성공, 실패를 나타내준다.
- 200 : 성공
- 300 : 리다이렉션
- 400 : 클라이언트 요청 오류
- 500 : 서버 내부 오류
- 상태 문구 : 상태 코드에 대한 짧은 문구 (OK)
HTTP 헤더
- 요청 메시지
Host: www.google.com
- 응답 메시지
Content-Type: text/html;charset=UTF-8
Content-Length: 4432
header-field = 필드 이름
":" (OWS: 띄어쓰기 허용) 필드 값
(OWS)
- HTTP 전송에 필요한 모든 부가 정보가 들어있다.
- 필요시 임의의 헤더를 추가
HTTP 메시지 바디
- 실제 전송할 데이터
- HTML 문서, 이미지, 영상, JSON 등등 byte로 표현할 수 있는 모든 데이터 전송 가능
참고
https://www.inflearn.com/course/http-웹-네트워크/dashboard
반응형