1. HTTP 헤더 필드
- HTTP 프로토콜의 리퀘스트와 리스폰스에는 반드시 메시지 헤더가 포함되어 있다.
- HTTP 헤더 필드는 헤더 필드 명 : 필드 값 으로 이루어져 있다.
- 4종류의 HTTP 헤더 필드 : General Header Fields / Request Header Fields / Response Header Fields / Entity Header Fields
- HTTP 헤더 필드는 캐시/비캐시 프록시의 동작을 정의하기 위해 2가지 카테고리로 분류되어 있다. (End-to-end 헤더, Hop-by-hop 헤더)
1) Cache-Control
- 디렉티브로 불리는 명령을 사용하여 캐싱 동작을 지정.
- public/private : 다른 유저에게 돌려줄 수 있는 캐시를 해도 좋은지 여부
- no-cache : 캐시된 리스폰스 받지 않겠다는 리퀘스트 & 리소스 유효성 재확인하지 않고는 못 쓴다는 리스폰스
- no-store : 기밀정보 있음.
- max-age : 유효성 재확인 필요없이 리소스 캐시해두는 최대 시간.
- min-fresh : 적어도 지정된 시간은 최신 상태의 것을 반환하도록 캐시 서버에 요구
- max-stale : 캐시된 리소스의 유효 기한이 끝났더라도 받아들일 수 있음.
- only-if-cached : 로컬 캐시에 타겟 리소스 있는 경우만 리스폰스 반환. 즉, 캐시 서버에서 리스폰스의 리로드와 유효성 재확인하지 않도록 요구.
- must-revalidate : 리스폰스 캐시의 유효성을 오리진 서버에 조회 요구
- proxy-revalidate : 모든 캐시 서버에 대해 반드시 유효성 재확인.
- no-transform : 캐시가 엔티티 바디 미디어 타입 변경하지 않도록.
2) Connection
- 프록시에 더 이상 전송하지 않는 헤더 필드 지정 / 지속적 접속 관리
3) Date
4) Trailer
- 메시지 바디 뒤에 기술된 헤더 필드를 미리 전달. Chunk Transfer Encoding을 사용하는 경우 사용 가능.
5) Transfer-Encoding
6) Upgrade
- HTTP 및 다른 프로토콜의 새 버전이 통신에 사용되는 경우.
7) Via
8) Warning
1) Accept
- 유저 에이전트에 처리할 수 있는 미디어 타입과 미디어 타입의 상대적 우선순위를 전달.
2) Accept-Charset
- 유저 에이전트에 처리할 수 있는 문자셋, 우선순위 전달.
3) Accept-Encoding
- 유저 에이전트에 콘텐츠 코딩, 우선순위 전달.
4) Accept-Language
- 유저 에이전트에 자연어의 세트, 우선순위 전달.
5) Authorization
6) Expect
7) From
8) Host
- 리퀘스트한 리소스의 인터넷 호스트와 포트 번호 전달.
- 같은 IP 주소로 복수의 도메인 적용된 경우, Host 헤더 파일에 리퀘스트를 받을 호스트명 명확하게 적어야 함.
9) If-Match
- 서버 상의 리소스를 특정하기 위해 엔티티 태그(ETag) 값을 전달.
10) If-Modified-Since
- 리소스가 갱신된 날짜가 필드 값보다 새롭지 않다면 리퀘스트를 받아들임.
11) If-None-Match
12) If-Range
- 지정된 필드값과 리소스의 값이 일치하면 Range 리퀘스트로 처리하고 아니면 리소스 전체를 반환함.
13) If-Unmodified-Since
- If-Modified-Since의 반대. 지정된 리소스가 필드 값 날짜 이후에 갱신되지 않았으면 리퀘스트 받음.
14) Max-Forwards
- TRACE / OPTIONS 메소드에 의한 리퀘스트를 할 때 전송해도 좋은 서버 수의 최대치를 10진수 정수로 지정.
15) Proxy-Authorization
- 프록시 서버 인증에 필요한 클라이언트 정보 전달.
16) Range
17) Referer
- 리퀘스트가 발생한 본래 리소스의 URI 전달.
18) TE
- 리스폰스로 받을 수 있는 전송 코딩의 형식과 우선순위.
19) User-Agent
- 리퀘스트 생성한 브라우저와 유저 에이전트의 이름 전달.
1) Accept-Ranges
2) Age
- 얼마나 오래 전에 오리진 서버에서 리스폰스가 생성되었는지.
3) ETag
- 엔티티 태그. 리소스를 특정하기 위한 문자열 전달.
- 리소스 URI는 같지만 리소스 갱신하면 ETag값 바뀜.
4) Location
- 리스폰스 수신자에 대해 Request-URI 이외의 리소스 액세스 유도.
5) Proxy-Authenticate
- 프록시 서버에서의 인증 요구 클라이언트에 전달.
6) Retry-After
- 클라이언트가 일정 시간 후에 리퀘스트 다시 시행해야 하는지.
7) Server
8) Vary
- 캐시를 컨트롤하기 위함. 오리진 서버가 프록시 서버에 로컬 캐시를 사용하는 방법에 대한 지시.