< 上一个 | 内容 | 下一个 >

5.4 HTTP headers


5.4.1 Introduction


HTTP/1.1 defines a variety of header types that have the potential to be verbose. As an example, the Accept header is illustrated below showing lengths varying from 35 octets to 106 octets:

Accept: audio/*; q=0.2, audio/basic (35 octets)

Accept: text/*; q=0.3, text/html; q=0.7, text/html; level=1, text/html; level=2; q=0.4, */*; q=0.5 (92 octets)

Accept: text/xml, application/xml, application/xhtml+xml, text/html; q=0.9, text/plain; q=0.8, image/png, */*; q=0.5 (106 octets)

Given the packet size constraints for many IEEE 2030.5 networks, the set of HTTP headers supported must be curtailed through best practices recommendations realizing that a host cannot prevent a verbose message from being sent to it.


IEEE 2030.5 provides a set of mandatory, optional, and discouraged recommendations for each HTTP header. IEEE 2030.5 implementations SHOULD employ only mandatory HTTP headers, minimize the use of optional HTTP headers, and avoid the use of discouraged headers.


5.4.2 HTTP header field recommended usage


In the following table, the HTTP/1.1 header fields have been annotated with the following labels:

MANDATORY: Support for the field is REQUIRED.

OPTIONAL: Support for this field is left to the implementer’s discretion.

DISCOURAGED: To conserve code space and/or bandwidth, support for this field, while not explicitly forbidden, is not recommended.

Table 1 summarizes the recommended use of HTTP/1.1 headers in IEEE Std 2030.5. This table is provided as informative guidance, particularly to suit constrained networks and devices, and IETF RFC 7230, IETF RFC 7231, IETF RFC 7232, IETF RFC 7233, IETF RFC 7234, and IETF RFC 7235 are the authoritative

references for compliance.


Table 1 —HTTP headers


Header

Used in message type

IETF RFC required/optional

IEEE 2030.5 use

Accept

Request


Optional

Mandatory

Accept-Charset

Request


Optional

Discouraged

Accept-Encoding

Request


Optional

Discouraged

Accept-Language

Request


Optional

Discouraged

Accept-Ranges

Request

Response

Optional

Discouraged

Age


Response

Optional (required for a cache)

Discouraged

Allow


Response

Required

Mandatory

Authorization

Request

Response

Optional

Discouraged

Cache-Control

Request

Response

Optional

Discouraged

Connection

Request


Optional (required in some situations [e.g., HTTP/1.1

applications that do not support persistent connections])

Optional (mandatory in some situations)

Content-Encoding


Response

Optional (required when an

encoding is applied)

Discouraged

Content-Language


Response

Optional

Discouraged

Content-Length

Request

Response

Optional (required in many situations, see Section 3.3.2 of IETF RFC 7230)

Optional (required in many situations, see Section 3.3.2 of IETF RFC 7230)

Content-Location


Response

Optional

Discouraged

Content-MD5


Response

Optional

Discouraged

Content-Range


Response

Optional

Optional (see 9.8.2.3)

Content-Type

Request

Response

Required

Mandatory

Cookies

Request


Optional

Discouraged

Date

Request

Response

Mandatory

Mandatory

ETag


Response

Optional

Optional (see 9.8.2.3)

Expect

Request


Optional

Discouraged

Expires


Response

Optional

Discouraged

From

Request


Optional

Discouraged

Host

Request


Required

Mandatory

If-Match

Request


Optional

Discouraged

If-Modified-Since

Request


Optional

Discouraged

If None-Match

Request


Optional

Discouraged

If-Range

Request


Optional

Discouraged

If-Unmodified-Since

Request


Optional

Discouraged

Last-Modified


Response

Optional

Discouraged

Location


Response

Optional

Mandatory in many situations

(e.g., POST responses)

Max-Forwards

Request


Optional

Discouraged

Pragma

Request

Response

Optional

Discouraged

Proxy-Authenticate


Response

Optional

Discouraged

Proxy-Authorization

Request


Optional

Discouraged

Range

Request


Optional

Optional (see 9.8.2.3)

Referer

Request


Optional

Discouraged

Retry-After


Response

Optional

Discouraged

Server


Response

Optional

Discouraged

Set-Cookie


Response

Optional

Discouraged

TE

Request


Discouraged

Discouraged

Trailer


Response

Discouraged

Discouraged

Transfer-Encoding


Response

Optional

Discouraged

Upgrade

Request


Optional

Discouraged

User-Agent

Request


Optional

Discouraged

Vary


Response

Discouraged

Discouraged

Via

Request

Response


Discouraged

Warning

Request

Response

Discouraged

Discouraged

WWW-Authenticate


Response

Optional

Discouraged