HTTP Request, Response메시지 구조

김성환·2024년 3월 10일
0

CS(ComputerScience)

목록 보기
3/7

이전글에서 Http 통신은 서버에 요청과 응답을 받는다고 말하였습니다. 그렇다면 해당 요청과 응답에 대한 포멧은 어떻게되있고 각 속성은 어떤정보를 가지고 있을까요?

Request Message

Request Message는 RequstLine(요청 라인), Header, BodyMessage(본문)으로 나눌수있습니다.

Request Line ( 요청 라인 )

시작 줄은 다음과 같이 세 가지 요소로 이루어져 있습니다.

  • 요청 메서드(Method): 요청의 종류를 나타내는 부분입니다. 가장 일반적으로 사용되는 메서드로는 GET, POST, PUT, DELETE 등이 있습니다.

  • 요청 대상(Target): 요청이 전송되는 대상 URL(Uniform Resource Locator)입니다. 프로토콜, 포트, 도메인의 절대 경로로 나타낼 수도 있으며 이들은 요청 컨텍스트에 의해 특정지어 집니다.

  • HTTP 버전: 사용되는 HTTP 프로토콜의 버전을 나타냅니다.

예시: GET /index.html HTTP/1.1

  • 요청 메서드 : GET
  • 요청 대상 : /index.html
  • HTTP 버전 : HTTP/1.1

Headers ( 헤더 )

헤더는 추가 정보를 제공하는데 사용됩니다. 일반적으로 헤더는 key-value 쌍으로 이루어져 있습니다.
HTTP 헤더는 일반적으로 일반 헤더(General Headers), 요청 헤더(Request Headers), 그리고 표현 헤더(Representation Headers)다음 세 가지 유형으로 분류할수있습니다.

  • 일반 헤더(General Headers) : 일반 헤더는 요청이나 응답의 메타정보에 관련된 헤더입니다. 요청과 응답 모두에 적용될 수 있습니다.
    이러한 헤더는 요청이나 응답의 메시지 바디의 정보가 아닌, 메시지의 전반적인 특성을 나타냅니다.
    예시로는 Cache-Control, Connection, Date, MIME-Version 등이 있습니다.

  • 요청 헤더(Request Headers) : 요청 헤더는 클라이언트가 서버에게 전달하는 요청 메시지에 관련된 헤더입니다.
    클라이언트가 서버에게 요청을 보낼 때, 요청의 성격이나 클라이언트에 대한 추가 정보를 전달하기 위해 사용됩니다.
    예시로는 Accept, Accept-Encoding, Host, User-Agent 등이 있습니다.

  • 표현 헤더(Representation Headers) : 표현 헤더는 HTTP 메시지의 표현(Representation)에 관련된 헤더입니다. 주로 응답 메시지에 사용됩니다.
    응답 본문의 특성이나 형식을 설명하거나 제어하기 위해 사용됩니다.
    예시로는 Content-Type, Content-Encoding, Content-Length, Last-Modified 등이 있습니다.

Body (본문)

요청 본문은 요청과 관련된 데이터를 포함합니다. 주로 POST 메서드를 사용할 때 데이터를 보낼 때 사용됩니다. GET 요청에서는 일반적으로 본문이 없습니다.
본문의 형식은 Content-Type 헤더에 따라 다르며, 텍스트, JSON, XML, 바이너리 등의 형식이 될 수 있습니다

{
"username": "john_doe",
"password": "secure_password"
}

Response Message

HTTP 응답 메시지는 클라이언트에게 서버의 응답을 전달하는 메시지입니다. Status Line(상태 라인), Headers, Body 로 이루어져있습니다. Response Message와 매우 유사한 구조입니다.

  • 요청 라인,상태 라인: 요청 메시지의 요청 라인에는 요청 메서드(예: GET, POST)와 요청 대상 URL이 포함됩니다. 응답 메시지의 상태 라인에는 상태 코드와 상태 메시지가 포함됩니다.

  • 헤더(Headers): 요청 메시지의 헤더에는 일반적으로 클라이언트와 요청과 관련된 정보가 포함됩니다. 반면, 응답 메시지의 헤더에는 일반적으로 서버와 응답과 관련된 정보가 포함됩니다. 예를 들어, 응답 메시지의 헤더에는 Content-Type, Content-Length, Server 등이 포함될 수 있습니다.

  • 본문(Body): 요청 메시지의 본문은 클라이언트가 서버로 전송하는 데이터를 포함합니다. 반면, 응답 메시지의 본문은 서버가 클라이언트로 전송하는 데이터를 포함합니다. 요청 메시지에서 본문은 종종 POST 또는 PUT 요청과 함께 사용되며, 응답 메시지의 본문은 일반적으로 서버의 응답 데이터를 포함합니다.


reference
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

0개의 댓글

관련 채용 정보