Python - Request 请求状态码
HTTP 状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一。所示的消息短语是典型的,但是可以提供任何可读取的替代方案。 除非另有说明,状态码是HTTP / 1.1标准(RFC 7231)的一部分。
在接收并解释请求消息后,服务器以 HTTP 响应消息进行响应。 响应消息有一个状态代码。 它是一个 3 位整数,其中 Status-Code 的第一位定义响应的类别,最后两位没有任何分类作用。 第一位有5个值:
状态码
S.N. | 代码和描述 |
---|---|
1 | 1xx: Informational 这意味着请求已收到,并且该过程正在继续。 |
2 | 2xx: Success 表示动作被成功接收、理解、接受。 |
3 | 3xx: Redirection 这意味着必须采取进一步的行动才能完成请求。 |
4 | 4xx: Client Error 这意味着请求包含错误的语法或无法实现。 |
5 | 5xx: Server Error 这意味着服务器未能完成明显有效的请求。 |
成功响应
在下面的示例中,我们从 url 访问文件并且响应成功。 所以返回的状态码是200。
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
不成功的响应
在下面的例子中,我们从一个不存在的 url 访问一个文件。 响应不成功。 所以返回的状态码是403。
import urllib3 http = urllib3.PoolManager() resp = http.request('GET', 'http://tutorialspoint.com/robot.txt') print resp.data # get the status of the response print resp.status
当运行上面的程序时,得到以下输出 −
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don't have permission to access /robot.txt on this server.</p> </body></html> 403