安全测试 - HTTP 参数



HTTP 参数

这里我们将讨论一些重要的 HTTP 协议参数及其语法,这些参数在编写 HTTP 客户端或服务器程序时构建请求和响应消息时是必需的。在后续章节中,我们将在解释 HTTP 请求和响应的消息结构时,涵盖这些参数的完整用法。

HTTP 版本

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

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

示例

HTTP/1.0

or

HTTP/1.1

统一资源标识符 (URI)

URI 只是一个格式化的、不区分大小写的字符串,包含名称、位置等信息以识别资源。例如,网站名称、Web 服务等。HTTP 使用的 URI 的一般语法如下:

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

这里,如果端口为空或未给出,则 HTTP 假设端口为 80,并且空绝对路径等效于“/”的绝对路径。除了保留不安全集中的字符外,其他字符等效于其“%”HEX HEX”编码。

示例

以下三个 URI 等效:

http://abc.com:80/~smith/home.html
http://ABC.com/%7Esmith/home.html
http://ABC.com:/%7esmith/home.html

日期/时间格式

所有 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

字符集

您可以使用字符集来指定客户端首选的字符集。可以使用逗号分隔多个字符集。如果未指定值,则默认为 US-ASCII。

示例

以下字符集有效:

US-ASCII

or

ISO-8859-1

or 

ISO-8859-7

内容编码

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

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

示例

以下是有效的编码方案:

Accept-encoding: gzip

or

Accept-encoding: compress

or 

Accept-encoding: deflate

媒体类型

HTTP 在Content-TypeAccept标头字段中使用 Internet 媒体类型,以便提供开放且可扩展的数据类型和类型协商。所有媒体类型值均在 Internet Assigned Number Authority ((IANA) 中注册。以下一般语法指定媒体类型:

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

类型、子类型和参数属性名称不区分大小写。

示例

Accept: image/gif

语言标签

HTTP 在Accept-LanguageContent-Language字段中使用语言标签。语言标签由 1 个或多个部分组成:一个主要语言标签和一个可能为空的子标签序列:

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

标签内不允许使用空格,所有标签都不区分大小写。

示例

示例标签包括:

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

其中任何两个字母的主要标签都是 ISO-639 语言缩写,任何两个字母的初始子标签都是 ISO-3166 国家代码。

http_protocol_basics.htm
广告

© . All rights reserved.