- Python - 网络编程
- Python - 网络入门
- Python - 网络环境
- Python - 互联网协议
- Python - IP 地址
- Python - DNS 查询
- Python - 路由
- Python - HTTP 请求
- Python - HTTP 响应
- Python - HTTP 头部
- Python - 自定义 HTTP 请求
- Python - 请求状态码
- Python - HTTP 认证
- Python - HTTP 数据下载
- Python - 连接重用
- Python - 网络接口
- Python - Socket 编程
- Python - HTTP 客户端
- Python - HTTP 服务端
- Python - 构建 URL
- Python - Web 表单提交
- Python - 数据库和 SQL
- Python - Telnet
- Python - 电子邮件
- Python - SMTP
- Python - POP3
- Python - IMAP
- Python - SSH
- Python - FTP
- Python - SFTP
- Python - Web 服务器
- Python - 上传数据
- Python - 代理服务器
- Python - 目录列表
- Python - 远程过程调用
- Python - RPC JSON 服务器
- Python - Google 地图
- Python - RSS Feed
Python - HTTP 头部
客户端和服务器之间的请求和响应包含消息中的头部和主体。头部包含协议特定的信息,这些信息出现在通过 TCP 连接发送的原始消息的开头。消息主体使用空行与头部隔开。
头部示例
HTTP 响应中的头部可以分为以下几类。下面是头部描述和示例。
Cache-Control
Cache-Control 通用头部字段用于指定所有缓存系统都必须遵守的指令。语法如下:
Cache-Control : cache-request-directive|cache-response-directive
HTTP 客户端或服务器可以使用Cache-control通用头部来指定缓存参数或请求缓存中的特定类型的文档。缓存指令以逗号分隔的列表的形式指定。例如:
Cache-control: no-cache
Connection
Connection 通用头部字段允许发送方指定对该特定连接所需的选项,并且不得通过代理在进一步的连接上传递。以下是使用连接头部的简单语法:
Connection : "Connection"
HTTP/1.1 定义了“close”连接选项,用于发送方发出在响应完成之后关闭连接的信号。例如:
Connection: close
默认情况下,HTTP 1.1 使用持久连接,其中连接在事务完成后不会自动关闭。另一方面,HTTP 1.0 默认情况下不使用持久连接。如果 1.0 客户端希望使用持久连接,则它使用keep-alive参数,如下所示:
Connection: keep-alive
Date
所有 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 头部字段的语法如下:
Transfer-Encoding: chunked
所有传输编码值不区分大小写。
Upgrade
Upgrade 通用头部允许客户端指定它支持的附加通信协议,如果服务器认为切换协议合适,则客户端希望使用这些协议。例如:
Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Upgrade 头部字段旨在提供一种从 HTTP/1.1 到其他不兼容协议的简单转换机制。
Via
网关和代理必须使用Via 通用头部来指示中间协议和接收方。例如,请求消息可以从名为“fred”的内部代理(使用 HTTP/1.1 将请求转发到 nowhere.com 的公共代理)的 HTTP/1.0 用户代理发送,该公共代理通过将其转发到 www.ics.uci.edu 的原始服务器来完成请求。www.ics.uci.edu 收到的请求将具有以下 Via 头部字段:
Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Upgrade 头部字段旨在提供一种从 HTTP/1.1 到其他不兼容协议的简单转换机制。
Warning
Warning 通用头部用于携带有关消息状态或转换的附加信息,这些信息可能未反映在消息中。响应可以携带多个 Warning 头部。
Warning : warn-code SP warn-agent SP warn-text SP warn-date
示例
在下面的示例中,我们使用 urllib2 模块使用 urlopen 获取响应。接下来,我们应用 info() 方法来获取该响应的头部信息。
import urllib2 response = urllib2.urlopen('https://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