HTTP常见的状态码有哪些? 适用场景?

一、HTTP是什么

        HTTP状态码‘(英语:HTTP Status Code)、用以表示网页服务器超文本传输协议响应状态的3位数字代码。

它由RFC 2616规范定义的,并得到(RFC 2518, RFC 2817)与(RFC 4918)等规范扩展。

简单来讲,http状态码的作用是服务器告诉客户端当前请求响应的状态,通过状态码就能判断和分析服务器的运行状态。

二、分类

        状态码第一位数字决定了不同的响应状态

                1.表示消息

                2.表示成功

                3.表示重定向

                4.表示请求错误

                5.表示服务器错误

1xx

代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态和某些可选的响应头信息,并以空行结束

常见的有:

        100(客户端继续发送请求,这是临时响应):这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应,服务器必须在请求完成后向客户端发送一个最终响应。

        101:服务器根据客户端的请求切换协议,主要用于websocket或http2升级

2xx

        代表请求已经成功服务器接收,理解,并接受

常见的有:

        200(成功):请求已成功,请求所希望的响应头或数据体将随此响应返回
  • 201(已创建):请求成功并且服务器创建了新的资源
  • 202(已创建):服务器已经接收请求,但尚未处理
  •  203(⾮授权信息):服务器已成功处理请求,但返回的信息可能来⾃另⼀来源
  • 204(⽆内容):服务器成功处理请求,但没有返回任何内容
  • 205(重置内容):服务器成功处理请求,但没有返回任何内容
  • 206(部分内容):服务器成功处理了部分请求
        
3xx
        表示要完成请求,需要进⼀步操作。 通常,这些状态代码⽤来重定向
常⻅的有:
  •  300(多种选择):针对请求,服务器可执⾏多种操作。 服务器可根据请求者 (user agent) 选择⼀项操作,或提供操作列表供请求者选择
  • 301(永久移动):请求的⽹⻚已永久移动到新位置。 服务器返回此响应(对 GET HEAD 请求的响应)时,会⾃动将请求者转到新位置 
  •  
    302(临时移动): 服务器⽬前从不同位置的⽹⻚响应请求,但请求者应继续使⽤原有位置来进⾏以后的请求
  • 303 (查看其他位置):请求者应当对不同的位置使⽤单独的 GET 请求来检索响应时,服务器返回此代码
    • 305 (使⽤代理): 请求者只能使⽤代理访问请求的⽹⻚。 如果服务器返回此响应,还表示请求者应使⽤代理
    • 307 (临时重定向): 服务器⽬前从不同位置的⽹⻚响应请求,但请求者应继续使⽤原有位置来进⾏以后的请求
4xx
        代表了客户端看起来可能发⽣了错误,妨碍了服务器的处理

常⻅的有:

  • 400(错误请求): 服务器不理解请求的语法
  • 401(未授权): 请求要求身份验证。 对于需要登录的⽹⻚,服务器可能返回此响应。
  • 403(禁⽌): 服务器拒绝请求
  • 404(未找到): 服务器找不到请求的⽹⻚
  • 405(⽅法禁⽤): 禁⽤请求中指定的⽅法
  • 406(不接受): ⽆法使⽤请求的内容特性响应请求的⽹⻚
  • 407(需要代理授权): 此状态代码与 401(未授权)类似,但指定请求者应当授权使⽤代理
  • 408(请求超时): 服务器等候请求时发⽣超时    

5xx
        表示服务器⽆法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发⽣

常⻅的有:

  • 500(服务器内部错误):服务器遇到错误,⽆法完成请求
  • 501(尚未实施):服务器不具备完成请求的功能。 例如,服务器⽆法识别请求⽅法时可能会返回此代码
  • 502(错误⽹关): 服务器作为⽹关或代理,从上游服务器收到⽆效响应
  • 503(服务不可⽤): 服务器⽬前⽆法使⽤(由于超载或停机维护)
  • 504(⽹关超时): 服务器作为⽹关或代理,但是没有及时从上游服务器收到请求
  • 505(HTTP 版本不受⽀持): 服务器不⽀持请求中所⽤的 HTTP 协议版本

三、适⽤场景

        下⾯给出⼀些状态码的适⽤场景:
              
  • 100 :客户端在发送 POST 数据给服务器前,征询服务器情况,看服务器是否处理 POST的数据,如果不处理,客户端则不上传 POST 数据,如果处理,则 POST 上传数据。常⽤于 POST⼤数据传输
  • 206 :⼀般⽤来做断点续传,或者是视频⽂件等⼤⽂件的加载
  • 301:永久重定向会缓存。新域名替换旧域名,旧的域名不再使⽤时,⽤户访问旧域名时⽤301就重定向到新的域名
  • 302 :临时重定向不会缓存,常⽤ 于未登陆的⽤户访问⽤户中⼼重定向到登录⻚⾯
  • 304:协商缓存,告诉客户端有缓存,直接使⽤缓存中的数据,返回⻚⾯的只有头部信息是没有内容部分

    • 400:参数有误,请求⽆法被服务器识别
    • 403:告诉客户端进制访问该站点或者资源,如在外⽹环境下,然后访问只有内⽹IP才能访问的时候则返回
    • 404:服务器找不到资源时,或者服务器拒绝请求⼜不想说明理由时
    • 503:服务器停机维护时,主动⽤503响应请求或 nginx 设置限速,超过限速,会返回503
    • 504:⽹关超时
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值