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