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