http

HTTP란 HyperText Transfer Protocol

웹상에서 네트워크로 서버끼리 통신을 할때 규정해놓은 통신형식 또는 통신 구조이다

프론트앤드 서버와 클라이언트간의 통신에도 사용되며 백앤드서버와 프론트앤드서버 통신에도 사용된다.

통신방식

HTTP는 기본적으로 요청/응답 (request/response) 구조이다.

  • 클라이언트가 HTTP request를 서버에 보내면 서버는 HTTP response를 보내는 구조
  • 클라이언트와 서버의 모든 통신이 요청과 응답으로 이루어짐

HTTP는 stateless

  • state(상태)를 저장하지 않는다.
  • 요청이 오면 그에 응답을 하고 여러 요청/응답 끼리 연결되어 있지 않다,
  • 여러 요청과 응답의 데이터가 필요할때는 쿠키나 세션을 사용한다,

HTTP Request 구조

HTTP request 는 크게 3부분으로 구성된다

  • start line
  • headers
  • body

start line

HTTP request의 첫라인이며 3부분으로 구성되어있다.
  • HTTP Method : 해당 request가 의도한 action을 정의하는부분이며 GET, POST, PUT, DELETE 등이 있으며 GET과 POST가 주로 쓰인다.
  • Request target : request가 전송되는 목표 url 예를들어 /login
  • HTTP version : 말 그대로 버젼이다 1.0, 1.1 2.0 등이 있다.

Headers

해당 request에 대한 추가정보를 담고있는 부분이다.
Key:Value 값으로 되어있고 크게 3부분으로 구성되어있다.
자주 사용되는 header 정보
  • Host : 요청이 전송되는 target의 host url -> google.com
  • User-Agent : 요청을 보내는 클라이언트에 대한 정보
  • Accept : 해당 요청이 받을 수 있는 응답 타입.
  • Connection : 해당 요청이 끝난 후 클라이언트와 서버가 계속해서 네트워크 컨넥션을 유지할지 지시하는 부분
  • Content-Type : 해당 요청이 보내는 메시지 body의 타입
  • Content-Length : 메시지 body의 길이

Body

해당 request의 실제 메시지 내용이며 Body가 없는 요청도 많다.

HTTP Response 구조

Reponse 도 크게 3부분으로 구성되어있다.

  • Status line
  • Headers
  • Body

Status line

  • Response의 상태를 나타내주는 부분이다
  • 예)HTTP/1.1 404 Not Found

Headers

  • Response의 headers와 동일하다 다만 값들은 차이가 있다.

Body

  • Response의 body와 동일하며 모든 respose에 body가 있지는 않다.

Written by@jaeyoung-son
배운것을 기록하는 공간입니다.

GitHub