JavaScript

HTTP 구조

히찔 2022. 6. 17. 16:25

 

HTTP 구조

 

HTTP란?

  • HyperText Transfer Protocol 의 약자로 하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 통신 규약이다.
  • 웹상에서 네트워크로 서버끼리 통신을 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 "통신 형식" 혹은 "통신 구조" 라고 보면 된다. (프론트-백 통신에 사용)

 

HTTP 통신 방식

  • HTTP는 기본적으로 요청/응답 (request/response) 구조로 되어있다.
  • 클라이언트가 HTTP request를 서버에 보내면 서버는 HTTP response를 보내는 구조로 클라이언트와 서버의 모든 통신이 요청과 응답으로 이루어 진다.
  • HTTP는 요청이 오면 그에 응답을 할뿐, 여러개의 요청/응답 끼리 연결되어 있지 않다. (stateless 하다.)
  • 각각의 요청/응답은 독립적인 요청/응답이므로 여러 요청과 응답의 진행 과정이나 데이터가 필요할때는 쿠키나 세션 등등을 사용하게 된다.

 

HTTP Request 구조

  • Start Line
    1. HTTP Method - 요청시 보내는 HTTP 메소드 형태 (GET, POST, PUT, PATCH, DELETE, 기타)
    2. Request Target - 어디로 보내는지에 대한 URI
    3. HTTP Version - HTTP 버전

💡 URI 란?

통합 자원 식별자로 정보 리소스를 고유하게 식별하고 위치를 지정할 수 있다.

 


  • Headers
    1. Host - 호스트 URL
    2. User-Agent - 클라이언트 정보
    3. Accept - 서버에서 해당 타입에 데이터를 보내달라고 요청하는 헤더
    4. Authorization - 인증 토큰을 서버로 보낼 때 사용하는 헤더
    5. 기타 (Connect, Content-type, Content-Length 등)
  • Body
    해당 Request의 실제 메시지/내용이다. Text, JSON 메시지 뿐만 아니라
    이미지, 비디오, HTML, 문서 등 다양한 형식이 들어올 수 있다.
    💡 대부분의 GET Request Body가 없다! 

 

HTTP Response 구조

  • Start Line
    1. HTTP Version - 응답 받은 메세지의 HTTP 버전 정보 (HTTP/1.1)
    2. Status Code - 응답 코드 (200)
    3. Status Text - 응답 상태 (OK)
  • Headers
    • Date - 응답 받은 일시
    • Content-Type - 응답 데이터의 타입
    • Cache-Control - 캐시용 헤더
    • 기타 등등

  • Body
    요청에 대한 응답 값
반응형