개발소설

HTTP Messages 본문

CS/HTTP

HTTP Messages

ChaeHing 2023. 3. 27. 23:42

HTTP Messages

  • 클라이언트와 서버간 데이터가 교환되는 방식
  • 요청(Request), 응답(Response) 두 유형이 존재
  • 몇줄의 텍스트 정보로 구성되고, 구성파일, API, 기타 인터페이스에서 HTTP Messages를 자동으로 완성 한다.

메시지 구조

https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages

 

요청 (Request)

  • 클라이언트가 서버에 보내는 메시지
  • start line 
    • http의 메서드 (수행해야하는 작업)  - ex) POST
    • 요청 대상 - ex) /
      • url, 프로토콜, 포트, 도메인의 절대경로등
    • HTTP의 버전 - ex) HTTP/1.1
  • Headres
    • 기본 구조를 따른다. 헤더 이름(대소문자 구분없는 문자열), 콜론(:), 값 - 값은 헤더에 따라 다르다.
    • General headers : 메시지 전체에 적용되는 헤더, Body 데이터와 관련이 없는 헤더
    • Request headers : fetch를 통해 가져올 리소스나 클라이언트 자체에 대한 자세한 정보를 포함하는 헤더
    • Representation headers : Entity headers, body에 담긴 리소스 정보를 포함 하는 헤더 (콘텐츠 길이, MIME 타입 등)
  • Body
    • Messages 마지막에 위치, 모든 요청에 body가 필요하지 않음
      • GET, HEAD, DELETE, OPTIONS처럼 서버에 리소스를 요청하는 경우
    • POST와 PUT처럼 데이터(리소스)를 업데이트하는 경우 Body 사용

 

Response(응답)

  • Status line
    • HTTP 버전 ex) HTTP/1.1
    • 상태코드 - 요청의 대한 결과  ex) 2XX, 4XX, 5XX등
    • 상태 텍스트 - 상태코드에 대한 설명 ex) 403 Forbidden
  • Headers
    • General headers : 메시지 전체에 적용되는 헤더, Body데이터와는 관련이 없는 헤더
    • Response headers : 위치 또는 서버 자체에 대한 정보(이름, 버전 등)와 같이 응답에 대한 부가적인 정보를 갖는 헤더
    • Representation headers : Entity headers, body에 담긴 리소스의 정보를 포함하는 헤더(콘텐츠 길이, MIME타입등)
  • Body
    • messages 마지막에 위치, 모든 응답에 body가 필요하지 않는다.
    • 201,204와 같은 상태 코드를 가지는 응답에는 본문이 필요하지 않음

 

Stateless (무상태성)

  • HTTP의 큰 특징으로, HTTP는 상태를 가지지 않는다.
  • HTTP로 클라이언트와 서버가 통신을 주고 받는 과정에서, HTTP는 클라이언트나 서버의 상태를 확인 하지 않는다.

'CS > HTTP' 카테고리의 다른 글

OpenAPI  (0) 2023.03.28
REST API  (0) 2023.03.28
HTTP 상태코드 (status code)  (0) 2023.03.28
HTTP API  (0) 2023.03.27
웹 애플리케이션, SSR, CSR, CORS  (0) 2023.03.27
Comments