HTTP-参数

本文将列出一些重要的HTTP协议参数及其在通信中使用的语法。例如,日期格式,URL格式等。这将有助于您在编写HTTP客户端或服务器程序时构造请求和响应消息。

1 HTTP版本

HTTP使用<major>编号方案来指定HTTP协议的版本。HTTP消息的版本由第一行中的HTTP-Version字段指定。以下为指定HTTP版本号语法:

HTTP-Version   = "HTTP" "/" 1*DIGIT "." 1*DIGIT

例如:

HTTP/1.0

or

HTTP/1.1

2 URI

URI(统一资源标识符)格式简单,不区分大小写,包含名称,位置等字符串,用于标识资源,例如:网站,Web服务等。用于HTTP的URI的通用语法如下:

URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

在这里,如果端口为空或未指定端口,则默认端口为80,并且空的abs_path等效于abs_path的"/"。

3 日期/时间格式

所有HTTP日期/时间戳都必须以格林威治标准时间(GMT)表示。允许HTTP应用程序使用日期/时间戳的以下三种表示形式中的任何一种:

Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format

4 字符集

我们使用字符集来指定客户喜欢的字符集。可以列出多个字符集,以逗号分隔。如果未指定值,则默认值为US-ASCII。

例如,以下是有效的字符集:

US-ASCII

or

ISO-8859-1

or 

ISO-8859-7

5 内容编码

内容编码值,表示在通过网络传递内容之前已使用编码算法对内容进行编码。内容编码主要用于允许在不丢失身份的情况下对文档进行压缩或其他有用的转换。

所有内容编码值都不区分大小写。HTTP/1.1在Accept-Encoding和Content-Encoding标头字段中使用内容编码值。

例如,以下是有效的编码方案:

Accept-encoding: gzip

or

Accept-encoding: compress

or 

Accept-encoding: deflate

6 媒体类型

HTTP在Content-Type和Accept请求头中使用Internet Media Types,以提供开放的和可扩展的数据类型以及类型协商。所有媒体类型值都已向Internet分配号码授权机构(IANA)注册。指定媒体类型的一般语法如下:

media-type     = type "/" subtype *( ";" parameter )

type,subtype和parameter名称不区分大小写。

例如:

Accept: image/gif

7 语言

HTTP在"Accept-Language"和"Content-Language"请求头使用语言标签。语言标签由一个或多个部分组成:主要语言标签和可能为空的一系列子标签:

language-tag  = primary-tag *( "-" subtag )

tag内不允许有空格,并且所有tab都不区分大小写。

例如

en, en-US, en-cockney, i-cherokee, x-pig-latin