Seul Lee

Mathpresso 서버 개발자

Navigation
 » Home
 » Github
 » XML Feed

HTTP Header list

06 May 2018 » other

HTTP 헤더 목록

http 통신할 때 Request, Response 에서 쓰이는 헤더 목록 중 자주 보이는 헤더를 정리



Accept-Encoding

요청 헤더, encoding 이라는 용어가 들어가 있지만 문자열 인코딩과는 상관이 없다.

gzip, deflate, compress 등이 사용되며 서버에 어떤 압축 알고리즘을 사용하여 엔티티 바디의 용량을 줄일지 정하는데 쓰인다.


Authorization

요청 헤더, 사용자 증명을 위해 쓰인다. 인증된 유저라는 것을 증명하기 위한 키값이나 유저명-비밀번호 등을 보낸다.


Cache-Control

요청 및 응답 헤더, 서버와 클라이언트에서 캐시를 어떤 식으로 다룰지에 대한 내용을 포함한다.


Content-Disposition

응답 헤더, 클라이언트에서 response 를 파일로 저장해야 할 때 사용되며, 파일의 인코딩 등을 다룬다.


Content-Encoding

응답 헤더, Aceept-Encoding에 대응되는 헤더, 서버측에서 어떤 압축 알고리즘을 사용하는지에 대해 클라이언트에 알려 주는 역할을 한다.


Content-Length

응답 헤더, 엔티티 바디의 크기를 바이트로 제공한다.

이 헤더를 활용하면 HTTP HEAD 요청을 통해 엔티티 바디의 크기를 알 수 있다.


Content-Type

요청 및 응답 헤더, 엔티티 바디의 컨텐츠 유형이 실제로 무엇인지를 알려 주는 헤더이다.

서버에서 내려주는 컨텐츠 타입이 json인지 yaml인지 등을 알려 준다.

application/json 이나 text/html 등이 이 헤더에 포함될 수 있다.


Cookie

요청 헤더, HTTP 표준은 아니나 Content-Type과 함께 가장 많이 접할 수 있는 헤더이다.

Set-Cookie 라는 요청 헤더와 함께 쓰이며, 세션 관리, 트래킹, 개인화 등을 목적으로 사용하는 헤더이다.

stateless 라는 특징을 가진 HTTP 를 보완하기 위해 사용되나 사용 방법에 따라 심각한 보안 이슈에 노출될 수 있다.


Date

요청 및 응답 헤더, 요청에서는 클라이언트가 요청을 보낸 시간을 나타내고 응답에서는 서버가 요청을 수행한 시간을 나타낸다.


ETag

응답 헤더, 리소스의 버전을 명시하는 헤더이다. 리소스에서 변경이 이루어 지면 새로운 ETag가 생성된다.

클라이언트에서는 If-None-Match 헤더 등을 통해 전송하며 서버는 ETag 값이 변경되었으면 리소스에 변경이 일어난 것이므로 새롭게 응답을 보내고, 그렇지 않다면 새로운 응답을 보내지 않는다.

변경되었을 때만 응답을 보내므로 서버는 불필요한 작업을 하지 않게 된다.


Expires

응답 헤더, 응답을 특정 시간까지 캐시할 수 있음을 알려주는 헤더이다.

Cache-Control 헤더의 max-age 를 사용하는 것이 더 일반적이다.


HOST

요청 헤더, 서버의 도메인명과 요청된 서버의 기본 TCP 포트를 포함하는 헤더이다.

한 개의 서버가 다수의 도메인을 한 IP 주소에 호스팅할 수 있기 때문에 사용된다.


If-Match

요청 헤더, 이 헤더에 ETag 를 포함하여 요청한다. 요청 헤더에 보낸 ETag 와 서버의 ETag가 일치하면 성공 응답을 받을 수 있다.

현재 가지고 있는 값이 최신 값인지를 확인하기 위해서 사용된다.


If-Modified-Since

요청 헤더, 이 헤더를 사용해서 요청을 보내면 Last-Modified 응답 헤더와 비교하여 Last-Modified가 If-Modified-Since 에 포함된 값 보다 최근일 경우 최신 값을 서버로부터 받는 다는 것을 의미한다.

이전 변경 시간과 비교하여 변경이 이루어 졌을 때만 응답을 받기 위해 사용된다.


If-None-Match

요청 헤더, If-Match 헤더와 마찬가지로 헤더에 ETag 값을 포함하여 요청한다. 만약 요청 헤더에 보낸 ETag 값에 해당하는 값이 서버에 없을 경우 새로운 응답을 요청한다.

ETag 를 기반으로 변경을 확인하여 변경이 있을 때에만 응답을 받기 위해서 사용된다.


If-Unmodified-Since

요청 헤더, If-Modified-Since 와 유사한 헤더이지만 If-Unmodified-Since 에 보내진 시간 이후에 변경이 한번도 이루어지지 않았다면(If-Unmodified-Since 헤더의 시간과 Last-Modified의 시간이 같다면) 해당 값을 변경하기 위해서 사용된다.

GET 요청보다는 다른 HTTP 메소드에서 많이 사용된다.


Last-Modified

응답 헤더, If-Modified-Since 나 If-Unmodified-Since 등 조건부 HTTP GET 을 가능하도록 하는 헤더이다.

리소스가 변경된 최근 시간을 클라이언트에게 알려주는 역할을 한다.


Link

요청 및 응답 헤더, 이 헤더는 이름 그대로 하이퍼링크를 제공한다. 보통은 응답 헤더에서 많이 쓰인다.


Link-Template

응답 헤더, Link 헤더와 유사하지만 헤더에 포함되는 값이 URI 템플릿이라는 차이가 있다.

action=”GET”인 HTML 폼과 유사한 기능을 수행한다.


Location

응답 헤더, 이 헤더는 300 대의 HTTP 상태 코드와 연관된다. 각 상태 코드에 따라 Location 헤더가 의미 하는 바가 조금씩 달라진다.

301, 302, 307, 308 등의 클라이언트가 잘못된 URL로 요청을 시도할 경우 수정된 URL 을 클라이언트에게 제공할 수 있다.

리소스가 생성되었다는 뜻의 201에서도 Location 헤더가 사용될 수 있는데 이 경우에는 새로 생성된 리소스의 URL을 제공한다.


Prefer

요청 헤더, HTTP 표준에서 다루지 않는 규칙들을 일부 다룬다.

handling=lenient 라는 내용이 포함되어 있다면, 작은 오류에 대해서 무시하고 요청을 처리해달라는 의미이다.

그 밖에 respond=async, return=miniaml 등의 내용을 포함할 수 있다.


Preference-Applied

응답 헤더, Prefer에 대응되는 헤더, 요청된 Prefer 헤더 중 수용한 것들을 이 헤더에 포함하여 클라이언트에게 알려준다.


Range

요청 헤더, 리소스의 일부분만을 서버에서 전송받길 원할 때 사용한다.

다운로드가 중간에 끊겼을 때 끊긴 부분을 서버에 알려주어 그 이후부터 받을 수 있게 해준다.


Referer

요청 헤더, 웹 브라우저에서 링크를 클릭하면 이 헤더에 현재 URL을 포함시켜서 서버에 요청을 보낸다.

Referrer이 아니라 Referer이다.


Set-Cookie

요청 헤더, Cookie에 대응하는 헤더이다.

클라이언트에서 쿠키를 설정하기 위해서 이 헤더를 사용한다.


User-Agent

요청 헤더, 서버측에서 요청을 보낸 클라이언트를 식별할 수 있도록 해주는 헤더이다.

OS나 브라우저 디바이스 정보 등을 알 수 있다.


WWW-Authenticate

응답 헤더, 401 상태 코드와 연관되어 있다. 클라이언트에 어떤 식으로 인증을 해야하는지 알려 주는 역할을 한다.