WEB - 1에서
HTTP는 HTML 문서를 교환하기 위한 protocol이라는 것을
공부했습니다.
이제 HTTP의 구조와 핵심 요소에 대해 알아보겠습니다.
request / response 구조
클라이언트가 request를 보내면
서버는 response를 보냅니다.
stateless
HTTP 통신은 상태를 저장하지 않습니다.
즉, 모든 통신은 독립적입니다.
요청이 오면 그에 응답을 할 뿐입니다.
request는 크게 3부분으로 구성됩니다.
1. start line
2. headers
3. body
GET /search HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: application/json
Content-Length: 257
Host: google.com
User-Agent: HTTPie/0.9.3
자주 사용되는 header 정보들은 다음과 같습니다.
Host
요청이 전송되는 target의 host url
User-Agent
요청을 보내는 클라이언트의 대한 정보 예를 들어, 웹브라우저에 대한 정보.
Accept
해당 요청이 받을 수 있는 response의 type
Connection
해당 요청이 끝난후에 클라이언트와 서버가 계속해서 네트워크 컨넥션을 유지 할것인지 아니면 끊을것인지에 대해 지시하는 부분.
Content-Type
해당 요청이 보내는 메세지 body의 type.
예를 들어, JSON을 보내면 application/json.
Content-Length
메세지 body의 길이.
body
해당 request의 실제 내용입니다
body가 없는 request도 많습니다.
response도 3부분으로 나뉩니다.
1. status line
2. headers
3. body
status line
response의 상태를 보여줍니다.
이 또한, 3부분으로 나뉩니다.
HTTP version
HTTP의 버전
status code
응답 상태를 나타내는 코드
status text
응답 상태를 설명해주는 text
HTTP/1.1 404 Not Found
headers
response에 대한 추가정보를 담고 있습니다.
body
response의 실제 내용입니다.