Python HTTP请求

原文:https://www.yiibai.com/python_network_programming/python_http_requests.html

http或超文本传输协议适用于客户端服务器模型。通常,Web浏览器是客户端,托管网站的计算机是服务器。在python中,我们使用requests模块创建http请求。它是一个非常强大的模块,除了简单的请求和响应数据外,还可以处理http通信的许多方面。它可以处理身份验证,压缩/解压缩,分块请求等。

HTTP客户端以请求消息的形式向服务器发送HTTP请求,该消息包括以下格式:

以下各节说明了HTTP请求消息中使用的每个实体。

1. 请求行

请求行以方法令牌开头,然后是请求URI和协议版本,最后以CRLF结尾。元素由空格SP字符分隔。

Request-Line = Method SP Request-URI SP HTTP-Version CRLF

让我们讨论请求行中提到的每个部分。

请求方法
请求方法表示要对由给定Request-URI标识的资源执行的方法。该方法区分大小写,应始终以大写形式提及。下表列出了HTTP/1.1中所有受支持的方法。

让我们讨论请求行中提到的每个部分。

2. 请求方法

请求方法表示要对由给定Request-URI标识的资源执行的方法。该方法区分大小写,应始终以大写形式。下表列出了HTTP/1.1中所有受支持的方法。

编号 方法 描述
1 GET GET方法用于使用给定URI从给定服务器检索信息。使用GET的请求应仅检索数据,而对数据没有其他影响。
2 HEAD 与GET相同,但只传输状态行和标头部分。
3 POST POST请求用于使用HTML表单将数据发送到服务器,例如,客户信息,文件上传等。
4 PUT 使用上载的内容替换目标资源的所有当前表示形式。
5 DELETE 删除URI给定的目标资源的所有当前表示形式。
6 CONNECT 建立到由给定URI标识的服务器的隧道。
7 OPTIONS 描述目标资源的通信选项。
8 TRACE 与目标资源的路径一起执行消息回送测试。

3. Request-URI

Request-URI是统一资源标识符,用于标识在其上应用请求的资源。以下是指定URI的最常用形式:

Request-URI = "*" | absoluteURI | abs_path | authority
GET /pub/WWW/TheProject.html HTTP/1.1

Host: www.w3.org

4. 使用Python请求

我们将使用requests模块来了解http请求。安装:

pip install requests

在下面的示例中,我们看到一个简单的GET请求的情况,并打印出响应的结果。选择打印前300个字符。

# How to make http request
import requests as req
r = req.get('http://www.yiibai.com/python/')
print(r.text)[0:300]