HTTP 메세지

구콩·2022년 5월 9일
0

HTTP

목록 보기
3/4
post-thumbnail
  • http 메세지 골격

01. http Request 메시지 구조

1) start line

  • Http Method : 자원에 대한 행위(수행하고자 하는 동작)를 정의한다.
    GET, POST, DELETE, PUT

  • Request Target : HTTP Request가 전송되는 목표 주소(URI)
    (ex: /api/v1/articles, /test.html?query=alibaba, 쿼리 스트링이 들어간다.)

  • Http Version
    (ex: HTTP/1.1)

2) header

✔ header에는 http request 그 자체에 대한 정보가 담겨 있으며, key:value 형태로 이루어져 있다.

  • HOST: 요청하려는 서버의 호스트 URL

  • User-Agent: 요청을 보내는 클라이언트 정보(웹 브라우저에 대한 정보)

  • Accept: 해당 요청이 받을 수 있는 응답 데이터 타입
  • Authorization: 인증 토큰을 서버로 보낼 때 쓰이는 header

  • Origin: 서버로 POST 요청을 보낼 때, 요청이 어느 주소에서 시작되었는지 나타내는 값이다. 이 값으로 요청을 보낸 주소와 받는 주소가 다르면 CORS(Cross-Origin Resource Sharing) 에러가 발생한다.

  • Cookie: key-value값으로 표현된 쿠키

3) body

  • 해당 request의 실제 메세지 내용

  • GET은 없는 경우가 많다.

  • POST 요청일 경우, HTML form 데이터가 포함되어 있다.


02. http Response 메시지 구조

1) start line

  • Http version

  • Status Code : 특정 http 요청이 성공적으로 완료 되었는지 여부를 나타낸다.

📌 status code 종류:

  • 1XX : informational responses
  • 2XX : Successful responses
  • 3XX : Redirection messages
  • 4XX : Client error responses (클라이언트 잘못)
  • 5XX : Server error responses (서버 잘못)
  • Status text
    (ex: OK)

2) header

  • Location : 301, 302 상태 코드일 때만 볼 수 있는 header로, 서버의 응답이 다른 곳에 있다고 알려주면서 해당 위치(URI)를 지정해준다.

  • Server : 웹 서버의 종류

  • Referrer-policy : 서버 referrer 정책을 알려주는 값
    (ex: origin, no-referrer, unsafe-url)

  • WWW-Authenticate : 사용자 인증이 필요한 자원을 요구할 시에, 서버가 제공하는 인증 방식

  • Proxy-Authenticate : 요청한 서버가 proxy 서버인 경우, 유저 인증을 위한 값이다.

3) body

  • 요청에 대한 응답 값

  • 데이터를 전송할 필요가 없을 경우, body가 비어있게 된다.


📌 http Request & Response 공통 header

  • Cache-Control(공통): 캐시 제어
  • Date(공통): 현재 시간
  • Accept: 해당 요청이 받을 수 있는 응답 데이터 타입
  • Connection(공통): 해당 요청이 끝난 후 클라이언트와 서버가 계속해서 네트워크 커넥션을 유지할 지, 끊을 지에 대해 지시하는 부분
    ❗ HTTP/1.1은 keep-alive로 연결 유지하는 것이 디폴트다.
  • Content-type(공통): 해당 요청이 보내는 메세지의 Body 타입
    (ex: json이라면 application/json)
  • Content-Length(공통): 메세지 body의 길이

0개의 댓글