HTTP header

1. 개념

  • HTTP 통신을 하게되면 클라리언트와 서버는 각각 헤더와 바디로 이루어진 데이터를 주고받게 된다.

  • 일반적으로는 3가지 헤더가 자동으로 생성된다.

    • 일반헤더

    • 클라이언트에서 보내는 헤더인 request header

    • 서버에서 응답하는 헤더인 response header

  • 콜론으로 구분되며, key - value 형태를 띈다.

  • HTTP header 는 굉장히 유연한 구조로 이루어져있어서 쉽게 커스텀한 데이터를 추가하기가 쉽다.

2. 실습해보기

  • 네이버의 예시를 봐보자. 네이버 메인화면 > 네트워크 > Fetch/XHR 탭으로 이동하면 count.nhn api 를 볼 수 있다.

  • general 이 일반헤더, response headers 가 서버에서 설정한 헤더, request headers 가 바로 클라이언트에서 설정한 헤더이다.

  • response 탭에는 주로 컨텐츠의 본문이 담기고, json, html, image 등이 담긴다.

  • 일반헤더

    • 요청한 url

    • 요청 매소드

    • 응답상태

    • 자원의 출처를 노출할지 말지 결정하는 referer policy 등을 포함한다.

  • 응답헤더

    • 서버가 클라이언트에게 응답할 때 자동으로 설정하거나 커스텀하게 세팅하는 헤더

    • 주로 서버의 소프트웨어 정보 등이 담기는데, 대부분의 경우, 보안상 노출되지 않도록 처리한다.

      • naver 의 경우, NWS(naver web server) 라는 것 이외에, gzip 압축 알고리즘을 쓰는 것 이외에 다른 정보는 노출되어있지 않다.

  • 요청헤더

    • 요청헤더에는 다음과 같은 정보들이 담긴다.

    • 요청 매소드, 클라이언트 OS, 브라우저 정보 등

비록 유연하게 커스텀할 수 있지만, 보통은 일반적으로 통용되는 키에 데이터를 넣어서 통신하는 것이 일반적이다.

  • 예를 들어 Cookie 값의 경우

    • request에서 Cookie : value -> response에서는 Set-Cookie : value

Last updated