- Python网络编程简介
- Python网络编程开发环境
- Python Internet协议模块
- 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 HTTP请求
http或超文本传输协议适用于客户端服务器模型。通常,Web浏览器是客户端,托管网站的计算机是服务器。在python中,我们使用requests
模块创建http请求。它是一个非常强大的模块,除了简单的请求和响应数据外,还可以处理http通信的许多方面。它可以处理身份验证,压缩/解压缩,分块请求等。
HTTP客户端以请求消息的形式向服务器发送HTTP请求,该消息包括以下格式:
- 请求行;
- 零个或多个标头(General | Request | Entity)字段,后跟CRLF;
- 空行(即在CRLF之前没有任何内容的行)指示标头字段的结尾;
- 消息正文(可选);
以下各节说明了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
当HTTP请求不适用于特定资源而是服务器本身时,将使用星号
*
;仅当所使用的方法不一定适用于资源时,才使用星号*
。例如:OPTIONS * HTTP/1.1
向代理发出HTTP请求时,将使用absoluteURI。请求代理转发来自有效缓存的请求或服务,并返回响应。例如:
GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1
Request-URI的最常见形式是用于标识源服务器或网关上的资源的形式。例如,希望直接从原始服务器检索资源的客户端将创建到主机“ www.w3.org” 的端口80的TCP连接,并发送以下行:
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.zyiz.net/python/') print(r.text)[0:300]
上一篇:Python路由
下一篇:Python HTTP响应
扫描二维码
程序员编程王