HTTP 헤더 란?
HTTP 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 해줍니다.
이미 알다시피, HTTP 통신을 사용하면, 클라이언트와 서버간에 두가지 유형의 메세지를 전송할 수 있습니다,
바로 요청과 응답이죠. 클라이언트/유저 가 요청을 서버로 보내고, 서버가 브라우저로 응답을 보냅니다.
이 두 메세지는 공통된 포맷을 가지고 있습니다, HTTP 헤더와 HTTP 본문을 포함합니다.
우리는 이 중, HTTP 헤더에 대해서 알아봅니다.
HTTP 헤더는 세가지로 분류됩니다.
- 두 메세지에 공통적으로 사용되는 일반 헤더
- 요청에는 요청 헤더, 응답에는 응답 헤더
- 특별한 경우에 사용되는 콘텐츠협상 헤더
원래 우리가 알아야 할 헤더의 종류는 정말 많지만, 일단 가장 보편적으로 쓰이는 종류만 파악합니다.
1. 일반 헤더
일반 헤더의 종류 중 크게 네가지를 알아보겠습니다.
- Content-Length : 메세지 바디의 길이를 나타낼 때 쓰입니다.
- Content-Type : 메세지 바디에 들어있는 컨텐츠의 종류를 나타냅니다. ( ex: text / html )
- Content-Encoding : 메세지 바디에 들어있는 컨텐츠의 압축방식을 나타냅니다.
- Content-Language : 메세지 바디에 들어있는 컨텐츠의 자연언어를 나타냅니다.
2. 요청 헤더
요청헤더의 종류 중 크게 네가지를 알아봅니다.
- Cookie : 서버로부터 받은 쿠키를 다시 서버에게 보내주는 역할을 합니다.
- Host : 요청된 URL 에 나타난 호스트명을 상세하게 표시합니다. (HTTP 1.1 ver은 필수)
- User-Agent : Client Program 에 대한 식별가능 정보를 제공합니다.
- Referer : 현재 요청된 페이지의 이전 웹페이지 주소정보를 제공합니다.
3. 응답 헤더
응답헤더의 종류 중 크게 두가지를 알아보니다.
- Server : 사용하고 있는 웹서버의 소프트웨어에 대한 정보를 포함합니다.
- Set-Coolkie : 쿠키를 생성하고 브라우저에 보낼 때 사용, 해당 쿠키값을 브라우저가
서버에게 다시 보낼때 사용합니다.
- Date : 메세지가 발생한 날짜와 시간을 제공합니다.
4. 콘텐츠협상 헤더
콘텐츠 협상헤더 란, 동일한 URI 에서 리소스의 서로 다른 버전을 서브하기 위해 사용되는 매커니즘으로
사용자 에이전트가 사용자에게 제일 잘 맞는것이 무엇인지를 명시해 줍니다.
이 헤더는 요청시에만 사용됩니다.
- Accept : 클라이언트가 선호하는 미디어 타입을 전달합니다.
- Accept-Charset : 클라이언트가 이해할 수 있는 인코딩 방식을 전달합니다.
- Accept-Encoding : 클라이언트가 선호하는 인코딩 방식을 전달합니다.
- Accept-Language : 클라이언트가 선호하는 언어를 전달합니다.
출처 :
https://developer.mozilla.org/ko/docs/Web/HTTP/Content_negotiation