Content Header
분류 | Header | Description |
---|---|---|
Content (표현 헤더) | Content-Type | |
Content-Length | ||
Content-Language | ||
Content-Encoding | ||
Negotiation (협상 헤더, 클라이언트가 선호하는 표현) | Accept | |
Accept-Charset | ||
Accept-Language | ||
Accept-Encoding |
전송방식 Header
분류 | Exam Header | Description |
---|---|---|
일반전송 | Content-Type: text/plan Content-Length: 528 | |
압축전송 | Content-Type: text/plan Content-Encoding: gzip Content-Length: 528 | |
분할전송 | Content-Type: text/plan
Transper-Encoding: chunked | Content-Length가 있으면 안됨, 대신 표현메세지에 byte 명세함. ---------------- 5 <= 5byte hello 5 <= 5byte world |
범위전송 | Content-Type: text/plan Content-Range: byte 1001-2000 / 2000 |
일반정보 Header
요청 구분 | Exam Header | Description | 비고 |
---|---|---|---|
Request | From | UserAgent의 이메일 주소 | |
Referer: http://www.google.co.kr | 이전 웹페이지 주소 | 유입경로 분석 Referrer의 오타로 스펙에 정의됨 | |
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 | 요청한 어플리케이션 정보 | 클라이언트의 어플리케이션 정보 | |
Response | Server: nginx | 요청을 처리하는 오리진 서버의 소프트웨어 정보 | |
Date: Tue, 15 NOV 1994 08:21:31 GMT | 응답 메세지가 생성된 날자 |
특별한 정보 Header
요청 구분 | Exam Header | Description | 비고 |
---|---|---|---|
Request | *Host: www.google.com | 요청한 HOST정보 (도메인) | |
Response | Location: | 페이지 리다이렉션 | |
Allow: GET, HEAD, PUT | 405 Not Method Allow 발생시 허용가능한 Http Method | 실제 거의 사용하지 않음 | |
Retry-After: Fri, 31 Dec 1999 23:59:59 GMT (날자표기) Retry-After: 120 (초단위 표기) | 503 Service Unavailable 발생시 유저 에이전트가 다음 요청하기까기 기다려야 하는 시간 |
인증 Header
요청 구분 | Exam Header | Description | 비고 |
---|---|---|---|
Request | Authorization: BASIC xxxxxxxxxxx... | 클라이언트 인증정보를 서버에 전달 | |
Response | WWW-Authenticate: Newauth realm="apps", type=1, title="Login to \"apps \"", Basic realm="simple" | 401 Unauthorized 응답과 함께 사용 리소스 접근시 필요한 인증 방법 정의 |
인증 방식 | 설명 | 예시 헤더 값 |
Basic | 사용자 이름과 비밀번호를 Base64로 인코딩한 후 인증. 안전하지 않아 HTTPS로 사용해야 함. | Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ= |
Bearer | 서버에서 발급된 토큰(JWT, OAuth 토큰 등)을 사용하는 방식. 주로 OAuth 2.0에서 사용. | Authorization: Bearer <token> |
Cooke Header
요청 구분 | Exam Header | Description |
---|---|---|
Request | Cookie: | 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달 |
Response | Set-Cookie: sessionId=xxxxxx; expires=Sat, 26-Dec-2020 00:00:00 GMT; path=/; domain=.google.com; Secure | 서버에서 클라이언트로 쿠키 전달 |
Cache Header
구분 | 요청 구분 | Exam Header | Description |
---|---|---|---|
수정일로 캐시 | Request | Cache-Control: max-age=31536000 If-Modified-Since: Fri, 27 Sep 2019 01:00:00 GMT | 캐시 유휴기간 초단위 Expires(하위호환)는 무시됨 |
Cache-Control: no-cacha | 데이터는 캐시해도 되지만, 항상 오리진 서버에 검증하고 사용 | ||
Cache-Control: no-store | 데이터에 민감 정보가 있으므로 저장하면 안됨 (메모리에서 사용하고 최대한 빨리 삭제) | ||
Response | Last-Modified: Fri, 27 Sep 2019 01:00:00 GMT | ||
프록시 캐시 | Request | Cache-Control: public, max-age=31536000 If-Modified-Since: Fri, 27 Sep 2019 01:00:00 GMT | public: 응답이 public(proxy) 캐시에 저장되도 됨. |
Cache-Control: private, max-age=31536000 If-Modified-Since: Fri, 27 Sep 2019 01:00:00 GMT | private 캐시에 저장되어야함 (default) | ||
Cache-Control: s-maxage | proxy 캐시에만 적용되는 max-age | ||
Response | Age: 60 | 오리진 서버에서 응답 후 proxy 캐시에 머문시간(초) | |
버전으로 캐시 | Request | If-None-Match: aaaa | |
Response | ETag: aaaa | ||
하위호환 (http 1.0) | Pragma: no-cache | 캐시 제어 | |
하위호환 | Expires: Fri, 27 Sep 2019 01:00:00 GMT | 캐시 유효기간 | |