📜  Python -HTTP标头

📅  最后修改于: 2020-11-06 06:27:51             🧑  作者: Mango


客户端和服务器之间的请求和响应涉及消息中的标头和正文。标头包含特定于协议的信息,这些信息出现在通过TCP连接发送的原始消息的开头。邮件的正文与标题使用空白行分隔。

标头示例

http响应中的标头可以分为以下类型。以下是标题的说明和示例。

缓存控制

Cache-Control general-header字段用于指定所有缓存系统必须遵守的指令。语法如下:

Cache-Control : cache-request-directive|cache-response-directive

HTTP客户端或服务器可以使用“缓存控制”常规标头来指定缓存参数或从缓存中请求某些类型的文档。缓存指令在逗号分隔的列表中指定。例如:

Cache-control: no-cache

连接

连接通用标题字段允许发送方指定该特定连接所需的选项,并且代理不能通过其他连接传达这些选项。以下是使用连接头的简单语法:

Connection : "Connection"

HTTP / 1.1为发送方定义了“关闭”连接选项,以指示响应完成后将关闭连接。例如:

Connection: close

默认情况下,HTTP 1.1使用持久连接,该连接在事务处理后不会自动关闭。另一方面,默认情况下,HTTP 1.0没有持久连接。如果1.0客户端希望使用持久连接,则它使用keep-alive参数,如下所示:

Connection: keep-alive

日期

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

传输编码

Transfer-Encoding的一般标头字段指示已将哪种类型的转换应用于邮件正文,以便在发送方和接收方之间安全地进行转换。这与内容编码不同,因为传输编码是消息的属性,而不是实体主体的属性。 Transfer-Encoding标头字段的语法如下:

Transfer-Encoding: chunked

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

升级

升级通用标头允许客户端指定其支持的其他通信协议,并在服务器认为适合切换协议时使用。例如:

Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

升级标头字段旨在提供一种从HTTP / 1.1过渡到其他不兼容协议的简单机制。

通过

网关和代理必须使用Via通用标头来指示中间协议和接收者。例如,可以将请求消息从HTTP / 1.0用户代理发送到名为“ fred”的内部代理,该代理使用HTTP / 1.1将请求转发到nowhere.com上的公共代理,该代理通过以下方式完成请求:将其转发到位于www.ics.uci.edu的原始服务器。 www.ics.uci.edu收到的请求将具有以下Via标头字段:

Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)

升级标头字段旨在提供一种从HTTP / 1.1过渡到其他不兼容协议的简单机制。

警告

警告通用标头用于携带有关消息状态或转换的其他信息,这些信息可能未反映在消息中。一个响应可能包含多个警告标头。

Warning : warn-code SP warn-agent SP warn-text SP warn-date

在下面的示例中,我们使用urllib2模块使用urlopen获得响应。接下来,我们应用info()方法来获取该响应的标头信息。

import urllib2
response = urllib2.urlopen('http://www.tutorialspoint.com/python')
html = response.info()
print html

当我们运行上面的程序时,我们得到以下输出-

Access-Control-Allow-Headers: X-Requested-With
Access-Control-Allow-Origin: *
Cache-Control: max-age=2592000
Content-Type: text/html; charset=UTF-8
Date: Mon, 02 Jul 2018 11:06:07 GMT
Expires: Wed, 01 Aug 2018 11:06:07 GMT
Last-Modified: Sun, 01 Jul 2018 21:05:38 GMT
Server: ECS (tir/CDD1)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 22063
Connection: close