6장 HTTP 헤더

nudge411·2021년 7월 22일
0
해당 내용은 그림으로 배우는 Http&Network Basic 책내용을 정리한것 입니다.

1. HTTP 메세지 헤더

  • HTTP 프로토콜의 요청과 응답에는 반드시 메세지 헤더가 포함된다
  • 메세지 헤더에는 클라이언트가 서버가 요청, 응답시 처리하기 위한 정보가 들어있다.
  • 이러한 정보의 대부분은 사용자가 직접 볼 필요는 없다.
  • 리퀘스트의 HTTP 메세지는 메소드, URI, HTTP버전, HTTP 헤더필드 등으로 구성된다.
  • 리스폰스의 HTTP 메세지는 HTTP 메세지, HTTP버전, 상태코드, HTTP 헤더필드 등으로 구성된다.
  • 이러한 요소중 가장 다양한 정보를 가지고 있는 것이 HTTP 헤더필드 이다.
  • 헤더필드는 요청과 응답 양쪽 모두 존재하는데, HTTP 메세지 정보를 가지고있다.

2. HTTP 헤더 필드

  1. HTTP 헤더필드는 중요한 정보를 전달한다
    • 메세지 바디의 크기나 사용되고 있는 언어, 인증정보 등을 브라우저나 서버에 제공하기 위해 사용된다.
  2. HTTP 헤더필드의 구조
    • HTTP 헤더필드는 헤더 필드명과 필드값 으로 구성되고 콜론(:) 으로 나뉜다.
    • 헤더필드명 : 필드값 , Content-Type : text/html
    • 하나의 필드에 여러개의 필드값을 가질수 있다.
  3. 4종류의 HTTP 헤더필드
    1. 일반적 헤더필드
      • 리퀘스트 메세지와 리스폰스 메세지 둘다 사용
    2. 리퀘스트 헤더필드
      • 클라이언트에서 서버로 송신된 리퀘스트 메세지에 사용되는 헤더
      • 리퀘스트의 부가적 정보와 클라이언트 정보, 리스폰스의 콘텐츠에 관한 우선순위 부가
    3. 리스폰스 헤더필드
      • 서버에서 클라이언트로 송신한 응답 메세지에 사용
      • 응답 정보와 서버의정보, 클라이언트의 추가정보 요구등을 부가
    4. 엔티티 헤더필드
      • 응답, 요청 포함된 엔티티에 사용되는 헤더
      • 콘텐츠 갱신시간 등 엔티티에 관한 정보
  4. HTTP/1.1 헤더필드 일람
  • 일반 헤더필드
헤더 필드명설명
Cache-Control캐싱 동작 지정
ConnectionHop-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-Match엔티티 태그의 비교(if-Match의 반대)
If-Range리소스가 갱신되지 않은 경우에 엔티티의 바이트 범위의 요구를 송신
If-Unmodified-Since리소스의 갱신 시간 비교(If-Modified-Since의 반대)
Max-Forwards최대 전송 홉 수
Proxy-Authorization프록시서버의 클라이언트 인증을 위한 정보
Range엔티티 바이트 범위 요구
Referer리퀘스트중의 URI를 취득하는 곳
TE전송 인코딩의 우선 순위
User-AgentHTTP 클라이언트의 정보
  • 리스폰스 헤더필드
헤더 필드명설명
Accept-Ranges바이트 단위의 요구를 수신할 수 있는지 없는지 여부
Age리소스의 지정 경과 시간
Etag리소스 특정하기 위한 정보
Location클라이언트를 지정한 URI에 리다이렉트
Proxy-Authenticate프록시 서버의 클라이언트 인증을 위한 정보
Retry-After리퀘스트 재시행의 타이밍 요구
ServerHTTP 서버정보
Vary프록시 서버에 대한 캐시관리 정보
WWW-Authenticate서버의 클라이언트 인증을 위한 정보
  • 엔티티 헤더필드
헤더 필드명설명
Allow리소스가 제공하는 HTTP 메소드
Content-Encoding엔티티 바디에 적용되는 콘텐츠 인코딩
Content-Language엔티티의 자연어
Content-Length엔티티 바디의 사이즈(단위:바이트)
Content-Location리소스에 대응하는 대체 URI
Content-MD5엔티티 바디의 메세지 다이제스트
Content-Range엔티티 바디의 범위 위치
Content-Type엔티티 바디의 미디어 타입
Expires엔티티 바디의 유효기간 날짜
Last-Modified리소스의 최종 갱신 날짜
  1. HTTP/1.1 이외의 헤더필드
  • 위의 표는 RFC2616에서 정의된 47종류
  • 이외에 Set-Cookie, Content-Disposition와 같이 비표준 헤더 필드는 RFC4229 참고할것.
  1. End-to-end 헤더와 Hop-by-hop 헤더
  • HTTP 헤더필드는 캐시와 비캐시 프록시의 동작을 정의하기 위해 두가지 카테고리로 분류된다.
  • End-to-end
    • 이 카테고리에 분류된 헤더는 요청이나 응답의 최종 수신자에게 전송된다
    • 캐시에서 구축된 응답중 보존되어야하고, 다시 전송되도록 설계됐다.
  • Hop-by-hop
    • 이 카테고리 분류된 헤더는 한번 전송에 대해서만 유효하고 캐시와 프록시에 의해 전송되지 않는것도 있다.
    • Hop-by-hop 헤더는 Connection 헤더필드에 열거한다.
    • HTTP/1.1 에서는 8개의 Hop-by-hop 헤더필드가 있고 나머지는 End-to-end 헤더로 분류 된다
    • Connection, Keep-Alive, proxy-Authenticate, Proxy-Authorization, Trailer, TE, Transfer-Encoding, Upgrade

3. HTTP/1.1 일반 헤더 필드

  • 책참조

4. 리퀘스트 헤더 필드

  • 책참조

5. 리스폰스 헤더 필드

  • 책참조

6. 엔티티 헤더 필드

  • 책참조

7. 쿠키를 위한 헤더 필드

  • 책참조

8. 그 이외의 헤더 필드

  • 책참조

...6장은 정리하기보단 나중에 궁금할때 책을 읽어보는게 좋을것같다...

profile
이직을 위해 다시한번 기초부터 공부해보는 블로그

0개의 댓글