[기본 개념] HTTP

찐찐·2022년 3월 28일
0

해당 글은 전공 수업에서 배운 내용과 추가로 찾은 내용을 결합하여 작성하였습니다. 틀린 부분이 많을 수도...

HTTP

HTTP(Hypertext transfer protocol)
: 웹에서 사용하는 application layer의 protocol(통신 규약)
웹에서 이뤄지는 모든 데이터 교환의 기초고 client-server 구조를 갖는다.

  • client가 HTTP를 사용해 request를 보내면, server가 HTTP를 사용해 response를 보낸다.
  • transport layer에선 TCP를 사용한다. server와 client는 TCP connection을 맺어서 통신하고, 80번 포트를 사용한다.

statless한 protocol이다. 즉, 이전 client의 request에 대한 어떠한 정보도 저장하지 않는다. (매번 필요한 정보를 함께 실어서 보내야 한다.)

  • 하지만 HTTP cookie를 사용해 상태를 저장할 수 있다.

두 가지 타입: Non-persistent vs Persistent

Non-persistent

한 번에 하나의 object만 보내진다.

  • 여러 개의 object를 받고 싶다면 여러 번의 TCP 연결이 필요하다.

persistent

한 번의 TCP 연결로 여러 개의 obejct를 주고 받을 수 있다.

  • header의 connection에 keep-alive를 적어 사용할 수 있다.

HTTP message

request

request line + header line + body로 이루어져있다.

  • method는 POST, GET, HEAD, PUT 등 다양하다.

GET, HEAD method는 body를 실어보낼 수 없다.

  • GET은 URL에 querystring으로 데이터를 실어보낼 수 있다.
  • HEAD는 오직 header만 요청했으므로 데이터가 필요 없다.

response

status line + header line + body(data)로 이루어져있다.

  • body에는 client가 request한 object가 들어있다.

참고

profile
백엔드 개발자 지망생

0개의 댓글