📅  最后修改于: 2020-11-06 06:27:21             🧑  作者: Mango
http或超文本传输协议适用于客户端服务器模型。通常,Web浏览器是客户端,托管网站的计算机是服务器。在收到客户端的请求后,服务器会生成响应并将其以某种格式发送回客户端。
在接收并解释了请求消息后,服务器将以HTTP响应消息进行响应:
以下各节说明了HTTP响应消息中使用的每个实体。
状态行由协议版本,后面的数字状态代码及其关联的文本短语组成。元素由空格SP字符分隔。
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
支持HTTP版本1.1的服务器将返回以下版本信息:
HTTP-Version = HTTP/1.1
Status-Code元素是一个三位数的整数,其中Status-Code的第一位定义响应的类别,而后两位不具有任何分类作用。第一位数字有5个值:
S.N. | Code and Description |
---|---|
1 | 1xx: Informational
It means the request was received and the process is continuing. |
2 | 2xx: Success
It means the action was successfully received, understood, and accepted. |
3 | 3xx: Redirection
It means further action must be taken in order to complete the request. |
4 | 4xx: Client Error
It means the request contains incorrect syntax or cannot be fulfilled. |
5 | 5xx: Server Error
It means the server failed to fulfill an apparently valid request. |
HTTP状态代码是可扩展的,不需要HTTP应用程序来了解所有已注册状态代码的含义。
在下面的Python程序中,我们使用urllib3模块发出http GET请求并接收包含数据的响应。它还提供了响应代码,该响应代码也由模块中的功能管理。 PoolManager对象处理连接池的所有详细信息,还处理线程安全性。
import urllib3
http = urllib3.PoolManager()
resp = http.request('GET', 'http://tutorialspoint.com/robots.txt')
print resp.data
# get the status of the response
print resp.status
当我们运行上面的程序时,我们得到以下输出-
User-agent: *
Disallow: /tmp
Disallow: /logs
Disallow: /rate/*
Disallow: /cgi-bin/*
Disallow: /videotutorials/video_course_view.php?*
Disallow: /videotutorials/course_view.php?*
Disallow: /videos/*
Disallow: /*/*_question_bank/*
Disallow: //*/*/*/*/src/*
200