Python HTTP请求响应模型
什么是HTTP?
HTTP全称是超文本传输协议(Hypertext Transfer Protocol),是一种在Web上进行数据通信的协议,它基于客户端与服务器之间的请求和响应模型。常用的HTTP方法有GET、POST、PUT、DELETE等。
HTTP请求模型
-
请求模型一般由下列几个部分组成:
-
请求方法:如GET、POST等。
-
路径:即请求的路径,表明请求的目标资源。
-
协议/版本:即使用的HTTP协议以及其版本号。
-
请求头:一些可选的、可为空的附加信息。
-
请求主体:附加的数据信息,如POST请求中的表单数据。
HTTP响应模型
-
响应模型一般由下列几个部分组成:
-
状态码:服务器对请求实体识别、处理的结果进行分类的数字代码。
-
状态码短语:附加到状态码后的、简短文本描述。
-
HTTP协议/版本:请求所使用的HTTP协议以及其版本号。
-
响应头:一些可选的、可为空的附加信息。
-
响应主体:由服务器返回的数据信息,如HTML、JSON等。
Python进行HTTP请求和响应
Python提供了requests
模块,使用该模块可以便捷地进行HTTP请求和响应。下面通过两个具体的示例讲解如何使用requests
模块。
GET请求
import requests
response = requests.get('http://httpbin.org/get')
print(response.status_code) # 输出状态码
print(response.text) # 输出响应正文内容
上述代码表示向httpbin.org
服务器发送了一个GET请求,并输出了状态码和响应正文内容。其中:
-
requests.get('http://httpbin.org/get')
表示发送GET请求,请求的是http://httpbin.org/get
路径。 -
response.status_code
表示输出状态码,如200
表示请求成功,404
表示请求资源未找到等。 -
response.text
表示输出响应文本,即服务器返回的数据内容。
POST请求
import requests
data = {'name': 'tom', 'age': 20}
response = requests.post('http://httpbin.org/post', data=data)
print(response.status_code) # 输出状态码
print(response.json()) # 输出响应JSON数据内容
上述代码表示向httpbin.org
服务器发送了一个POST请求,并输出了状态码和响应JSON数据内容。其中:
-
data = {'name': 'tom', 'age': 20}
表示POST请求附加的表单数据,可以根据具体需要设置。 -
requests.post('http://httpbin.org/post', data=data)
表示向服务器发送POST请求,请求的目标路径为http://httpbin.org/post
,请求数据为data
中的表单数据。 -
response.json()
表示输出响应JSON数据内容,具体内容根据请求返回内容而定。