요청과 응답에 모두 사용되는 헤더
Date
http 메시지가 만들어진 시각
Connection
기본적으로 keep-alive
Cache-Control
Content-Length
요청과 응답 메시지의 본문 크기를 바이트 단위로 표시
Content-Type
컨텐츠의 타입(MIME)과 문자열 인코딩(utf-8 ...)을 명시
Content-Language
사용자의 언어
Content-Encoding
컨텐츠 압축된 방식, 응답 컨텐츠를 br, gzip, deflate 등의 알고리즘으로 압축해서 보내면, 브라우저가 알아서 해제해서 사용
Host
서버의 도메인 네임이 나타나는 부분(포트 포함)
User-Agent
현재 사용자가 어떤 클라이언트(운영체제와 브라우저 같은 것)를 이용해 요청을 보냈는지 확인
Accept
요청을 보낼 때 서버에 이런 타입(MIME)의 데이터를 보내달라 명시
Authorization
인증 토큰(JWT, Bearer 등)을 서버로 보낼 때 사용하는 헤더
Origin
POST같은 요청을 보낼 때, 요청이 어느 주소에서 시작되었는지를 표현 여기서 요청을 보낸 주소와 받는 주소가 다르면 CORS 문제가 발생
Referer
이 페이지 이전의 페이지 주소가 담겨 있음
Access-Control-Allow-Origin
요청을 보내는 프론트 주소와 받는 백엔드 주소가 다르면 CORS 에러가 발생.
이 때 서버에서 응답 메시지 Access-Control-Allow-Origin 헤더에 프론트 주소를 적어주어야 에러가 나지 않음.
CORS 요청 시에는 미리 OPTIONS 주소로 서버가 CORS를 허용하는지 물어봅니다.
이 때 Access-Control-Request-Method로 실제로 보내고자 하는 메서드를 알리고,
Access-Control-Request-Headers로 실제로 보내고자 하는 헤더들을 알립니다
Allow
Access-Control-Allow-Methods랑 비슷하지만, CORS 요청 외에도 적용된다는 점이 차이점
Content-Disposition
응답 본문을 브라우저가 어떻게 표시해야 할지 알려주는 헤더. inline인 경우 웹페이지 화면에 표시되고, attachment인 경우 다운로드
Location
300번대 응답이나 201 Created 응답일 때 어느 페이지로 이동할지(리다이렉트)를 알려주는 헤더.
Content-Security-Policy
다른 외부 파일들을 불러오는 경우, 차단할 소스와 불러올 소스를 여기에 명시
Age
캐시 응답 시 max-age 시간 내에서 얼마나 흘렀는지 초 단위로 표현
Set-Cookie
서버에서 클라이언트(브라우저)한테 쿠키를 저장하라고 명령하는 응답 헤더
Cookie
클라이언트가 서버한테 쿠키를 보내줄 때는 이 요청 헤더를 보냄
X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto
요청이 어디서부터 건너왔는지 알려주는 헤더.
이 때 중개 서버를 거치면서 헤더들이 변조되고, 요청을 누가 보냈는지 애매하기 때문에 X-Forwarded 헤더 시리즈는 원래 요청이 누구인지 확인 가능
X-Forwarded-For : 현재까지 거쳐온 서버의 IP 대한 정보
ex) X-Forwarded-For: 1.2.3.4, 5.6.7.8, 9.10.11.12
X-Frame-Options : frame, iframe, object 태그 안에서 페이지를 렌더링하는 것을 방지
X-Content-Type-Options : 브라우저가 서버가 보낸 컨텐츠 타입을 따르게 강제
ex) X-Content-Type-Options: nosniff