Written by
xi-jjun
on
on
HTTP Message
HTTP
Inflearn 김영한
강사님의 모든 개발자를 위한 HTTP 웹 기본 지식 을 듣고 정리하는 글입니다.
HTTP 특징
- Client-Server 구조
- stateless, conectionless
- Http message 통해 통신
- 단순함, 확장가능
이번에는 Http Message 부터 다시 정리하도록 해보겠다.
Http Message
사진 출처 - 모든 개발자를 위한 HTTP 웹 기본 지식[김영한]
rfc7230 http message spec에서 위 그림에 해당하는 format에 대해 나와있다.
start-line
Start-line
=request-line
/status-line
request-line
=method
SPrequest-target
SPHTTP-version
CRLFrequest-target
=absolute-path[?query]
- SP : 공백
- CRLF : 줄바꿈(엔터)
status-line
=HTTP-version
SPstatus-code
SPreason-phrase
CRLFstatue-code
: 요청의 성공/실패를 나타냄.reason-phrase
: 사람이 이해할 수 있는 짧은 상태 코드 설명 글
Request message
GET /search?q=hello&hl=ko HTTP/1.1
Host: www.google.com
start-line
= GET /search?q=hello&hl=ko HTTP/1.1request-line
= GET /search?q=hello&hl=ko HTTP/1.1method
= GET(resource 조회 동작)request-target
= /search?q=hello&hl=koabsolute-path
= /search[?query]
= ?q=hello&hl=ko. 없어도 됨.
HTTP-version
= HTTP/1.1
Response message
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 123
<html>
<body> .... </body>
</html>
start-line
= HTTP/1.1 200 OKstatus-line
= HTTP/1.1 200 OKstatue-code
: 200. 성공reason-phrase
: OK
HTTP Header
header-field
=field-name
“:” OWSfield-value
OWS- OWS : 띄어쓰기 허용
사진 출처 - 모든 개발자를 위한 HTTP 웹 기본 지식[김영한]
-
HTTP 전송에 필요한 모든 부가정보.
Ex) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트(브라우저) 정보, 서버 애플리케이션 정보, 캐시 관리 정보…
-
표준헤더가 너무 많다. - 링크
-
필요시 임의의 header도 추가가 가능하다.
HTTP Body
사진 출처 - 모든 개발자를 위한 HTTP 웹 기본 지식[김영한]
- 실제 전송할 데이터
- HTML 문서, 이미지, 영상, JSON 등등 byte로 표현할 수 있는 모든 데이터 전송 가능
HTTP
는 단순하다. message도 매우 단순하다. → 크게 성공하는 표준 기술은 단순하지만 확장 가능한 기술이다.
정리
- HTTP message에 모든 것을 전송
- HTTP/1.1 기준으로 학습
- Client - Server 구조
- Stateless protocol
- HTTP message
- 단순함. 확장 가능