본문 바로가기
Exam & Study

[쉬운설명] HTTP 해더에 대한 설명!!

by GoodDayDeveloper 2021. 11. 24.
반응형

안녕하세요. 오늘은 HTTP 해더에 대해 설명해보겠습니다.

HTTP 해더는 HTTP전송에 필요한 모든 부가정보를 나타내주는 것을 말합니다.

예를들어 메세지 바디의 내용이나 메세지 바디의 크기, 서버 정보, 캐시 관리 정보 등이 있습니다.

아래 이미지에서의 모든 정보가 해더의 정보라고 보시면 됩니다. 엄청나게 많죠!

 

 

 


 

HTTP 표준은 1999년 RFC2616을 사용하다가

2014년 RFC7230~7235이 등장함에 따라 기존 RFC2616는 폐기가 되었습니다.

가장 큰 변화는 엔티티(Entity)에서 표현(Representation)으로 변화되었다는 점입니다.

 

그럼 최신 표준 스펙인 RFC7230에 대한 내용을 알아보도록 하죠

 

 

1. 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공합니다.

 

Content-Type : 표현 데이터의 형식 설명

- 미디어 타입, 문자 인코딩

 

 

Content-Encoding : 표현 데이터 인코딩

- 표현 데이터를 압춝하기 위해 사용합니다.

- 데이터를 전달하는 곳에서 압축 후 인코딩 헤더를 추가합니다.

- 데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축을 해제합니다.

- 종류에는 gzip,deflate,identity,br 등이 있습니다.

  (br은 Brotli 알고리즘을 사용하는 포맷입니다.)

 

 

Content-Language : 표현 데이터의 자연 언어

- 바이트 단위로 표현됩니다.

 

 

 

2. 수락 (Accept) : 클라이언트가 선호하는 표현을 요청합니다.

- 1부터 0까지 숫자가 클수록 우선순위가 높아집니다.

- 응답헤더에서만 사용합니다.

 

 

Accept: 클라이언트가 선호하는 미디어 타입 전달합니다.

예)

1순위 : text/html,application/xhtml+xml

2순위 : application/xml;q=0.9 / application/signed-exchange;v=b3;q=0.9

3순위 : image/avif,image/webp,image/apng,*/*;q=0.8

 

 

 

Accept-Encoding: 클라이언트가 선호하는 압축 인코딩입니다.

예)
1순위: gzip
2순위 : deflate
3순위 : br

 

 

Accept-Language: 클라이언트가 선호하는 자연 언어입니다.

예)
1순위: ko
2순위 : en-US;q=0.9
3순위 : en;q=0.8
4순위 : ko-KR;q=0.7

 

 

Accept-Charset: 클라이언트가 선호하는 문자 인코딩입니다.

 

 

 

 

3. 전송방식

 

전송방식에는 단순/압축/분할/범위 전송이 있습니다.

 

단순 전송 (Content-Length) : 단순 컨텐츠 메세지바디를 전송합니다.

압축 전송 (Content-Encoding) : 메세지 바디를 압축하여 전송합니다.

분할 전송 (Transfer-Encoding) : 메세지 바디부분을 조금씩 나눠 전송합니다. (과부하 방지)

범위 전송 (Range, Content-Range) : 메세지 바디부분의 범위를 나누어 전송합니다. (1~1000/ 1000~2000)

 

 

 

4. 기타 정보

 

From : 유저 에이전트의 이메일 정보입니다.

Referer: 이전 웹 페이지 주소입니다.

User-Agent: 유저 에이전트 애플리케이션 정보입니다.

Server: 요청을 처리하는 오리진 서버의 소프트웨어 정보입니다.

Date: 메시지가 생성된 날짜입니다.

Host: 요청한 호스트(도메인) 정보입니다.

Location: 페이지 리다이렉션입니다.

Allow: 허용 가능한 HTTP 메서드입니다.

Retry-After: 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간입니다.

set-cookie: 쿠키에 대한 정보로써 서버에 전송하지 않고 웹 스토리지에 참고합니다.

Cache-Control: 캐시 제어를 나타냅니다.

Expires: 캐시 유효 기간을 지정합니다.

 

클릭하시면 HTTP 쿠키(Cookie)에 대한 설명으로 이동합니다.

 

 

5. 검증 헤더와 조건부 요청

 

검증 헤더

캐시 데이터와 서버 데이터가 같은지 검증하는 데이터

Last-Modified : 캐시가 마지막에 수정된 날짜를 나타냅니다.

ETag : 캐시용 데이터에 임의의 고유한 이름을 달아두는 역할을 하여 변경 여부를 확인할 때 사용됩니다.

 

조건부 요청 헤더

검증 헤더로 조건에 따른 분기

If-Modified-Since:  데이터가 변경되지 않을 경우 Last-Modified 사용

If-None-Match: ETag 사용

조건이 만족하면 200 OK이나, 조건이 만족하지 않으면 304 Not Modified가 나타나게 됩니다.

반응형

댓글