|
% |! [7 n& C; {; @ 参考:Python测试之道https://www.zhihu.com/pub/reader/119585205/chapter/1057347448275566592面试基础知识经常会有这个,日常工作中状态码分析也会用到,下面这个是我找到的比较通俗易懂也很全面的资料,分享下: / X9 ~* f1 [* E6 z/ k: s6 D- O* o
当客户端发起一次 HTTP 请求后,服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应客户端的请求response 消息中的第一行叫作状态行,由 HTTP 协议版本号、状态码、状态消息三部分组成。 ( {7 d! q% G2 E" z" D& {' v: o
状态码用来告诉 HTTP 客户端 HTTP 服务器是否产生了预期的 response状态码总共只有三位,第一位表示状态类别,共分为五种(1)1xx:是进度通知类状态,意思就是说「请求我已经收到了,或你的请求我正在处理」。
' s* @2 z: ^3 j p. [ (2)2xx:正确!表示「你的请求我已经成功处理了」(3)3xx:即重定向,也就是服务器告诉客户端「你要的资源搬家了,你到某某地方再去找它吧」(4)4xx:客户端错了!客户端发来的响应报文里有些错误,比如语法错误或请求的资源不存在等。
% V& w2 u- u! L& y+ j, C W (5)5xx:服务器错了!服务器端有些问题,已经无法处理完成你的请求了常用的状态码并不多,用服务器与客户端对话的形式把常见的状态码含义列举如下(1)200 OK:客户端,你的请求处理成功,你要的东西就在响应报文里了。 * s4 [+ `8 P v: r4 H. X& H; L
(2)301 Moved Permanently:客户端,你要请求的资源已经永久地搬家了,我把它的新地址放到了 Location 头部域中了(3)302 Moved Temporarily:客户端,你要请求的资源临时有事去别的地方了,我把它的位置放到 Location 头部域中了,你可以先去那里找它,不过它应该会回到它原来的家的。 0 z, r8 w! J7 @8 v! G$ Z* \, |% Y% h1 O
(4)304 Not Modified:客户端,你要请求的资源自从上次你请求之后,就再也没有改动过我想你应该早就有这个资源了,所以在响应报文的数据部分我就没有再放这个资源(5)400 Bad Request:客户端,你发来的请求报文里有语法错误,服务器端实在看不懂。
5 s$ R5 f! \. N (6)401 Unauthorized:客户端,你发来的请求不是合法来源的请求,你是没有被授权的客户端吧(7)403 Forbidden:服务器端顺利收到了客户端的请求,但因为某些理由,服务器端拒绝为你提供服务。 # \+ |: Y- X; `% F/ E: M
(8)404 Not Found:客户端,你请求的资源不存在,八成是资源地址写错了(9)500 Internal Server Error:很遗憾,服务器不能给你提供服务了,服务器内部出现了不可预知的问题。
$ K$ r( T& N& Q$ {" P" X( S (10)502 Bad Gateway:客户端你好,我是请求报文的代理服务器,持有资源的那个服务器在给我发送资源时出问题了(11)503 Server Unavailable:服务器现在可能是太忙了,暂时不能给你这个客户端提供服务,或许稍后会恢复的。 * L' t j8 [; O8 _& Y
除了以上几个常用的状态码,还有许多其他含义的状态码完整状态码含义表如下(1)请求收到,继续处理HTTP 100—客户必须继续发出请求HTTP 101—客户要求服务器根据请求转换 HTTP 协议版本(2)操作成功收到,分析、接受
& `' f6 H5 K- [6 r4 z& E HTTP 200—交易成功HTTP 201—提示知道新文件的 URLHTTP 202—接受和处理,但处理未完成HTTP 203—返回信息不确定或不完整HTTP 204—请求收到,但返回信息为空HTTP 205—服务器完成了请求,用户代理必须复位当前已经浏览过的文件
9 i' [1 u) n v) X+ t HTTP 206—服务器已经完成了部分用户的 get 请求(3)完成此请求必须进一步处理HTTP 300—请求的资源可在多处得到HTTP 301—删除请求数据HTTP 302—在其他地址发现了请求数据HTTP 303—建议客户访问其他 URL 或访问方式
3 d9 M- s O4 _0 x HTTP 304—客户端已经执行了 get,但文件未变化HTTP 305—请求的资源必须从服务器指定的地址得到HTTP 306—前一版本 HTTP 中使用的代码,现行版本中不再使用HTTP 307—申明请求的资源临时性删除 ) N( c4 b+ B; F/ q
(4)请求包含一个错误语法或不能完成HTTP 400—错误请求,如语法错误HTTP 401—未授权HTTP 401.1—未授权:登录失败HTTP 401.2—未授权:服务器配置问题导致登录失败HTTP 401.3—未授权:禁止访问资源
) X, ]/ G8 a# A8 v! q HTTP 401.4—未授权:授权被筛选器拒绝HTTP 401.5—未授权:ISAPI 或 CGI 授权失败HTTP 402—保留有效 ChargeTo 头响应HTTP 403—禁止访问HTTP 403.1—禁止访问:禁止可执行访问
h+ p& }. W8 V HTTP 403.2—禁止访问:禁止读访问HTTP 403.3—禁止访问:禁止写访问HTTP 403.4—禁止访问:要求 SSLHTTP 403.5—禁止访问:要求 SSL 128HTTP 403.6—禁止访问:IP 地址被拒绝
+ Z9 J1 b4 ?* i" Z HTTP 403.7—禁止访问:要求客户证书HTTP 403.8—禁止访问:禁止站点访问HTTP 403.9—禁止访问:连接的用户过多HTTP 403.10—禁止访问:配置无效HTTP 403.11—禁止访问:密码更改 L0 k. `. @/ a$ p6 e
HTTP 403.12—禁止访问:映射器拒绝访问HTTP 403.13—禁止访问:客户证书已被吊销HTTP 403.14—禁止访问:Web 服务器被配置不列出此目录的内容HTTP 403.15—禁止访问:客户访问许可过多
; e1 L% f T* m5 b3 s HTTP 403.16—禁止访问:客户证书不可信或者无效HTTP 403.17—禁止访问:客户证书已经到期或者尚未生效HTTP 404—没有发现文件、查询或 URlHTTP 405—用户在 Request-Line 字段定义的方法不允许
6 {+ X; G1 V1 |! c+ c' k: } HTTP 406—无法接受用户发送的请求,请求资源不可被访问HTTP 407—类似 401,用户必须首先在代理服务器上得到授权HTTP 408—客户端没有在用户指定的时间内完成请求HTTP 409—对当前资源状态,请求不能完成
! V, ]" o& q1 J# m7 D7 A" n0 b, R8 P HTTP 410—服务器上不再有此资源且无进一步的参考地址HTTP 411—服务器拒绝用户定义的 Content-Length 属性请求HTTP 412—一个或多个请求头字段在当前请求中错误HTTP 413—请求的资源大于服务器允许的大小 + ]% |6 c N7 [9 s
HTTP 414—请求的资源 URL 长于服务器允许的长度HTTP 415—请求资源不支持请求项目格式HTTP 416—请求中包含 Range 请求头字段,在当前请求资源范围内没有 range 指示值,请求也不包含 If-Range 请求头字段
1 D) d D3 q; t& [# ] HTTP 417—在请求头 Expect 中指定的预期内容无法被服务器满足或者这个服务器是一个代理服务器,它在当前路由的下一个节点上,Expect 的内容无法被满足(5)服务器执行一个完全有效请求失败HTTP 500—内部服务器错误
+ K7 o7 K0 t# r) b; w4 I+ [ HTTP 500.11—服务器关闭HTTP 500.12—应用程序重新启动HTTP 500.13—服务器太忙HTTP 500.14—应用程序无效HTTP 500.15—不允许请求HTTP 501—未实现 , @% t2 X8 N k# s9 H- e
HTTP 502—网关错误
: P$ U) T1 D, W
' n! N+ S, R, f8 D. Q9 k! l" L
) `8 {. Y6 k, L( c- \! Z, J- @
6 q4 O% M0 b! o4 s- U+ _
2 J0 h+ j! [& G* m; j4 A f- W. E |