본문 바로가기
Stg

HTTP 헤더

by 호랑2 2023. 4. 14.

HTTP 프로토콜의 리퀘스트와 리스폰스에는 반드시 메시지 헤더가 포함되어 있는데 메시지 헤더에는 클라이언트나 서버가 리퀘스트나 리스폰스를 처리하기 위한 정보가 들어있다. 다만 이러한 정보의 대부분은 클라이언트를 이용하는 사용자가 직접 볼 필요는 없다.

 

리퀘스트의 HTTP 메시지는 메소드, URI, HTTP 버전, HTTP 헤더 필드 등으로 구성되어 있으며 리스폰스의 HTTP 메시지는 HTTP 버전, 상태 코드, 헤더 필드 등으로 구성되어 있다.

 

출처 : https://www.google.com/url?sa=i&url=https%3A%2F%2Fhazel-developer.tistory.com%2F145&psig=AOvVaw3aAZhFdLl-JQ-Flnefr573&ust=1681567811977000&source=images&cd=vfe&ved=0CBMQjhxqFwoTCKjBg7PGqf4CFQAAAAAdAAAAABAE

 

HTTP 헤더 필드는 그 용도에 따라 다음과 같이 분류된다.

 

1) 일반적 헤더 필드 (General Header Fields)

리퀘스트 메시지와 리스폰스 메시지 둘 다 사용하는 헤더이다.

헤더 필드 명 설명
Cache-Control 캐싱 동작 지정
Connection Hop-by-hop 헤더, 커넥션 관리
Date 메시지 생성 날짜
Pragma 메시지 제어
Trailer 메시지의 끝에 있는 헤더의 일람
Transfer-Encoding 메시지 바디의 전송 코딩 형식 지정
Upgrade 다른 프로토콜에 업그레이드
Via 프록시 서버에 대한 정보
Warning 에러 통지

 

2) 리퀘스트 헤더 필드 (Request Header Fields)

클라이언트 측에서 서버 측으로 송신된 리퀘스트 메시지에 사용되는 헤더로 리퀘스트의 부가적 정보와 클라이언트의 정보, 리스폰스의 컨텐츠에 관한 우선 순위 등을 부과한다.

헤더 필드 명 설명
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-Agent HTTP 클라이언트의 정보

 

3) 리스폰스 헤더 필드 (Response Header Fields)

서버 측에서 클라이언트 측으로 송신한 리스폰스 메시지에 사용되는 헤더로 리스폰스의 정보와 서버의 정보, 클라이언트의 추가 정보 요구 등을 부과한다.

헤더 필드 명 설명
Accept-Ranges 바이트 단위의 요구를 수신할 수 있는지 여부
Age 리소스의 지정 경과 시간
Etag 리소스 특정하기 위한 정보
Location 클라이언트를 지정한 URI 에 리다이렉트
Proxy-Authenticate 프록시 서버의 클라이언트 인증을 위한 정보
Retry-After 리퀘스트 재시행의 타이밍 요구
Server HTTP 서버 정보
Vary 프록시 서버에 대한 캐시 관리 정보
WWW-Authenticate 서버의 클라이언트 인증을 위한 정보

 

4) 엔티티 헤더 필드 (Entity Header Fields)

리퀘스트 메시지와 리스폰스 메시지에 포함된 엔티티에 사용되는 헤더로 컨텐츠 갱신 시간 등의 엔티티에 관한 정보를 부과한다. 

헤더 필드 명 설명
Allow 리소스가 제공하는 HTTP 메소드
Content-Encoding 엔티티 바디에 적용되는 컨텐츠 인코딩
Content-Language 엔티티의 자연어
Content-Length 엔티티 바디의 사이즈 (단위 : 바이트)
Content-Location 리소스에 대응하는 대체 URI
Content-MD5 엔티티 바디의 메시지 다이제스트
Content-Range 엔티티 바디의 범위 위치
Content-Type 엔티티 바디의 미디어 타입
Expires 엔티티 바디의 유효기간 날짜
Last-Modified 리소스의 최종 갱신 날짜

5) 그밖의 헤더 필드

위에 언급된 필드 외에도, 쿠키를 위한 헤더 필드와 웹 서버와 브라우저의 기능에 다양한 독자적인 헤더 필드가 존재한다.

헤더 필드 명 설명
Set-Cookie 상태 관리 개시를 위한 쿠키 정보 (리스폰스)
Cookie 서버에서 수신한 쿠키 정보 (리퀘스트)
 X-Frame-Option 다른 웹사이트의 프레임에서 표시를 제어하는 헤더.
클릭 재킹이라는 공격을 막는 것을 목적으로 함
X-XSS-Protection 크로스 사이트 스크립팅(XSS) 대책으로서 브라우저의 XSS 보호 기능을 제어하는 헤더
DNT DO NOT TRACK. 개인정보 수집을 거부하는 의사를 나타냄
P3P 웹 사이트 상의 프라이버시 정책에 P3P 를 사용하는 것으로, 프로그램이 읽을 수 있는 형태로 나타내기 위한 리스폰스 헤더

 

'Stg' 카테고리의 다른 글

HTTPS  (0) 2023.04.22
HTTP의 보안상 약점  (0) 2023.04.18
HTTP와 연계하는 웹 서버  (0) 2023.04.12
HTTP 상태코드  (0) 2023.04.11
Persistent connection / Stateless  (0) 2023.04.06

댓글