HTTP返回状态码详细说明

之前的文章写了基本的状态码如下,但是没有明确的说明,抽时间整理了更详细的说明

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:

1xx:指示信息--表示请求已接收,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

1XX:指示信息--表示请求已接收,继续处理

100 Continue

只有请求的一部分已经被服务器接收,但只要它没有被拒绝,客户端应继续该请求。

101 Switching Protocols

服务器切换协议。


2xx:成功--表示请求已被成功接收、理解、接受

200 OK

表示从客户端发来的请求在服务器被正常处理了。

204 no content

表示从客户端发来的请求在服务器被正常处理了,但在返回的响应报文中不含实体的主体部分。

206 partial content

表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。

3xx:重定向--要完成请求必须进行更进一步的操作

301 moved permanently (多种选择) 

永久性重定向。该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。也就是说,如果已经把资源对应的URI保存为书签了,这时应按Location首部字段提示的URI重新保存。

如下方给出的请求URI,当指定资源路径的最后忘记添加斜杠“/”,就会产生301状态码

http://example.com/sample

302 found (临时移动)

临时性重定向。该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。

与301的区别:302代表的资源不是被永久移动,只是临时性质的,已移动的资源对应的URI将来还有可能发生改变。

如用户把URI保存成书签,但不会像301出现时那样去更新书签,而是仍旧保留返回302的页面对应的URI。

303 see other (查看其他位置)

该状态码表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。

与302的区别:303明确表示客户端应采用GET方法获取资源

当301、302、303响应状态码返回时,几乎所有的浏览器都会把POST改为GET,并删除请求报文内的主体,之后请求会自动再次发送。

301、302标准是禁止将POST改为GET的,但实际使用时大家都会这么做。

304 not modified (未修改)

该状态码表示客户端发送附带条件的请求时,服务器端资源已找到,但未符合条件请求。304返回时,不包含任何响应的主体部分。

304虽然被划分在3XX类别中,但是和重定向没有关系。

305(使用代理)

请求者只能使用代理访问请求的网页。如果服务器返回此响应,那么,服务器还会指明请求者应当使用的代理。 

307 temporary rediect

临时重定向。该状态码与302有着相同的含义,但307会遵照浏览器标准,不会从POST变成GET。对于处理响应时的行为,每种浏览器有可能出现不同的情况。

4xx:客户端错误--请求有语法错误或请求无法实现

400 bad request 错误请求

该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。

401 unauthorized 身份验证错误

该状态码表示发送的请求需要有通过HTTP认证(BASIC认证、DIGEST认证)的认证信息。另外,若之前已进行过1次请求,则表示用户认证失败。

返回含有401的响应必须包含一个适用于被请求资源的WWWAuthenticate首部用以质询(challenge)用户信息。当浏览器初次接收到401响应,会弹出认证用的对话窗口。

403 forbidden 禁止

该状态码表明对请求资源的访问被服务器拒绝了。

服务器端没有必要给出拒绝的详细理由,但如果想作说明,可在实体的主体部分对原因进行描述,这样就能让用户看到了。

未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源IP地址试图访问)等列举的情况都可能是发生了403的原因  

404 not found 找不到页面

该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。

 405(方法禁用)

禁用请求中指定的方法。        

406(不接受)

无法使用请求的内容特性响应请求的网页。         

407(需要代理授权)

此状态码与 401 类似,但指定请求者必须授权使用代理。如果服务器返回此响应,还表示请求者应当使用代理。         

408(请求超时)

服务器等候请求时发生超时。         

409(冲突)

服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。服务器在响应与前一个请求相冲突的 PUT 请求时可能会返回此代码,以及两个请求的差异列表。         

410(已删除)

请求的资源永久删除后,服务器返回此响应。该代码与 404(未找到)代码相似,但在资源以前存在而现在不存在的情况下,有时会用来替代 404 代码。如果资源已永久删除,您应当使用 301 指定资源的新位置。         

411(需要有效长度)

服务器不接受不含有效内容长度标头字段的请求。         

412(未满足前提条件)

服务器未满足请求者在请求中设置的其中一个前提条件。       

413(请求实体过大)

服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。        

414(请求的 URI 过长)

请求的 URI(通常为网址)过长,服务器无法处理

415(不支持的媒体类型)

请求的格式不受请求页面的支持

416(请求范围不符合要求)

如果页面无法提供请求的范围,则服务器会返回此状态码

417(未满足期望值)

服务器未满足"期望"请求标头字段的要求。

5xx:服务器端错误--服务器未能实现合法的请求

500 (服务器内部错误)

状态码表明服务器端在执行请求时发生了错误。无法完成请求。 该也有可能是Web应用存在的bug或某些临时的故障。

 501(尚未实施)

服务器不具备完成请求的功能。例如,当服务器无法识别请求方法时,服务器可能会返回此代码。 

502(错误网关)

服务器作为网关或代理,从上游服务器收到了无效的响应。 

503 service unavailable

该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入RetryAfter首部字段再返回给客户端。

状态码和状况的不一致

不少返回的状态码响应都是错误的,但是用户可能擦觉不到这点。如Web应用程序内部发生错误,状态码依然返回200 OK,测试的时候就需要注意了。

504 gateway timeout

网关超时,由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。

505(HTTP 版本不受支持)

服务器不支持请求中所使用的 HTTP 协议版本。 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容

  • HTTP状态码的分类 HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的...
    薄凉_简书阅读 566评论 0 1
  • HTTP状态码(HTTP Status Code)表示http服务器对与请求HTTP响应状态的3位数字代码。它由 ...
    BeeNoisy阅读 1,779评论 0 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。有些 App...
    咖啡绿茶1991阅读 2,214评论 0 7
  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 2,524评论 0 6