HTTP 메시지
Last updated
Last updated
HTTP 메시지는 시작 라인, 헤더, 공백 라인, 바디로 구성되어 있다. 공백 라인은 반드시 있어야 한다. 만약 보낼 바디가 없다면 공백만 넣고 끝내면 된다.
GET
, POST
등
/search?q=hello&hl=ko
absolute-path[?query]
(절대경로[?쿼리])
절대 경로란 /
로 시작하는 경로다. *
혹은 http://...?x=y
와 같은 형태도 있다.
http 버전
http 버전
클라이언트가 보낸 요청이 성공인지 실패인지 나타낸다.
200: 성공
400: 클라이언트 요청 오류
500: 서버 내부 오류
사람이 이해할 수 있는 짧은 상태 코드 설명이다.
:
+ OWS(띄어쓰기 허용)대소문자 구분이 없다.
host + 공백 + :
는 안된다.
대소문자 구분이 있다.
HTTP 전송에 필요한 모든 부가 정보를 담고 있다.
메시지 바디의 내용(html인지 등)
메시지 바디의 크기
압축 여부
인증
요청 클라이언트(브라우저) 정보
서버 애플리케이션 정보
캐시 관리 정보
etc
표준 헤더가 너무 많다.
필요하다면 임의의 헤더를 추가할 수 있다.
helloworld:
hihi
실제 전송할 데이터를 담는다.
HTML 문서, 이미지, 영상, JSON 등 byte로 표현할 수 있는 모든 데이터를 전송할 수 있다.
HTTP는 단순하다. 스펙 읽어볼만 하다. 메시지도 단순하다. 크게 성공하는 표준 기술은 단순하지만 확장 가능한 기술이다.
HTTP 메시지에 모든 것을 전송
HTTP/1.1을 기준으로 학습
클라이언트 서버 구조
무상태 프로토콜(stateless)
HTTP 메시지 구조
단순함, 확장 가능
지금은 HTTP 시대