HTTP参数解析

本文概述

在本节中, 我们将讨论各种HTTP参数及其语法。例如, 日期和时间格式, 字符集等。这些参数用于在编写客户端或服务器的HTTP程序时构造请求和响应消息。

HTTP的各种参数如下:

HTTP版本

为了指示协议的版本, HTTP使用<major>。<minor>编号方案。协议版本控制策略允许发送方指示消息的格式及其理解进一步HTTP通信的能力。

HTTP版本字段中的第一行指示HTTP消息的版本。

句法

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

HTTP / 1.1

实体标签

实体标签用于比较来自同一请求资源的两个或多个实体。

句法

entity-tag = [ weak ] opaque-tag
weak = "W/"
opaque-tag = quoted-string

实体标签在与特定资源关联的所有实体版本中必须是唯一的。

日期/时间格式

日期/时间格式可以通过两种方式定义:

1)完整日期:

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

在HTTP中, GMT完全等于UTC(世界标准时间), 在前两种格式中通过包含“ GMT”来表示。

2)三角洲秒

HTTP标头的某些字段允许使用时间值, 该时间值指定为整数秒数, 该时间值将在接收到消息的时间之后以十进制表示。

delta-seconds = 1*DIGIT

统一资源标识符(URI)

URI是格式简单的不区分大小写的字符串, 其中包含用于标识网站或Web服务器的名称, 位置等。

句法:

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

这里,

  • “ http”方案用于通过HTTP协议定位网络资源。
  • 如果端口为空, 则假定端口为80。如果abs_path为空, 则等效于aabs_pathof“ /”。 “不安全”和“保留”集中的字符等同于其“ %% HEX HEX”编码。
  • 主机名的比较必须不区分大小写。

例:

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

字符集

字符集用于指定用户喜欢的字符集。使用逗号, 可以分隔多个字符集。 HTTP字符集使用不区分大小写的标记来标识。

charset = token

ISO-8859-1

Or 

US-ASCII

内容编码

内容编码值用于显示已应用于实体的编码转换。首先, 内容编码用于允许对文档进行压缩或转换而不会丢失信息。在内容编码中, 实体以编码形式存储, 直接传输, 并且只有其编码的接收者。

content-coding   = token

内容编码的所有值都不区分大小写。在“接受编码”和“内容编码”标头字段中, HTTP / 1.1使用内容编码值。

Accept-encoding: gzip

or

Accept-encoding: compress

转移编码

传输编码的值用于指示已应用于实体以确保通过网络的“安全传输”的编码转换。传输编码与内容编码不同。传输编码是消息的属性, 而不是原始实体。

句法:

transfer-coding = "chunked" | transfer-extension
transfer-extension = token *( ";" parameter )

在传输编码中, 参数采用属性/值对的形式。

例:

Parameter = attribute "=" value
Attribute = token
Value = token | quoted-string

传输编码的所有值都不区分大小写。

产品代币

产品令牌使通信应用程序可以通过软件的版本和名称来标识自己。产品令牌应指向重点且简短。

句法

product = token ["/" product-version]
product-version = token

User-Agent: CERN-LineMode/2.15 libwww/2.17b3
Server: Apache/0.8.4

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?