欢迎访问宙启技术站
智能推送

使用Python编写程序,解析和获取HTTP请求的所有头部信息

发布时间:2024-01-16 10:47:21

在Python中,我们可以使用内置的HTTP库http.client来解析和获取HTTP请求的所有头部信息。以下是使用Python编写的一个示例程序,它能够发送HTTP请求并获取其响应的所有头部信息。

import http.client

# 请求的主机名和端口号
host = "www.example.com"
port = 80

# 创建一个HTTP连接
conn = http.client.HTTPConnection(host, port)

# 发送GET请求
conn.request("GET", "/")

# 获取HTTP响应
response = conn.getresponse()

# 打印响应的状态码和原因
print("Status:", response.status, response.reason)

# 打印所有头部信息
headers = response.getheaders()
print("
".join(f"{h[0]}: {h[1]}" for h in headers))

# 关闭HTTP连接
conn.close()

在上面的示例中,我们首先指定请求的主机名和端口号,并使用http.client.HTTPConnection创建一个HTTP连接。然后,我们使用conn.request方法发送GET请求,并使用conn.getresponse获取HTTP响应。

在响应对象上,我们可以使用response.status获取响应的状态码,使用response.reason获取状态码的原因。我们可以使用response.getheaders方法获取所有头部信息,返回一个列表。最后,我们使用循环打印出每个头部的名称和值。

最后,我们调用conn.close方法关闭HTTP连接。

你可以将上述代码保存为Python文件,并执行它来看到它获取的HTTP头部信息的结果。

$ python3 http_headers.py
Status: 200 OK
Date: Sat, 01 Jan 2022 00:00:00 GMT
Server: Apache
Content-Type: text/html;charset=UTF-8
Content-Length: 1234
...

上述示例中的服务器回应了一个包含一些头部信息的200 OK响应。你可以根据你自己的需求更改请求的主机名、端口号和路径,以及处理获取到的头部信息的方式。