详解Python HTTP 请求响应模型

  • Post category:Python

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数据内容,具体内容根据请求返回内容而定。