공통헤더
요청과 응답에 모두 사용되는 헤더이다.
Date
HTTP 메시지가 만들어진 시각. 자동으로 만들어진다.
Content-Length
요청과 응답 메시지의 본문 크기를 바이트 단위로 표시해준다. 메시지 크기에 따라 자동으로 만들어진다.
Content-Type
Content-Language
- 사용자의 언어를 뜻한다.
- 요청이나 응답이 무슨 언어인지와는 관련 없다.
- 예를 들어 한국 사람한테 일본어를 가르치는 사이트일 경우, 페이지 언어는 일본어더라도 Content-Language는 ko-KR일 수 있다.
Content-Encoding
- Content-Encoding: gzip, deflate
- Content-Encoding은 컨텐츠 압축된 방식이다.
- 응답 컨텐츠를 br, gzip, deflate 등의 알고리즘으로 압축해서 보내면, 브라우저가 알아서 해제해서 사용한다.
- 이 외에도 다양한 압축 알고리즘이 존재한다. 컨텐츠 용량이 줄어들기 때문에 압축을 권장한다.
- 압축을 하면 요청이나 응답 전송 속도도 빨라지고, 데이터 소모량도 줄어들기 때문에 가능하면 압축을 해두는 것이 좋다.
요청 헤더
Host
- 서버의 도메인 네임이 나타나는 부분입니다(포트 포함).
- Host: www.zerocho.com
- Host 헤더는 반드시 하나가 존재해야 합니다.
User-Agent
- Host보다 더 유명한 헤더는 User-Agent이다.
- 현재 사용자가 어떤 클라이언트(운영체제와 브라우저 같은 것)를 이용해 요청을 보냈는지 나온다.
- User-Agent 헤더를 활용해서 접속자 통계를 낼 수 있다.
- User-Agent 헤더를 활용해서 IE로 접속한 사람들을 찾아낸 후, IE는 지원하지 않으니 크롬으로 접속해주세요와 같은 메시지를 표시하기도 한다.
Accept
Accept 시리즈
공통 헤더의 Content 시리즈와 대응된다. Accept로 원하는 형식을 보내면, 서버가 그에 맞춰 보내주면서 응답 헤더의 Content를 알맞게 설정한다.
-
Accept-Encoding : 원하는 컨텐츠 압축 방식
- ex) Accept-Encoding: br, gzip, deflate
-
Accept-Charset : 문자 인코딩(UTF-8 등)을 명시한다.
- ex) Accept-Charset: utf-8
-
Accept-Language : 원하는 언어
- ex) Accept-Language: ko, en-US
뭘 적어야할지 모르겠다면,
- *(와일드카드)를 적거나,
- 그냥 브라우저가 알아서 설정해서 보내는 Accept를 사용하면 된다.
Authorization
Origin
- POST같은 요청을 보낼 때, 요청이 어느 주소에서 시작되었는지를 나타낸다.
- 여기서 요청을 보낸 주소와 받는 주소가 다르면 CORS 문제가 발생한다.
Referer