[2022.10.07] 네트워크(3) - HTTP Messages

Reyna·2022년 10월 7일
0

TIL

목록 보기
3/16

📃 HTTP Message

HTTP Message란, 클라이언트와 서버 사이에서 데이터가 교환되는 방식을 말한다. 요청(requests)응답(responses) 두 가지 유형이 있다.

HTTP Message의 구조

이미지 출처 https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages

1. start line

  • 요청이나 응답의 상태를 나타낸다.
  • 항상 첫 번째 줄에 위치한다.
  • 응답에서는 status line 이라고 한다.

2. HTTP headers

  • 요청을 지정하고, 메시지에 포함된 본문을 설명하는 헤더의 집합을 말한다.
  • 클라이언트와 서버가 요청, 응답으로 부가정보를 주고받을 수 있게 해준다.
  • start line 과 함께 헤더라고 한다.

3. empty line

  • 헤더와 본문을 구분하는 빈 줄이다.

4. body(payload)

  • 요청, 응답과 관련된 데이터, 문서를 포함한다.
  • 요청, 응답 유형에 따라 선택적으로 사용한다.

Stateless

  • 무상태성은 HTTP의 가장 큰 특징이다.
  • HTTP가 클라이언트나 서버의 상태를 확인하지 않는 것을 말한다.

📃 HTTP Requests

HTTP Requests?

클라이언트가 서버에게 보내는 요청 메시지를 말한다.

start line

start line은 세 가지 요소로 이루어진다.

1. HTTP 메서드

  • GET, POST, PUT 처럼 서버가 수행해야 할 동작을 말한다.

2. 요청 대상

  • 요청 형식은 HTTP 메서드에 따라 달라진다.
    • origin 형식
      '?'와 쿼리 문자열이 붙는 절대 경로 / GET, POST 등의 메서드와 사용
    • ablsolute 형식
      완전한 URL 형식 / GET메서드와 사용
    • authority 형식
      도메인 이름과 포트 번호로 이루어진 URL의 일부분 / CONNECT와 함께 사용
    • ablsolute 형식
      * 하나로 서버 전체를 표현 / OPTIONS와 사용

3. HTTP 버전

Headers

  • 요청 헤더는 General headers, Request headers, Representation headers로 이루어진다.

  • General headers : 메시지 전체에 적용되는 헤더

  • Request headers : fetch를 통해 가져올 리소스나 클라이언트의 정보 등을 포함한다.

  • Representation headers : body에 담긴 리소스의 정보를 포함한다.

Body

  • 모든 요청에 필수적으로 포함되지는 않는다.
  • 예를 들어, GET, DELETE 등은 Body가 필요하지 않다.
  • Body의 종류로는 단일-리소스 본문, 다중-리소스 본문이 있다.

📃 HTTP Responces

HTTP Responces?

  • 서버가 클라이언트에게 보내는 응답이다.

start line(status line)

1. 현재 프로토콜의 버전

  • HTTP / 1 . 1

2. 상태 코드

  • 200 , 204 등등

3. 상태 텍스트 - 상태 코드 설명

HTTP / 1.1 404 Not Found

Headers

  • 요청 헤더와 동일한 구조이다.
  • 응답 헤더의 경우 Request headers 대신 Response headers가 있는데, 서버 정보나 응답에 대한 부가 정보를 포함한다.

Body

  • 202, 204 같은 상태 코드를 가지는 응답은 본문이 필요하지 않다.
  • 요청 헤더와 마찬가지로 단일-리소스 본문과 다중-리소스 본문이 있다.
    단일-리소스 본문의 경우 길이를 모르는 단일 파일로 구성된 본문의 경우 Transfer-Encoding:chunked로 되어 있고, 파일은 chunk로 나뉘어 인코딩되어 있다.

    (chunk...)

0개의 댓글