HTTP Request/Response Message 구조

JINY_EARTH·2024년 4월 26일

📤 HTTP Request message 구조

  • Request Start Line (요청 라인)
    • HTTP method (GET, POST, PUT, DELETE)
    • Request target (요청이 전송되는 목표 주소)
    • HTTP version (version에 따라 request 메시지 구조나 데이터가 다를 수 있어서 명시해야 함)
  • Request Headers (요청 헤더)
    • 해당 request에 대한 추가 정보를 담고 있는 부분
    • Key: value 형태로 구성
    • Host, User-agent, Accept, Connection, Authorization, Cookie … 등의 내용
  • Request Body (요청 본문)
    • HTTP Request가 전송하는 데이터를 담고 있는 부분
    • 전송하는 데이터가 없을 경우 body는 비어 있음 (ex. GET)
    • POST 요청의 경우, HTML 폼 데이터가 포함되어 있음

  POST /test HTTP/1.1
  Accept: application/json
  Accept-Encoding: gzip, deflate
  Connection: keep-alive
  Content-Length: 83
  Content-Type: application/json
  Host: google.com
  User-Agent: HTTPie/0.9.3
  {
      "test_id": "tmp_1234567",
      "order_id": "8237352"
  }

📥 HTTP Response Message 구조

  • Response Status Line (응답 상태 라인)
    • HTTP 프로토콜 버전
    • 상태 코드 (Status Code)
      • Response의 상태를 나타내는 코드
      • 메시지 정보 : 100 - 109
      • 요청 성공 : 200 - 206
      • 리다이렉션 : 300 - 305
      • 클라이언트 에러 : 400 - 415
      • 서버 에러 : 500 - 505
      • ex) 요청이 정상적으로 처리되었을 때 → 200 / 페이지가 이동되거나 없어졌을 때 → 404
    • 상태 메시지 (Status Text)
      • Response의 상태를 간략하게 글로 설명
      • ex) OK, Not Found, ...
  • Response Headers (응답 헤더)
    • 응답이 이루어지는 날짜 및 시간 등에 대한 일반적인 정보가 포함되어 있음
      • Date, Cache-Control, Content-Encoding, Content-type, …
    • 또한 웹서버가 웹브라우저에 응답하는 콘텐츠가 들어가 있음
      • Location, Server, Age, Referrer-policy, …
  • Response Body (응답 본문)
    • 클라이언트가 요청한 리소스 데이터

💡 내가 생각하는 주요 요소 N가지

Request Message

  • 메서드(Method) : GET(자원 요청), POST(자원 생성), PUT(자원 수정), DELETE(자원 삭제) 등의 메서드는 서버에 어떤 동작을 요청할지 결정하는지 알 수 있기 때문에 중요함

  • 경로(Path) : URL의 도메인 다음에 오는 부분으로, 서버가 어떤 경로에 대한 요청인지 인식하는 데 중요한 역할을 함

  • 헤더(Headers) : 요청에 대한 추가 정보를 통해 서버가 요청을 올바르게 처리하는 데 필수적인 정보를 제공하기 때문에

Response Message

  • 상태 코드(Status Code) : 상태 코드를 통해 클라이언트가 요청에 대해 서버의 응답 상태를 알 수 있기 때문에

  • 상태 메시지(Status Message) : 상태 메시지를 통해 서버의 응답 상태를 더 잘 이해하는 데 도움을 주기 때문에

  • 헤더(Headers) : 응답에 대한 추가적인 정보를 통해 클라이언트가 응답을 올바르게 처리하는 데 중요한 역할을 하기 때문에

profile
지니의 공간_

0개의 댓글