TIL no.61 - WEB - 2 - HTTP

devzunky·2019년 10월 25일
0

WEB

목록 보기
2/4

WEB - 1에서
HTTP는 HTML 문서를 교환하기 위한 protocol이라는 것을
공부했습니다.

이제 HTTP의 구조와 핵심 요소에 대해 알아보겠습니다.

1. HTTP 통신 방식

  1. request / response 구조
    클라이언트가 request를 보내면
    서버는 response를 보냅니다.

  2. stateless
    HTTP 통신은 상태를 저장하지 않습니다.
    즉, 모든 통신은 독립적입니다.

요청이 오면 그에 응답을 할 뿐입니다.

2. Request

request는 크게 3부분으로 구성됩니다.

  1. start line
  2. headers
  3. body
  • start line
    해당 request가 무엇을 요구하는 요청인지 정의합니다.
    이 start line도 3부분으로 나뉘어져 있습니다.
  • HTTP Method
    GET, POST, OPTION 등
  • Request target
    request가 전송되는 uri
  • HTTP version
    HTTP의 버전, 1.0, 1.1, 2.0등
GET /search HTTP/1.1
  • headers
    request의 추가 정보를 담고 있습니다.
    Key:Value 구조로 되어 있습니다.
    예를 들어 다음과 같은 정보가 담겨 있습니다.
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도 많습니다.

3. Response

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의 실제 내용입니다.

profile
devzunky@gmail.com

0개의 댓글