Search
Duplicate

HTTP 메세지

태그
HTTP 기본
2 more properties

HTTP 메세지 구조

http 메세지는 크게 start-line, header, empty line, message body 로 되어있습니다. 요청 메세지와 응답메세지는 구조상의 차이가 있기 때문에 아래 이미지를 보며 이해하는 것이 좋습니다.

요청 메세지

시작라인

시작라인은 크게 request line 과 status line 으로 되어있습니다. 요청메세지는 request line 이라고 합니다. request line 은 아래와 같이 구성되어 있습니다.
request line = method(GET…) + SP(공백) + request target(path…) + SP + http version + CRLF(엔터)
GET/search?q=hello&hl=ko HTTP/1.1
Plain Text
복사
request line 톱아보기
메서드(중요한 개념)
GET, POST, PUT, DELETE …
서버가 수행해야할 동작을 지정합니다. 예를들어 GET 의 경우 리소스 조회, POST 의 경우 요청 내역을 처리합니다.
request target
절대경로[?쿼리] 의 형식으로 이루어져 있습니다.

헤더

헤더의 경우 아래와 같이 구성되어 있습니다.
header-field = field-name “:” OWS field-value OWS (OWS:띄어쓰기 허용)
field-name 은 대소문자 구분이 없다.
Host: www.google.com
Plain Text
복사
Host : 는 안됩니당!

응답 메세지

시작라인

응답 메세지의 경우 시작라인은 status-line 입니다. status-line 은 아래와 같이 구성되어 있습니다.
status-line = http version + SP + status-code + SP + reason-phrase + CRLF
HTTP/1.1 200 OK
Plain Text
복사
status line 톱아보기
상태코드(중요한 개념)
http 상태코드는 요청 성공과 실패를 나타냅니다.
200 : 성공
400 : 클라이언트 요청 오류
500 : 서버 내부 오류
reason-phrase
상태코드만 나타내면 무슨 말인지 이해할 수 없기 때문에 사람이 이해할 수 있도록 짧게 상태 코드를 설명해주는 글입니다. 200 의 경우 뒤에 OK 가 붙습니다.

헤더

헤더의 경우 아래와 같이 구성되어 있습니다.
header-field = field-name “:” OWS field-value OWS (OWS:띄어쓰기 허용)
field-name 은 대소문자 구분이 없습니다.
Content-Type:text/html;charset=UTF-8 Content-Length: 3423
Plain Text
복사
응답 요청의 경우 헤더는 HTTP 전송에 필요한 모든 부가정보를 담는데에 쓰입니다. 예를 들면 바디의 내용, 바디의 크기, 압축, 인증, 요청 정보 등등이 있습니다. 표준 헤더는 종류가 많으며 필요시 임의의 헤더 추가도 가능합니다.
표준헤더 정보

메세지 바디

<html> <body> </body> </html>
Plain Text
복사
실제 전송할 데이터를 말하며, html 문서, 이미지, 영상, JSON 등등 byte 로 표현할 수 있는 모든 데이터가 가능합니다.