##본 포스팅은 '그림으로 배우는 Http & Network Basic - 우에노 센'을 읽고 쓴 요약/정리 글입니다.
HTTP 헤더
HTTP 프로토콜의 리퀘스트와 리스폰스에는 반드시 메시지 헤더가 포함되어있는데,
메시지 헤더에는 클라이언트나 서버가 리퀘스트나 리스폰스를 처리하기위한 정보가 들어있다.
*메시지 바디에는 사용자와 리소스를 필요로 하는 정보가 있다.
- 리퀘스트 메시지 : 메소드, URI, HTTP 버전, HTTP 헤더 필드 등으로 구성
- 리스폰스 메시지 : HTTP 버전, 상태코드와 설명, HTTP 헤더 필드 등으로 구성
HTTP 헤더 필드
HTTP 헤더 필드는 HTTP 메시지를 구성하는 요소의 하나이다.
메시지 바디의 크기나 사용하고 있는 언어, 인증 정보 등을 브라우저나 서버에 제공하기 위해 사용되고 있다.
1. HTTP 헤더 필드의 구조
헤더 필드 명 : 필드 값
예를 들어,
Content-Type:text/html
*헤더 필드가 중복된 경우엔, 브라우저에 따라 다른 동작을 한다. 최초의 헤더 필드를 우선적으로 처리하기도 하고, 그게 아닐 수도 있다.
2. 4종류의 HTTP 헤더 필드
HTTP 헤더 필드는 그 용도에 따라 다음과 같이 4종류로 분류된다.
(HTTP/1.1 기준)
- 일반적 헤더 필드(General Header Fields)
리퀘스트 메시지와 리스폰스 메시지 둘 다 사용되는 헤더
헤더 필드 명 설명 Cache-Control 캐싱 동작 지정 Connection Hop-by-hop 헤더, 커넥션 관리 Date 메시지 생성 날짜 Pragma 메시지 제어 Trailer 메시지의 끝에 있는 헤더의 일람 Transfer-Encoding 메시지 바디의 전송 코딩 형식 지정 Upgrade 다른 프로토콜에 업그레이드 Via 프록시 서버에 관한 정보 Warning 에러 통지 - 리퀘스트 헤더 필드
클라이언트 측에서 서버 측으로 송신된 리퀘스트 메시지에 사용되는 헤더
헤더 필드 명 설명 Accept 유저 에이전트가 처리 가능한 미디어 타입 Accept-Charset 문자셋 우선 순위 Accept-Encoding 콘텐츠 인코딩 우선 순위 Accept-Language 언어 우선 순위 Authorization 웹 인증을 위한 정보 Expect 서버에 대한 특정 동작의 기대 From 유저의 메일 주소 Host 요구된 리소스의 호스트 If-Match 엔티티 태그의 비교 If-Modified-Since 리소스의 갱신 시간 비교 If-None-Math 엔티티 태그의 비교 If-Range 리소스가 갱신되지 않은 경우에 엔티티의 바이트 범위의 요구를 송신 If-Unmodified-Since 리소스의 갱신 시간 비교 Max-Forwards 최대 전송 홉 수 Proxy-Authorization 프록시 서버의 클라이언트 인증을 위한 정보 Range 엔티티 바이트 범위 요구 Referer 리퀘스트중의 URI를 취득하는 곳 TE 전송 인코딩의 우선 순위 User-Agent HTTP 클라이언트의 정보 - 리스폰스 헤더 필드
서버 측에서 클라이언트 측으로 송신한 리스폰스 메시지에 사용되는 헤더
헤더 필드 명 설명 Accept-Ralnge 바이트 단위의 요구를
수신할 수 있는지 없는지 여부Age 리소스의 지정 경과 시간 Etag 리소스 특정하기 위한 정보 Location 클라이언트를 지정한 URI에 리다이렉트 Proxy-Authenticate 프록시 서버의 클라이언트 인증을 위한 정보 Retry-After 리퀘스트 재시행의 타이밍 요구 Server HTTP 서버 정보 Vary 프록시 서버에 대한 캐시 관리 정보 WWW-Authenticate 서버와 클라이언트 인증을 위한 정보 - 엔티티 헤더 필드
리퀘스트 메시지와 리스폰스 메시지에 포함된 엔티티에 사용되는 헤더
헤더 필드 명 설명 Allow 리소스가 제공하는 HTTP 메소드 Content-Encoding 엔티티 바디에 저기용되는 콘텐츠 인코딩 Content-Language 엔티티의 자연어 Content-Length 엔티티 바디의 사이즈(단위 : 바이트) Content-Location 리소스에 대응하는 대체 URI Content-MD5 엔티티 바디의 메시지 다이제스트 Content-Range 엔티티 바디의 범위 위치 Content-Type 엔티티 바디의 미디어 타입 Expires 엔티티 바디의 유효기간 날짜 Last-Modified 리소스의 최종 갱신 날짜