有关http请求返回值的说明
- 格式:doc
- 大小:28.50 KB
- 文档页数:7
HTTP 状态码知道哪些?1. 临时响应100——客户必须继续发出请求101——客户要求服务器根据请求转换HTTP 协议版本2. 成功200——服务器成功返回网页201——提示知道新文件的URL202——接受和处理、但处理未完成。
203——返回信息不确定或不完整204——请求收到,但返回信息为空。
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件。
206——服务器已经完成了部分用户的GET 请求3. 重定向300——请求的资源可在多处得到301——删除请求数据302——在其他地址发现了请求数据303——建议客户访问其他URL 或访问方式304——客户端已经执行了GET,但文件未变化。
305——请求的资源必须从服务器指定的地址得到306——前一版本HTTP 中使用的代码,现行版本中不再使用。
307——申明请求的资源临时性删除4. 客户端错误400——错误请求,如语法错误401——请求授权失败402——保留有效ChargeTo 头响应403——请求不允许404——请求的网页不存在405——用户在Request-Line 字段定义的方法不允许406——根据用户发送的Accept 拖,请求资源不可访问。
407——类似401,用户必须首先在代理服务器上得到授权。
408——客户端没有在用户指定的饿时间内完成请求409——对当前资源状态,请求不能完成。
410——服务器上不再有此资源且无进一步的参考地址411——服务器拒绝用户定义的Content-Length 属性请求412——一个或多个请求头字段在当前请求中错误413——请求的资源大于服务器允许的大小414——请求的资源URL 长于服务器允许的长度415——请求资源不支持请求项目格式416——请求中包含Range 请求头字段,在当前请求资源范围内没有range 指示值,请求也不包含If-Range 请求头字段。
417——服务器不满足请求Expect 头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求。
http协议中各个响应状态返回值(200、400、404、500等)的含义1.该类型状态码表⽰接收到请求并且继续处理100:客户端必须继续发出请求。
101:客户端要求服务器根据请求转换HTTP协议版本。
2.该类型状态码表⽰动作被成功接收、理解和接受。
200,表明该请求被成功地完成,所请求的资源发送到客户端。
201,提⽰知道新⽂件的URL。
202,接受并处理,但处理未完成。
203,返回信息不确定或不完整。
204,收到请求,但返回信息为空.205,服务器完成了请求,⽤户必须复位当前已经浏览过的⽂件。
206,服务器已经完成了部分⽤户的GET请求。
3.该类型状态码表⽰为了完成指定的动作,必须接受进⼀步处理。
300,请求的资源可在多处获得。
301,本⽹页被永久性转移到另⼀个URL。
302,请求的⽹页被重定向到新的地址。
303,建议⽤户访问其他URL或访问⽅式。
304,⾃从上次请求后,请求的⽹页未修改过。
305,请求的资源必须从服务器指定的地址获得。
306,前⼀版本HTTP中使⽤的代码,现已不再使⽤。
307,声明请求的资源临时性删除。
4.该类型状态码表⽰请求包含错误语法或不能正确执⾏。
400,客户端请求有语法错误。
401,请求未经授权。
402,保留有效ChargeTo头响应。
403,禁⽌访问,服务器收到请求,但拒绝提供服务。
404,可连接服务器,但服务器⽆法取得所请求的⽹页,请求资源不存在。
405,⽤户在Request-Line字段定义的⽅法不被允许。
406,根据⽤户发送的Accept,请求资源不可访问。
407,类似401,⽤户必须⾸先在代理服务器上取得授权。
408,客户端没有在⽤户指定的时间内完成请求。
409,对当前资源状态,请求不能完成。
410,服务器上不再有此资源。
411,服务器拒绝⽤户定义的Content-Length属性请求。
412,⼀个或多个请求头字段在当前请求中错误。
413,请求的资源⼤于服务器允许的⼤⼩。
XMLHttpRequest发送POST、GET请求以及接收返回值使⽤XMLHttpRequest对象分为4部完成:1.创建XMLHttpRequest组建2.设置回调函数3.初始化XMLHttpRequest组建4.发送请求实例代码:[javascript]var userName;var passWord;var xmlHttpRequest;//XmlHttpRequest对象function createXmlHttpRequest(){if(window.ActiveXObject){ //如果是IEreturn new ActiveXObject("Microsoft.XMLHTTP");}else if(window.XMLHttpRequest){ //⾮IE浏览器return new XMLHttpRequest();}}function onLogin(){userName = ername.value;passWord = document.f1.password.value;var url = "LoginServlet?username="+userName+"&password="+passWord+"";//1.创建XMLHttpRequest组建xmlHttpRequest = createXmlHttpRequest();//2.设置回调函数xmlHttpRequest.onreadystatechange = zswFun;//3.初始化XMLHttpRequest组建xmlHttpRequest.open("POST",url,true);//4.发送请求xmlHttpRequest.send(null);}//回调函数function zswFun(){if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){var b = xmlHttpRequest.responseText;if(b == "true"){alert("登录成功!");}else{alert("登录失败!");}}}================================================================================[javascript]var xmlhttp;function verify1() {var username = document.getElementById("username").value;//确定浏览器if(window.XMLHttpRequest) {//针对FireFox、Mozillar、Opera、Safari、IE7、IE8//创建XMLHttpRequest对象xmlhttp = new XMLHttpRequest();//修正某些浏览器的BUGif(xmlhttp.overrideMimeType) {xmlhttp.overrideMimeType("text/");}}else if(window.ActiveXObject){//针对IE5、IE5.5、IE6//这两个为插件名称作为参数传递,为了创建ActiveXObjectvar activeName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(var i=0;i>activeName.length();i++) {try{//⾮别取出,如果创建成功则终⽌循环,如果失败则会抛出异常继续循环xmlhttp = new ActiveXObject(activeName[i]);break;}catch(e){}}}//确定XMLHttpRequest是否创建成功/*if(!xmlhttp) {alert("XMLHttpRequest创建失败!");return;}else {alert("XMLHttpRequest创建成功!"+xmlhttp);}*///注册回调函数xmlhttp.onreadystatechange=callback;url = "classisservlet?name="+username;//设置连接信息//1.是http请求的⽅式//2.是服务器的地址//3.是采⽤同步还是异步,true为异步//xmlhttp.open("GET",url,true);//post请求与get请求的区别//第⼀个参数设置成post第⼆个只写url地址,第三个不变xmlhttp.open("POST","classisservlet",true);//post请求要⾃⼰设置请求头xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //发送数据,开始与服务器进⾏交互//post发送请求xmlhttp.send("name="+username);}function callback() {//接收响应数据 //判断对象状态是否交互完成,如果为4则交互完成if(xmlhttp.readyState == 4) {//判断对象状态是否交互成功,如果成功则为200if(xmlhttp.status == 200) {//接收数据,得到服务器输出的纯⽂本数据var response = xmlhttp.responseText;//得到div的节点将数据显⽰在div上var divresult = document.getElementById("result");divresult.innerHTML = response;}}}[javascript]<span style="color:#ffffff;"></span>[plain]。
requests post 返回方法
requests.post()方法的返回值是一个Response对象,包含以下属性和方法:
1. status_code:HTTP 状态码,如 200 表示成功,404 表示未找到页面等。
2. text:HTTP 响应的内容,以字符串形式返回。
3. headers:HTTP 响应头。
4. encoding:HTTP 响应的编码方式,如 utf-8。
5. json():将 HTTP 响应的内容解析为 JSON 对象,如果响应内容不是 JSON 格式则会抛出异常。
6. raise_for_status():如果 HTTP 响应的状态码不是 200,则会抛出异常。
7. content:HTTP 响应的二进制内容,以字节串形式返回。
8. cookies:HTTP 响应的 cookies。
9. elapsed:HTTP 请求的响应时间(秒)。
10. history:HTTP 请求的历史记录,即之前的重定向响应。
11. is_redirect:如果 HTTP 响应是重定向,则返回 True。
12. links:HTTP 响应中包含的链接。
13. reason:HTTP 响应状态码对应的原因短语,如 'OK'、'Not Found' 等。
14. request:HTTP 请求对象。
- 1 -。
HTTP返回代码201 304 404 500等代表的含义在网站日志中,我们经常会看到很多返回的http代码,如201、304、404、500等等。
可是这些具体的返回的HTTP代码究竟什么含义呢,在此做一下知识普及吧,记不住不要紧,到时候看看就行了,但最主要的几个还要要清楚的。
一些常见的状态码为:200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务器超时下面提供HTTP 状态码的完整列表。
点击链接可了解详情。
您也可以访问HTTP 状态码上的W3C 页获取更多信息。
1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态码。
100(继续)请求者应当继续提出请求。
服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。
2xx (成功)表示成功处理了请求的状态码。
200(成功)服务器已成功处理了请求。
通常,这表示服务器提供了请求的网页。
如果是对您的robots.txt 文件显示此状态码,则表示Googlebot 已成功检索到该文件。
201(已创建)请求成功并且服务器创建了新的资源。
202(已接受)服务器已接受请求,但尚未处理。
203(非授权信息)服务器已成功处理了请求,但返回的信息可能来自另一来源。
204(无内容)服务器成功处理了请求,但没有返回任何内容。
205(重置内容)服务器成功处理了请求,但没有返回任何内容。
与204 响应不同,此响应要求请求者重置文档视图(例如,清除表单内容以输入新内容)。
206(部分内容)服务器成功处理了部分GET 请求。
3xx (重定向)要完成请求,需要进一步操作。
通常,这些状态码用来重定向。
Google 建议您在每次请求中使用重定向不要超过 5 次。
您可以使用网站管理员工具查看一下Googlebot 在抓取重定向网页时是否遇到问题。
诊断下的网络抓取页列出了由于重定向错误导致Googlebot 无法抓取的网址。
resttemplate post请求的返回值处理-回复标题:深入理解与处理RestTemplate POST请求的返回值在Java的Web开发中,RestTemplate是Spring框架提供的一种便捷的HTTP客户端工具,用于访问RESTful服务。
本文将详细解析如何处理RestTemplate的POST请求返回值。
一、理解RestTemplate的POST请求首先,我们需要理解如何使用RestTemplate进行POST请求。
以下是一个基本的示例:javaRestTemplate restTemplate = new RestTemplate();String url = "HttpEntity<String> request = new HttpEntity<>("body", new HttpHeaders());ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);在这个例子中,我们首先创建了一个RestTemplate实例,然后定义了要请求的URL和请求体。
`HttpEntity`类包含了HTTP请求的所有信息,包括头信息和主体内容。
然后,我们调用`restTemplate.postForEntity`方法发送POST请求,并期望返回一个字符串类型的响应。
二、处理POST请求的返回值`postForEntity`方法会返回一个`ResponseEntity`对象,这个对象包含了服务器的完整响应,包括状态码、头信息和主体内容。
以下是如何从`ResponseEntity`中获取这些信息:1. 获取状态码:javaHttpStatus statusCode = response.getStatusCode();2. 获取头信息:javaHttpHeaders headers = response.getHeaders();3. 获取主体内容:javaString body = response.getBody();以上是最基础的返回值处理方式,但实际应用中,返回的主体内容可能并非简单的字符串,而是复杂的JSON或XML结构。
Python是一种简单易学、功能强大的编程语言,广泛应用于Web开发、数据分析、人工智能等领域。
Python的requests库是一种基于HTTP的网络请求库,可以轻松实现网络请求和响应的处理。
在使用requests发送网络请求时,返回参数是我们经常需要处理的一部分。
本文将介绍Python requests返回参数的相关知识,并结合实例进行详细说明。
一、返回参数概述使用Python的requests库发送网络请求后,会得到一个响应对象。
这个响应对象包含了很多关于请求结果的信息,比如状态码、响应头、响应体等。
我们可以通过这些返回参数来了解请求的状态和结果,方便后续的处理和分析。
二、状态码1. 状态码是服务器对请求的响应状态的表示,常见的状态码有200、404、500等。
我们可以通过访问响应对象的status_code属性来获取状态码。
例如:```pythonimport requestsresponse = requests.get('print(response.status_code)```2. 通过状态码可以得知请求是否成功、是否找到资源、是否服务器内部错误等情况,根据不同的状态码我们可以进行不同的处理逻辑。
三、响应头1. 响应头包含了服务器对请求的详细回应信息,如Content-Type、Content-Length、Server等。
我们可以通过访问响应对象的headers属性来获取响应头的信息。
例如:```pythonimport requestsresponse = requests.get('print(response.headers)```2. 通过响应头我们可以得知服务器端的一些信息和约定,比如返回的数据类型、数据长度等,可以根据响应头的信息来解析和处理响应体的内容。
四、响应体1. 响应体是服务器返回的实际数据内容,例如HTML、JSON、图片等。
我们可以通过访问响应对象的text、content属性来获取响应体的内容。
curl的返回结果解读curl是一个非常常用的命令行工具,用于发送HTTP请求并获取返回结果。
在使用curl时,我们经常会遇到各种不同的返回结果,这些结果包含了很多有用的信息,需要我们进行解读和分析。
首先,curl的返回结果通常包含了HTTP状态码。
HTTP状态码是服务器对请求的响应状态的标识,它告诉我们请求是否成功以及出现了什么问题。
常见的HTTP状态码有200、404、500等。
其中,200表示请求成功,404表示请求的资源不存在,500表示服务器内部错误。
通过查看HTTP状态码,我们可以快速了解请求的结果。
除了HTTP状态码,curl的返回结果还包含了响应头和响应体。
响应头包含了服务器返回的一些元信息,比如响应的日期、服务器类型、内容类型等。
这些信息对于我们了解服务器的配置和响应的内容非常有帮助。
而响应体则是服务器返回的实际内容,比如网页的HTML代码、JSON数据等。
我们可以通过解析响应体来获取我们需要的信息。
在解读curl的返回结果时,我们还需要注意一些常见的问题。
首先是重定向。
有时候我们发送的请求会被服务器重定向到其他的URL上,这时候curl会返回一个3xx的状态码,并在响应头中包含一个Location 字段,告诉我们重定向的目标URL。
我们可以根据这个信息来进行后续的请求。
另一个需要注意的问题是错误信息。
有时候我们发送的请求可能会出现一些错误,比如网络连接超时、DNS解析失败等。
这时候curl会返回一个非200的状态码,并在响应体中包含一些错误信息。
我们可以根据这些错误信息来判断出错的原因,并进行相应的处理。
除了以上的内容,curl的返回结果还可能包含一些其他的信息,比如请求的时间、请求的大小等。
这些信息对于我们进行性能分析和优化也非常有帮助。
综上所述,curl的返回结果包含了很多有用的信息,我们可以通过解读这些信息来了解请求的结果、服务器的配置以及出现的问题。
在使用curl时,我们应该注意HTTP状态码、响应头和响应体,并根据需要进行相应的解析和处理。
任务名称:请求参数和返回参数一、引言在现代软件开发中,网络请求和响应是非常常见的操作。
通过请求参数将数据发送到服务器,服务器根据请求参数进行处理并返回相应的结果,这种交互模式在互联网应用中得到了广泛应用。
本文将深入探讨请求参数和返回参数的概念、重要性以及如何正确地设计和使用它们。
二、概念解析2.1 请求参数请求参数指的是客户端通过网络请求提交给服务器的数据。
它可以是查询字符串、请求头、请求体中的数据,以及上传的文件等。
请求参数在HTTP、RPC、Web服务等各种协议和框架中都有广泛的应用,它确定了客户端希望服务器执行的具体操作和所需的数据。
2.2 返回参数返回参数指的是服务器处理请求后返回给客户端的数据。
它可以是一个简单的结果代码,也可以是一个复杂的数据结构,甚至可以是一段HTML、XML或JSON格式的数据。
返回参数承载了服务器处理结果的信息,客户端根据它来判断请求是否成功以及获取服务器返回的具体数据。
三、请求参数的重要性3.1 向服务器传递数据请求参数是客户端向服务器传递数据的有效途径。
通过请求参数,客户端可以将用户输入、系统状态、操作指令等信息传递给服务器进行处理。
这对于用户注册、登录、搜索、支付等功能至关重要。
3.2 控制服务器行为请求参数可以用于控制服务器的行为。
通过请求参数,客户端可以指定服务器执行的具体操作,如读取文件、写入数据库、发送电子邮件等。
而服务器可以根据不同的请求参数来调用不同的处理逻辑,实现不同的业务需求。
3.3 保护数据安全请求参数可以用于保护数据安全。
客户端可以使用加密算法对敏感数据进行加密,并将加密后的数据作为请求参数提交给服务器。
服务器在接收到请求后,使用相同的加密算法解密请求参数,以获取原始数据。
这样可以防止数据在网络传输过程中被窃取或篡改。
四、请求参数的设计原则4.1 简洁明了好的请求参数设计应尽量简洁明了,避免出现冗余或不必要的参数。
请求参数的设计应符合RESTful原则,即使用URL路径参数、查询字符串等方式传递参数,而不是通过HTTP头或请求体传递大量参数。
RestTemplate是Spring框架提供的用于处理HTTP请求的一个模板类,它封装了HTTP请求的处理细节,使得开发者可以更加方便地进行HTTP请求和响应的处理。
在实际开发中,我们经常会使用RestTemplate来进行POST请求,并且需要处理返回值。
本文将介绍如何使用RestTemplate来进行POST请求,并且对其返回值进行处理。
1. 使用RestTemplate进行POST请求在使用RestTemplate进行POST请求之前,首先需要创建一个RestTemplate实例。
可以通过以下方式来创建RestTemplate实例:```javaRestTemplate restTemplate = new RestTemplate();```接下来,可以使用RestTemplate的postForObject()方法来发送POST请求,并且获取响应的返回值。
postForObject()方法的签名如下:```javapublic <T> T postForObject(String url, Nullable Object request, Class<T> responseType, Object... uriVariables) throws RestClientException;```其中,url表示要发送POST请求的URL;request表示POST请求的参数;responseType表示期望的返回值类型;uriVariables表示URL中的变量。
下面是一个使用RestTemplate发送POST请求的示例代码:```javaString url = "xxx";JSONObject request = new JSONObject();request.put("key1", "value1");request.put("key2", "value2");String responseType = restTemplate.postForObject(url, request, String.class);```在上面的示例中,我们使用了JSONObject来表示POST请求的参数,期望返回的是String类型的数据。
2xx 成功200 正常;请求已完成。
201 正常;紧接 POST 命令。
202 正常;已接受用于处理,但处理尚未完成。
203 正常;部分信息—返回的信息只是一部分。
204 正常;无响应—已接收请求,但不存在要回送的信息。
3xx 重定向301 已移动—请求的数据具有新的位置且更改是永久的。
302 已找到—请求的数据临时具有不同 URI。
303 请参阅其它—可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应。
304 未修改—未按预期修改文档。
305 使用代理—必须通过位置字段中提供的代理来访问请求的资源。
306 未使用—不再使用;保留此代码以便将来使用。
4xx 客户机中出现的错误400 错误请求—请求中有语法问题,或不能满足请求。
401 未授权—未授权客户机访问数据。
402 需要付款—表示计费系统已有效。
403 禁止—即使有授权也不需要访问。
404 找不到—服务器找不到给定的资源;文档不存在。
407 代理认证请求—客户机首先必须使用代理认证自身。
410 请求的网页不存在(永久);415 介质类型不受支持—服务器拒绝服务请求,因为不支持请求实体的格式。
5xx 服务器中出现的错误500 内部错误—因为意外情况,服务器不能完成请求。
501 未执行—服务器不支持请求的工具。
502 错误网关—服务器接收到来自上游服务器的无效响应。
503 无法获得服务—由于临时过载或维护,服务器无法处理请求。
100系列码从100到199范围的HTTP状态码是信息报告码。
基于各种原因考虑,大多数情况下我们是很少看见这些代码的。
首先,如果一个浏览器尝试访问一个网站,而网站返回这些代码时,它们往往都不会显示在屏幕上。
它们只是浏览器使引用的内部码。
另外,这些代码不常见的另外一个原因是起初HTTP标准不允许使用这一范围的状态码。
就其本身而言,它们也一直没有被广泛地使用。
200系列码从 200到299范围的状态码是操作成功代码。
同样的,在正常的Web上网中,你也很可能不曾在屏幕上看到这些代码。
相反的,这些代码是在浏览器内部使用的,用以确认操作成功确认和当前请求状态。
虽然这些代码通常不显示,但是有一些故障排除工具能够读到它们,就像和其它大多数的HTTP状态码一样,它们在错误诊断过程中是非常有用的。
300系列码从300到399范围的状态码是重定向代码。
本质上,它们告诉Web浏览器必须执行其它一些操作以完成请求。
基于这个命令的特点,它可以自动地执行,或者要求额外的用户输入。
比如,状态码 301表示一个特定资源已经被永久地先移除,因此将来所有访问该资源请求都应该定向到一个特定的URL上。
400系列码在 400范围的状态码是客户端错误码。
这种类型的错误码往往跟安全相关。
比如,如果一个客户端尝试访问一个未授权访问的资源,服务器就会返回一个状态码 401。
类似地,如果客户端尝试访问一个禁止的资源,在这种情况下客户端的认证状态是一样的,那么服务器可能会返回一个状态码403,表示禁止对该资源进行访问。
如果请求不正确或客户端超时,400级错误码也可能被返回。
然而,有一个400级的代码总是具有误导性:404。
虽然这个代码在技术上被归类为客户端错误,但是事实上它可以同时表示客户端或服务器上的错误。
但这个错误码只是简单地显示为没有找到请求的资源。
当这个错误发生在客户端时,它往往表示的是网络连接问题。
在其他时候,这个错误的发生还可能是由于资源已从服务器上转移或重命名而造成的。
500系列码500 级状态码表示的是服务器错误。
比如,如果Web服务器超时,它就会产生一个504错误。
虽然,一个500级的错误往往表示的不是服务器的问题,而是在服务器上运行的Web应用的问题。
比如,我自己的个人网站是用ASP编写的,它负责动态生成HTML网页。
在调试的过程中,有Bug的代码总会导致我的Web 服务器返回HTTP状态码500,该代码是一般表示内部服务器错误。
这个代码只是出现问题了,并且HTTP无法解决该问题。
-----------------------------------------1xx - 信息提示"100":Continue"101":witchingProtocols2xx - 成功"200":OK"201":Created"202":Accepted"203":Non-AuthoritativeInformation"204":NoContent"205":ResetContent"206":PartialContent3xx - 重定向"300":MultipleChoices"301":MovedPermanently"302":Found"303":SeeOther"304":NotModified"305":UseProxy"307":TemporaryRedirect4xx - 客户端错误"400":BadRequest"401":Unauthorized"402":PaymentRequired"403":Forbidden"404":NotFound"405":MethodNotAllowed"406":NotAcceptable"407":ProxyAuthenticationRequired"408":RequestTime-out"409":Conflict"410":Gone"411":LengthRequired"412":PreconditionFailed"413":RequestEntityTooLarge"414":Request-URITooLarge"415":UnsupportedMediaType"416":Requestedrangenotsatisfiable"417":ExpectationFailed5xx - 服务器错误"500":InternalServerError"501":NotImplemented"502":BadGateway"503":ServiceUnavailable"504":GatewayTime-out"505":HTTPVersionnotsupported状态代码状态信息含义100Continue初始的请求已经接受,客户应当继续发送请求的其余部分。
(HTTP 1.1新)101Switching Protocols服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)200OK一切正常,对GET和POST请求的应答文档跟在后面。
201Created服务器已经创建了文档,Location头给出了它的URL。
202Accepted已经接受请求,但处理尚未完成。
203Non-Authoritative Information文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。
204No Content没有新文档,浏览器应该继续显示原来的文档。
如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
205Reset Content没有新的内容,但浏览器应该重置它所显示的内容。
用来强制浏览器清除表单输入内容(HTTP 1.1新)。
206Partial Content客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。
300Multiple Choices客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。
如果服务器要提出优先选择,则应该在Location应答头指明。
301Moved Permanently客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
302Found类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。
出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。
注意这个状态代码有时候可以和301替换使用。
例如,如果浏览器错误地请求http://host/~user(缺少了后面的斜杠),有的服务器返回301,有的则返回302。
严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。
请参见307。
303See Other类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。
304Not Modified客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。
服务器告诉客户,原来缓冲的文档还可以继续使用。
305Use Proxy客户请求的文档应该通过Location头所指明的代理服务器提取(HTTP 1.1新)。
307Temporary Redirect和302 (Found)相同。
许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时才能重定向。
由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。
(HTTP 1.1新)400Bad Request请求出现语法错误。
401Unauthorized客户试图未经授权访问受密码保护的页面。
应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。