[HTTP] HTTP헤더
by Choi HyeSun
HTTP 프로토콜이란?
-
HTTP란 HyperText Transport Protocol의 약자로 웹 서버와 클라이언트간의 문자를 교환하기 위한 통신규약
-
World Wide web (WWW)의 분산되어 있는 Server와 Client간의 Hypertext를 이용한 정보 교환이 가능하도록 하는 통신규약
-
HTTP는 웹에서만 사용하는 Protocol로 TCP/IP 기반으로 한 지점에서 다른 지점(보통 클라이언트와 서버)으로 요청과 응답을 전송
HTTP의 특징
-
HTTP 메시지는 HTTP Server와 HTTP Client에 의해서 해석
-
TCP/IP 프로토콜의 Application 계층에 위치
-
TCP 프로토콜을 이용(Default Port 80)
HTTP 요청 헤더 (from Client)
-
Accept
-
응답에 채택될 수 있는 필수 매체 유형의 세트를 지정
-
client가 처리할 수 있는 content-type
-
-
Accept.Charset
-
응답에 채택될 수 있는 문자 세트를 표시
-
문자 format 지정 UTF-8 / Unicode / . . .
-
Accpet.Encoding
- 응답에 채택될 수 있는 content-coding을 지정
-
Accpet.Language
- 요청에 대한 응답으로 선호되는 자연어의 세트를 지정
-
authorization
- 요청 중인 자원의 범위에 대한 사용자 에이전트의 인증 정보를 포함하는 신임 정보로 구성
-
Expect
- 클라이언트에 특정 서버 동작이 필요한지 표시하는 데 사용
-
From
- 이 필드가 주어진 경우 요청 사용자 에이전트를 제어하는 인간 사용자의 이메일 주소가 여기에 포함
-
Host
-
참조중인 자원(일반적으로 HTTP URL) 또는 사용자가 지정한 원래 URI에서 획득한 요청중인 자원의 인터넷 호스트와 포트 번호를 지정
-
호스트 필드값은 원래 URL에서 지정한 게이트웨이 또는 origin 서버의 이름 지정 권한을 나타내야 함
-
-
If.Match
-
조건부로 만들 메소드와 함께 사용
-
이전에 자원에서 하나 이상의 엔티티를 획득한 클라이언트는 If-Match 헤더 필드에 연관된 엔티티 태그의 목록을 포함하여 해당 엔티티 중 하나가 최신인지 확인할 수 있음
-
이 기능의 용도는 최소한의 트랜잭션 오버헤드로 캐시된 정보를 효율적으로 업데이트 할 수 있도록 하는 것
-
요청 업데이트 시에도 사용되어 잘못된 버전의 자원을 실수로 수정하지 않아야 함
-
특수한 경우로 “*” 값은 자원의 모든 현재 엔티티와 일치
-
-
If-Modified-Since
-
조건부로 만들 메소드와 함께 사용
-
이 필드에 지정된 시간 이후에 요청된 변형이 수정되지 않은 경우 서버에서 엔티티가 리턴되지 않고 대신 304(수정되지 않음) 응답이 message-body 없이 리턴
-
형식은 HTTP-date
-
-
If-None-Match
-
조건부로 만들 메소드와 함께 사용
-
이전에 자원에서 하나 이상의 엔티티를 획득한 클라이언트는 If-None-Match 헤더 필드에 연관된 엔티티 태그의 목록을 포함하여 해당 엔티티 중 최신인 엔티티가 없는지 확인할 수 있음
-
-
If-Range
-
클라이언트의 캐시에 엔티티의 일부 사본이 있고 클라이언트가 캐시에 전체 엔티티의 최신 사본을 저장하려는 경우 조건부 GET을 통해 범위 request-header를 사용할 수 있음
-
요청된 엔티티가 변경되지 않은 경우에는 클라이언트에서 누락된 파트가 전송되고 그렇지 않으면 전체 새 엔티티가 전송
-
HTTP 날짜를 포함할 수 있음
-
-
If-Unmodified-Since
-
조건부로 만들 메소드와 함께 사용
-
이 필드에 지정된 시간 이후에 요청된 자원이 수정되지 않은 경우 If-Unmodified-Since 헤더가 제공되지 않은 것처럼 서버가 요청된 조작을 수행
-
지정된 시간 이후에 요청된 변형이 수정된 경우에는 서버가 요청된 조작을 수행하지 않고 412 코드(전제조건 실패)를 리턴
-
형식은 HTTP-date
-
-
Max-Forwards
- 다음 인바운드 서버에 요청을 전달할 수 있는 게이트웨이 또는 프록시의 수를 제한하기 위해 TRACE 메소드와 OPTIONS 메소드가 포함된 메커니즘을 제공
-
Proxy-Authorization
-
클라이언트가 인증이 필요한 프록시에 자신(또는 클라이언트의 사용자)을 식별할 수 있게 허용
-
요청 중인 자원의 범위 및/또는 프록시에 대한 사용자 에이전트의 인증 정보를 포함하는 신임 정보로 구성
-
-
Range
- HTTP 요청(GET 메소드 사용)에서 리턴되는 결과 엔티티를 수신할 범위(바이트)를 표시
-
Referer
- 클라이언트가 서버에 유리하도록 Request-URI를 획득한 자원의 주소(URI)를 지정할 수 있게 허용
-
TE
- 응답에 채택할 확장 transfer-coding과 청크된 transfer-coding에서 트레일러 필드를 채택할지 여부를 표시
-
User-Agent
- 요청을 생성하는 사용자 에이전트에 대한 정보가 들어 있음
HTTP 서버 응답 헤더 (from Server)
-
Accept-Ranges
- 서버가 자원에 대한 범위 요청을 채택함을 표시하지만 누락된 경우에도 채택하지 않음을 의미하지는 않음
-
Age
- 원본 서버에서 응답(및 해당 유효성 재검증)이 생성된 이후 경과된 송신자의 예상 시간을 전달
-
ETag
-
요청된 변형에 대한 엔티티 태그의 현재 값을 제공
-
엔티티 태그는 동일한 자원의 다른 엔티티와 비교하는 데 사용할 수 있음
-
-
Location
-
새 자원의 식별 또는 요청의 완료를 위해 요청 URI 이외의 위치로 수신자의 경로를 재지정하는 데 사용
-
필드 값은 하나의 절대 URI로 구성
-
-
Proxy-Authenticate
-
407(프록시 인증 필요) 응답의 일부로 포함
-
필드 값은 이 요청 URI에 대한 프록시에 적용 가능한 인증 스키마 및 매개변수를 표시하는 인증 확인으로 구성
-
-
Retry-After
-
요청하는 클라이언트에 서비스를 사용할 수 없을 것으로 예상되는 기간을 표시하기 위해 503(서비스 사용 불가능) 응답과 함께 사용할 수 있음
-
이 필드는 경로 재지정된 요청을 발행하기 전에 사용자-에이전트가 대기하도록 요청되는 최소 시간을 표시하기 위해 3xx(경로 재지정) 응답과 함께 사용할 수도 있음
-
이 필드의 값은 응답 시간 이후 정수 기간(10진수 초) 또는 HTTP 날짜가 될 수 있음
-
-
Server
- 원본 서버가 요청을 처리하기 위해 사용하는 소프트웨어에 대한 정보가 포함
-
Vary
-
응답이 새로운 응답인 동안 캐시에서 응답을 사용하여 유효성 재검증 없이 후속 요청에 응답할 수 있는지 여부를 완전히 판별하는 요청-헤더 필드 세트를 표시
-
캐시할 수 없거나 시간이 경과된(stale) 응답의 경우 Vary 필드 값은 사용자 에이전트에 표시를 선택하기 위해 사용된 기준에 대해 조언을 제공
-
-
WWW-Authenticate
-
401(권한 없음) 응답 메시지에 포함
-
필드 값은 요청 URI에 적용 가능한 인증 스키마 및 매개변수를 표시하는 하나 이상의 인증 확인으로 구성
-
Subscribe via RSS