HTTP 常见状态码解析

概述

  • 1xx:指示信息--表示请求已接收,继续处理
  • 2xx:成功--表示请求已被成功接收、理解、接受
  • 3xx:重定向--要完成请求必须进行更进一步的操作
  • 4xx:客户端错误--请求有语法错误或请求无法实现
  • 5xx:服务器端错误--服务器未能实现合法的请求

常见HTTP状态码

  • 200 OK
    表示请求成功 一切正常
  • 301 Moved Permanently
    重定向,客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL
  • 302 Found
    临时重定向,类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
  • 304 Not Modified
    客户端有缓冲的文档并发出了一个条件性的请求。服务器告诉客户,原来缓冲的文档还可以继续使用。
  • 307 Temporary Redirect
    临时重定向,与302类似,只是强制要求使用POST方法。
  • 400 Bad Request
    请求出现语法错误。
  • 401 Unauthorized
    客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填 写合适的Authorization头后再次发出请求。
  • 403 Forbidden
    资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致
  • 404 Not Found
    无法找到指定位置的资源。
  • 405 Method Not Allowed
    请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。
  • 500 Internal Server Error
    服务器遇到了意料不到的情况,不能完成客户的请求。
  • 501 Not Implemented
    服务器不支持实现请求所需要的功能。
  • 502 Bad Gateway
    服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。

3xx 状态码详解

301 状态码(Moved Permanently)
301状态码在HTTP1.0和HTTP1.1规范中均代表永久重定向,对于post请求的重定向,还是需要用户确认之后才能重定向,并且应该以post方法发出重定向请求。
关于post请求重定向用户确认的问题,实际上浏览器都没有实现;而且post请求的重定向应该发起post请求,这里浏览器也并不一定遵守,所以说HTTP规范的实现并未严格按照HTTP规范的语义。

302 状态码(Moved Temporatily)
在http 1.0规范中,302表示临时重定向。出现该状态代码时,浏览器能够自动访问新的URL。
规范:原请求是get,可以自动重定向;原请求是post,则不能自动进行重定向。
实现:浏览器和服务器的实现并没有严格遵守HTTP中302的规范,浏览器即便原请求是post也会自动重定向,导致规范和实现出现了二义性,由此衍生了一些问题,譬如302劫持,因此在HTTP 1.1中将302的规范细化成了303和307,希望以此来消除二义性。

补充:302劫持——A站通过重定向到B站的资源xxoo,A站实际上什么都没做但是有一个比较友好的域名,web资源xxoo存在B站并由B站提供,但是B站的域名不那么友好,因此对搜索引擎而言,可能会保存A站的地址对应xxoo资源而不是B站,这就意味着B站出了资源版权、带宽、服务器的钱,但是用户通过搜索引擎搜索xxoo资源的时候出来的是A站,A站什么都没做却被索搜引擎广而告之用户,B站做了一切却不被用户知道,价值被A站窃取了。

303 状态码(See Other)
继承了HTTP 1.0中302的实现:无论原请求是get还是post,都可以自动进行重定向
303响应应该禁止被缓存。重定向的相应可能被缓存。

307 状态码
继承了HTTP 1.0中302的规范:原请求是GET 或 HEAD,则浏览器可以自动重定向;原请求是 POST,则不能自动进行重定向。

302、303、307 状态码辨析
在HTTP 1.1中,302是不再推荐使用的,只是为了兼容而作保留。为了细化HTTP1.0中302的语义,HTTP1.1引入了 303 和 307,主要用在对非 GET、HEAD 方法的响应上,而对于 GET 和 HEAD 的请求,可以自动重定向。

在 GET、HEAD 这些幂等的请求方式上,302、303、307 没啥区别,而对于 POST 就不同了,大部分浏览器的302 会将 POST 请求转为 GET,而 303 规范强制将 POST 转为 GET 请求,请求地址为 header 头中的 Location,307 则不一样,规范要求浏览器继续向 Location 的地址 POST 内容。

?? 303 和 307 的存在,归根结底是由于 POST 方法的非幂等属性引起的。

参考

HTTP状态码
HTTP状态码
HTTP状态码详解
http重定向301/302/303/307

原文地址:https://www.cnblogs.com/wx1993/p/9078250.html

时间: 2024-10-18 17:20:13

HTTP 常见状态码解析的相关文章

http常见状态码及其解析

HTTP状态码常见状态码及其解析 状态码 状态码英文名称 中文描述 100 Continue 继续.客户端应继续其请求 101 Switching Protocols 切换协议.服务器根据客户端的请求切换协议.只能切换到 更高级的协议,例如,切换到HTTP的新版本协议   200 OK 请求成功.一般用于GET与POST请求 201 Created 已创建.成功请求并创建了新的资源 202 Accepted 已接受.已经接受请求,但未处理完成 203 Non-Authoritative Info

HTTP协议、HTTP请求方法、常见状态码、HTTP消息

HTTP协议 客户端请求,服务端响应.浏览器与服务器不建立持久连接,响应后连接失效. HTTP请求方法 一.GET GET方法用于获取请求页面的指定信息. 二.HEAD 除了服务器不能在响应里返回消息主体外,其他都与GET方法相同,常用于测试链接有效性. 三. POST 与GET类似,但是有请求内容,比GET来说,相对安全. 四.PUT 在服务器建立文件,相对危险,一般关闭. 五.DELETE 删除服务器资源,相对危险,一般关闭. 六.TRACE 较为少见.可回显服务器收到的请求. 七.CONN

常见HTTP错误代码大全 http常见状态码

一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 100 (继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换. 2xx (成功) 表示成功处理了请求的状态代码. 本文标题: 常见HTTP错误代码大全 http常见状态码来自淘代码转

HTTP常见状态码

成功的状态码: 200 – 服务器成功返回网页 304 – 未修改 失败的状态码: 404 – 请求的网页不存在 503 – 服务器暂时不可用 500 – 服务器内部错误 下面的不是很常用,记住上面那几个就ok了,有bug了再补充 其他的状态码如下: 1xx(临时响应) 用于表示临时响应并需要请求者执行操作才能继续的状态代码. 100(Continue继续)     请求者应当继续提出请求.服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分.(HTTP 1.1新) 1

服务器返回状态码解析

服务器返回的各种状态码到底表示什么意思呢,哪些说明没有问题,哪些返回状态是出问题了,这个返回状态码表示的是什么意思,下面是服务器各种返回状态码的意义: 100(继续)请求者应当继续提出请求.服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分. 101(切换协议)请求者已要求服务器切换协议,服务器已确认并准备进行切换. 200(成功)  服务器已成功处理了请求.通常,这表示服务器提供了请求的网页.如果您的robots.txt文件显示为此状态,那么,这表示Googlebo

http常见状态码有哪些?

ajax常见面试题 1:什么是ajax?ajax作用是什么? 异步的javascript和xml AJAX 是一种用于创建快速动态网页的技术. ajax用来与后台交互 2:原生js ajax请求有几个步骤?分别是什么 //创建 XMLHttpRequest 对象 var ajax = new XMLHttpRequest(); //规定请求的类型.URL 以及是否异步处理请求. ajax.open('GET',url,true); //发送信息至服务器时内容编码类型 ajax.setReques

常见状态码

常见状态码: 1xx:临时响应,需要请求者继续执行操作的状态代码 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求 101 Switching Protocols 客户端要求服务器转化协议. 2xx表示成功处理了请求. 200 OK 服务器已成功处理请求. 201 Created 请求成功被创建了新的资源 202 Accepted 请求被接收但未处理 203 Non-authoritative Information 已返回请求内容,

HTTP请求常见状态码

HTTP状态码(HTTP Status Code) 一些常见的状态码为: 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码.代码 说明 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换. 2xx (成功)表示成功处理了请求的状态代码.代码 说明 200 (成功) 服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 201 (已创建) 请求成

HTTP常见状态码 200 301 302 404 500

HTTP状态码(HTTP Status Code) 一些常见的状态码为: 一.1开头 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码.代码 说明 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换. 二.2开头 2xx (成功)表示成功处理了请求的状态代码.代码 说明 200 (成功) 服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 2