HTTP 개념

강은비·2021년 10월 31일
0

Network

목록 보기
4/14

📌 HTTP 기본 개념

Hypertext Transfer Protocal

  • HTTP는 인터넷 상에서 데이터를 주고 받기 위해 서버/클라이언트 모델을 따르는 통신규약을 말한다.
  • 웹에서 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로 HTTP 사용

📌 HTTP 특징

  • 상태가 없는stateless 프로토콜이다.
  • 상태가 없다라는 말은 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리된다는 것을 말한다.
  • 즉, 이전 데이터 요청과 다음 데이터 요청이 서로 독립적이다.
  • 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 이점이 생긴다.
  • HTTP는 일반적으로 TCP/IP 통신 위에서 동작하며 기본 포트는 80번이다.

📌 HTTP Request & Response

  • 클라이언트란 요청을 보내는 쪽을 말하며 웹 관점에서는 브라우저를 말한다.
  • 서버란 요청을 받는 쪽을 말하며 일반적으로 데이터를 보내주는 원격지의 컴퓨터를 의미한다.

✨ HTTP Request 구조

  • Start line: http method, request target, http version
  • headers: 해당 request에 대한 추가 정보
    • key: value
    • Host: 요청이 전송되는 target의 host url
    • User-agent: 요청을 보내는 클라이언트에 대한 정보 (예를 들어, 웹 브라우저에 대한 정보)
    • Accept: 해당 요청이 받을 수 있는 응답 타입
    • Connection: 해당 요청이 끝난 후에 클라이언트와 서버가 계속해서 네트워크 커넥션을 유지할 것인지 아니면 끊을 것인지에 대한 지시하는 부분
    • Content-Type: 해당 요청이 보내는 메시지 body의 타입. 예를 들어, JSON을 보내면 application/json
    • Content-Length: 메시지 body의 길이
  • body: 해당 request의 실제 메시지 및 내용. Body가 없는 request도 있다.

✨ HTTP Response 구조

  • Status line
    • response의 상태를 간략하게 나타내주는 부분
    • http version, status code, status message로 구성됨.
  • Headers: Response의 headers와 동일하지만, response에서만 사용되는 header 값들이 있다.
    • 예를 들어 response에서는 User-Agent 대신에 Server 헤더가 사용 된다.
  • Body: Response의 body와 동일하며, 데이터를 전송할 필요가 없을 경우 body가 비어있다.

0개의 댓글