HTTP Header Element, HTTP Header Field   HTTP 헤더 항목

(2019-02-19)

HTTP 요청 헤더 항목, HTTP 응답 헤더 항목, HTTP 일반 헤더 항목, HTTP 엔터티 헤더 항목, Content-Type

1. HTTP 헤더 내 요청 헤더 (Request Header) 항목

  ㅇ 요청 헤더HTTP 요청 메세지 내에서만 나타나며 가장 방대함

  ㅇ 주요 항목들
     - Host : 요청하는 호스트에 대한 호스트명포트번호 (*필수*)
        . (HTTP/1.1 이후부터 Host 필드는 필수 항목. 웹브라우저는 이를 반드시 포함 필요)
        . Host 필드에 도메인명 및 호스트명 모두를 포함한 전체 URI(FQDN) 지정 필요
        . 이에따라, 동일 IP 주소를 갖는 단일 서버에 여러 사이트가 구축 가능

     - From : 클라이언트 사용자 메일 주소 
        . 주로, 검색엔진 웹로봇의 연락처 메일 주소를 나타냄
        . 때로는, 이 연락처 메일 주소를 User-Agent 항목에 두는 경우도 있음

     - Cookie : 서버에 의해 Set-Cookie로 클라이언트에게 설정된 쿠키 정보
        . [참고] ☞ 쿠키(Cookie), PHP 세션 참조

     - Referer : 바로 직전에 머물었던  링크 주소

     - User-Agent : 클라이언트 소프트웨어(브라우저) 명칭 및 버전 정보

     * (다음 4개는 주로 HTTP 메세지 본문의 속성 또는 내용 협상용 항목들 임)
        . 그 각각이 HTTP 엔터티 헤더 항목 중에
        . Content-Type, Content-Type charset-xxx, Content-Encoding, Content-Language 과
        . 일대일로 대응됨
     - Accept          : 클라이언트 자신이 원하는 미디어 타입 및 우선순위를 알려줌
        . 텍스트(text/html,text/plain,...),이미지(image/jpeg,...) 등
        . 例) `Accept: */*` => 어떤 미디어 타입도 가능, `Accept: image/*` => 모든 이미지 유형
     - Accept-Charset  : 클라이언트 자신이 원하는 문자 집합
     - Accept-Encoding : 클라이언트 자신이 원하는 문자 인코딩 방식
     - Accept-Language : 클라이언트 자신이 원하는 가능한 언어

     - If-Modified-Since : 제시한 일시 이후로만 변경된 리소스를 취득 요청


2. HTTP 헤더 내 응답 헤더 (Response Header) 항목

  ㅇ 특정 유형의 HTTP 요청이나 특정 HTTP 헤더를 수신했을때, 이에 응답 함

  ㅇ 주요 항목들

     - Server : 서버 소프트웨어 정보를 나타냄

     - Set-Cookie : 서버측에서 클라이언트에게 세션 쿠키 정보를 설정
        . `속성이름(attribute)/속성값(value);` 형태로 다수 정보들이 설정됨
        . RFC 2965에서 규정됨

     - Accept-Range
     - Age
     - ETag
     - Proxy-authenticate

     - Allow : 해당 엔터티에 대해 서버측에서 지원 가능한 HTTP 메소드리스트를 나타냄
        . 때론, HTTP 요청 메세지HTTP 메소드 OPTIONS에 대한 응답용 항목 임
           .. (OPTIONS : 웹서버측 제공 HTTP 메소드에 대한 질의)
        . 例) Allow: GET,HEAD => 웹서버측이 제공가능한 HTTP 메서드는 GET,HEAD 뿐임을 알림


3. HTTP 헤더 내 일반 헤더 (General Header) 항목

  ㅇ 요청 및 응답 메세지 모두에서 사용 가능한 일반 목적의(기본적인) 헤더 항목

  ㅇ 주요 항목들

     - Date  : 메세지를 생성한 일시
        . RFC 1123에서 규정됨
        . 例) Date: Sat, 2 Oct 2018 02:00:12 GMT

     - Connection : 다소 모호한 복잡성 있음
        . 사용 형식 1) Connection: keep-Alive => 현 TCP 커넥션을 유지
           .. HTTP/1.0 에서 만 사용되던 정보
           .. HTTP/1.1 에서는 예전 의미를 대체로 인식하지만, 
              그 기능 자체(지속 커넥션)는 기본으로 됨
        . 사용 형식 2) Connection: `token list`         
           .. 중계 연결(프록시)에 대한 옵션 설정
           .. 중계 중인 인접 HTTP 커넥션 간에 만 적용될 옵션 리스트들로써,
           .. 다음 커넥션에 전달되어서는 안됨
           .. 해당 커넥션 토큰들 각각을 쉼표로 구분시킨 리스트 (token list)
           .. 例) Connection: close => 현 커넥션 직후에 TCP 접속을 끊는다는 것을 알림

     - Cache-Control
     - Pragma
     - Trailer


4. HTTP 헤더 내 엔터티/개체 헤더 (Entity Header) 항목

  ㅇ 선택적인 개체(콘텐츠,본문,리소스 등) 그 자체를 설명함
     - 요청 및 응답 메세지 모두에서 사용 가능
        . HTTP 메세지 내 포함된 선택적인 개체에 대한 구체적인 미디어 타입 등의 설명 등
        . HTTP 메세지는, 이미지,비디오,오디오,HTML 문서,전자메일 등의 개체들을 운반 가능

  ㅇ 주요 항목들

     - Content-Type : 해당 개체에 포함되는 미디어 타입 정보MIME 참조
        . MIME 미디어 타입 및 문자 인코딩 방식(EUC-KR,UTF-8 등)을 지정
        . 구성 : 타입 및 서브타입(type/subtype)으로 구성 
           .. 타입(type)은, 10개 정도 표준으로 지정됨 ☞ IANA 미디어 타입 종류
           .. 즉, (application,audio,font,example,image,message,model,multipart,text,video)
           .. 서브타입(subtype)은, 각 타입별로 수십에서 수백개 정도
        . 例) text/html; charset-latin-1 
           .. 해당 개체html으로 표현된 텍스트 문서이고,
           .. iso-latin-1 문자 인코딩 방식으로 표현됨
     - Content-Language : 해당 개체와 가장 잘 어울리는 자연언어
     - Content-Encoding : 해당 개체 데이터의 압축 방식
        . 만일, 압축이 시행되었다면, Content-Encoding 및 Content-Length 2개 항목을 토대로,
        . 해당 압축을 풀 수 있음
     - Content-Length : 전달되는 해당 개체바이트 길이 또는 크기(10진수)
        . 응답 메세지 바디의 길이를 지정하거나,
        . 특정 지정된 개체의 길이를 지정함
     - Content-Location : 해당 개체가 실제 어디에 위치하는가를 알려줌

     - Location : 리소스가 리다이렉트된 때에 이동된 주소, 또는 새로이 생성된 리소스 주소
        . 새로 생성된 경우에 HTTP 상태 코드 `201 Created`가 반환됨
        . 例) Location: http://www.ktword.co.kr/

     - Expires : 리소스가 지정된 일시까지 캐시로써 유효함
     - Last-Modified : 리소스를 마지막으로 갱신한 일시

     - Transfer-Encoding: chuncked
        . 동적으로 생성되어 바디 길이를 모르는 경우에 조금씩 전송 가능
        . 각 chunk 마다 그 시작에 16진수 길이를 삽입하여 chunk 길이를 알려줌


5. [참고사항]  표준 헤더 (표준 헤더)

  ㅇ 인접 두 서버(프록시 등) 간에 만 여향을 미치는 헤더 항목들
     - Keep-Alive, Transfer-Encoding, TE, Connection, Trailer, Upgrade,
       Proxy-Authorization, Proxy-Authenticate


[HTTP] 1. HTTP 2. HTTP 메세지 3. HTTP 헤더 4. HTTP 헤더 항목 5. HTTP 메소드 6. HTTP 상태코드 7. 프록시 8. 캐시 9. 쿠키 10. HTTPS

 
        최근수정     요약목록     참고문헌