"HTTP 헤더"가 가리키는 것은

3351 단어 ietfrfcHTTP
평상시 "HTTP 헤더"라고 부르는 것에 대해서, 사양상은 "header fields"라고 부르기도 했거나, 스스로도 정리할 수 없었다.

앞으로도 HTTP 관련 사양을 읽어 가는데도 이해해 두고 싶었으므로, 이 기사에서는, 이하의 용어에 대해 정리해 나간다
  • HTTP field
  • header/trailer field
  • field line

  • HTTP 의미론



    우선, 참조하는 문서에 대해서 간단하게 보충합니다. 이번 접하는 용어는, HTTP 시멘틱스의 사양인 「 HTTP Semantics (드래프트판)」로 정의되고 있습니다.

    HTTP 의미론은 HTTP 메시지(HTTP 메소드, 응답 코드, 필드)의 의미를 정의합니다.

    각 HTTP/1.1~HTTP/3의 사양에서는 이 HTTP 메시지를 어떻게 보내는지(예를 들어, HTTP/2에서는 스트림상의 프레임으로 송신하는)를 정의하고 있다.

    원래, HTTP 시멘틱스는 「 RFC7231 HTTP/1.1: Semantics and Content 그러나, HTTP/1.1의 사양으로부터 시멘틱스의 정의를 빼내, HTTP/2~HTTP/3의 사양으로부터 참조할 수 있도록 문서의 정리 작업이 행해지고 있다.

    그것이 먼저 소개한 「HTTP Semantics(드래프트판)」입니다.

    그럼 보자.

    용어



    HTTP 필드



    HTTP field (필드)는 HTTP 메시지 및 페이로드에 대한 정보를 전달하는 키/가치 데이터입니다 (HTTP 헤더라고 불리며 떠오르는 사람입니다)


    후술하는 header field와 trailer field를 구별하지 않을 때 간단히 field라고 합니다.

    또한 key를 field name, value를 field value라고합니다.

    header field, trailer field



    HTTP 요청 및 HTTP 응답과 같은 HTTP 메시지는 다음과 같은 구조를 갖습니다.



  • header section : 몸 앞에 오는 필드가 들어가는 영역

  • content: HTTP 바디. POST 요청으로 업로드 할 파일 및 HTTP 응답 데이터

  • 트레일러 섹션 : body 다음에 필드가 들어가는 영역

  • header section에 있는 field가 header field이다(또는 단순히 헤더라고 부른다). trailer section에 있는 field가 trailer field이다.

    별로 알려지지 않은 기능이지만, HTTP에서는 content를 보낸 후 trailer로서 field를 보낼 수 있다. 여기에 오는 field는 일반어로서의 헤더가 아니기 때문에, header field, trailer field라고 부르게 되었다.

    filed line



    또, field line (필드 라인)이라고 하는 것도 있다.

    이것은 HTTP/1.1 과 같이 : 로 name/value 를 단락한 표기를 field line 이라고 부른다.



    사용 예



    trailer를 사용하는 것은 많지 않다고 생각하고, header field를 가리키고 단순히 "헤더"라고 부르는 것은 문제 없을 것 같다. 단지 헤더명, 헤더값이라는 말은 적절하지 않을지도 모른다.

    "Structured Field Values ​​for HTTP"와 같이, header field에 한정되지 않는 것 같은 사양은 field라고 하는 말이 옳다 (실제, 이 사양은 「Structured Header」로부터 「Structured Field」로 개칭되었다)

    참고



    이러한 정리에는 많은 논의가 있습니다. 의문점이나 혼란이 있는 분은, 하기가 참고가 된다.
    - [http-core] Header terminology #111
    - What we call "headers"

    좋은 웹페이지 즐겨찾기