HTTP Header는 5개의 범주로 나누어진다.
POST와 PUT 요청에서 주로 사용함
헤더 | 예 | 설명 |
---|---|---|
Content-Type | Content-Type: text/html | 전송되는 리소스 유형 설명에 사용하며 브라우저에서 자동으로 추가해 서버 응답으로 반환함. UTF-8 charset 같은 인코딩 표준을 의미함 |
Content-Length | Content-Length: 356 | 전달되는 엔티티 크기를 저장함. 이 헤더는 서버가 메시지 본문에서 데이터를 읽는데 사용되므로 필수적이며 자동으로 생성함 |
Content-Encoding | Content-Encoding: gzip | 데이터는 전달되기 전에 여러 번의 변환 과정을 거칠 수 있음. 대량의 데이터를 압축해 메시지 크기를 줄일 때 사용 |
헤더 | 예 | 설명 |
---|---|---|
Host | Host: www.naver.com | 리소스에 대해 쿼리되는 호스트를 지정하는 데 사용. 주로 도메인 이름인 경우가 많음. HTTP 서버는 호스트 이름을 기반으로 다양한 웹사이트를 호스팅하도록 구성할 수 있음 호스트 헤더는 대상 서버에 다른 호스트가 존재함을 나타낼 수 있으므로 도메인 외에 IP로 질의해보기도 해야함 |
Referer | Referer: https://www.naver.com | 현재 요청의 출처를 나타냄. 리퍼러 헤더는 쉽게 조작이 가능하므로 신뢰할 경우, 의도치 않은 결과를 초래함 |
Cookie | Cookie PHPSESSID=b434fbd3333 | name=value 형식으로 구성되며 클라이언트 측과 서버에 저장되는 데이터로 석별자 역할을 함 요청 시 서버로 전달되어 클라이언트 접근을 유지. |
Authorization | Authorization Bearer asqwer | 서버가 클라이언트를 식별하는 또 다른 방법. 인증에 성공하면 서버는 클라이언트에게 고유의 토큰을 반환. 토큰은 클라이언트 측에만 저장할 수 있음 |
X-Forwarded-For | X-Forwarded-For: client ip, proxy1 ip, proxy2 ip | (XFF) 헤더는 HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더 |
Header | 예 | 설명 |
---|---|---|
Server | Server: Apache/2.2.14 (Win32 | 서버 버전 정보 수집 |
Set-Cookie | Set-Cookie: PHPSESSID=b4e4fbd93540 | 클라이언트 식별에 필요한 쿠키를 포함해 응답하는 헤더. |
WWW-Authenticate | WWW-Authenticate: BASIC realm="localhost" | 요청된 리소스에 액세스하는 데 필요한 인증 유형을 클라이언트에 전달 |
Header | 예 | 설명 |
---|---|---|
Content-Security-Policy | Content-Security-Policy: script-src 'self' | 외부에서 삽입된 리소스에 대해 웹사이트 정책을 지정함. 자바스크립트 코드 뿐만 아니라 스크립트 리소스도 포함됨. CSP 헤더는 브라우저가 신뢰할 수 있는 특정 도메인의 리소스만 허용하도록 지시해 XSS 공격을 방지 |
Strict-Transport-Security | Strict-Transport-Security: max-age=31536000 | HTTP 프로토콜을 통해 웹사이트에 접근하는 것을 차단하고, 모든 통신이 HTTPS 프로토콜을 사용하도록 강제함 |
Referrer-Policy | Referrer-Policy: origin | 브라우저가 헤더를 통해 지정된 값을 포함할지 여부 지정. 민감한 URL과 정보가 노출되는 것을 방지함 |
Cache-Control header | ||
HttpOnly | Set-Cookie: id=a3fWa; Secure; HttpOnly | 자바스크립트 코드를 사용해 쿠키에 접근할 수 없어 XSS 공격을 방지함 |
Secure | Set-Cookie: id=a3fWa; Secure; HttpOnly | HTTPS 프로토콜 상에서 암호화된(encrypted ) 요청일 경우에만 쿠키를 전송하도록 강제함 |
CORS | Access-Control-Allow-Origin: * | 브라우저가 접속 도메인의 Origin이 아닌 다른 Origin(도메인, 스킴 혹은 포트)로부터 자원을 로딩하는 것을 허용하도록 서버가 허가함 |