HTTP状态码

返回结果的HTTP状态码


一、状态码告知服务器返回的请求结果
转态码作用:当客户端向服务器发送请求的时候,描述返回的请求结果(用户可对服务器的工作有个了解)
状态码组成:XXX(2XX、3XX)+原因短语
状态码类别:     类别+原因短语
            1XX:infoemational(信息状态码)       接收的请求正在处理
            2XX:Success(成功状态码)             请求正常处理完毕
            3XX:Redirection(重定向状态码)     需要进行附加操作完成请求     
            4XX:Client error(客户端错误状态码)服务端无法处理请求
            5XX: Server error(服务端错误码)    服务器处理出错
【注意】:只要遵守状态码类别定义,修改RFC2616定义的状态码或者服务端自行创建状态码都没问题


二、2XX:成功(请求被正常处理)


1、200 OK:客户端发送的请求在服务端被成功的处理了
2、204 NO Content(请求处理成功,但是没有资源可以返回)
作用:a、服务端接收的请求已经成功处理,在返回的报文中不含实体的主体部分,不允许返回实体的主体
3、206 Partial Content(对资源的一部分进行请求)
作用:客户端进行了范围请求,服务端只执行了该范围的GET请求,响应报文中包含Content-Range指定范围的实体内容


三、3XX:重定向(浏览器需要执行一些特殊的处理以处理正确的请求)


1、301 Moved Permanently(客户端请求的时候,服务端告诉客户端资源的地址已经更新,客户端也需要更新书签引用)
作用:a、永久性重定向,该状态码表示请求的资源已经被分配了新的URI(如果将对应资源地址已经保存为书签,此时应该按照Location首部字段提示的URI重新保存)
2、302 Found (资源的位置已经被临时定位到其他位置)
作用:a、临时性重定向,资源临时被分配了新的url,希望用户本次可以使用新的url访问
301和302的区别:302状态码表示已经移动的资源可能还会发生移动(比如:用户把URI保留成书签,不会像301状态码出现时那样更新书签,仍旧暴露302页面对应的URI)
3、303 See Other(资源的URI已更新,客户端是否能按照新的URI访问)
作用:请求的资源存在着另一个URI,应该使用GET方法定向获取请求资源
302和303的区别:功能相同,但是303明确表示客户端应该采用GET的方法获取资源
【注意】:当301、302、303响应状态码返回时,几乎所有的浏览器都会把POST改成GET,删除请求报文主体
4、304 Not Modified(和重定向没有关系)
作用:客户端发送附带条件(采用GET方法的请求报文中包含if-Match,if-Modified-Since,if-None-Match,if-Range,if-Unmodified-Since中任一首部)的请求,服务端允许
请求访问资源,但因请求未满足条件的情况后,直接返回304(Not Modified),表示服务端资源没有改变,直接使用客户端缓存资源
304返回时,不包含任何响应主体
5、307 Temporary Redirection(重定向状态码)
作用:临时重定向,和302有相同的含义


四、4XX:客户端错误(客户端发送的请求服务端无法理解)


1、400 --- Bad Request:请求报文中存在语法错误,需要修改请求内容再次发送请求
例如:请求配置信息的一个接口
url: https://app-conf.wanyol.com/v2/checkUpdate?body=H4sIAAAAAAAAAOMS4xIKKUpMznbPyU9KzHHOz0vLTDcSYBBiNTUwNjWU8uASTc7P1ctIrSxJLNArAanUK0ktLhFYEiHFaKDEaKDF4h8Q4G_EF-DsGGJgEG9oGO-sZ2huIevEBhHxYnL2C2CIYAAA_u0mfWkAAAA=&cloudConfigVersion=2.2.2.1 , 
request: CheckUpdateConfigRequest{item_list=[CheckUpdateConfigItem{config_code=TrackGlobalConfig2, version=0}], product_id=50351, system_condition=SystemCondition{package_name=com.heytap.track.test, version_code=11300, build_number=0, channel_id=0, platform_brand=OPPO, platform_os_version=PCAT00_11_C.17, platform_android_version=29, model=PCAT00, region_code=CN, adg_model=0, preview=0}} 
     error response: code[400], header[{}],
     body:[]
request failed, errorCode is 400. please check network , request params or server response
具体原因:该环境域名证书校验过期
http+ssl=https 
ssl证书的作用:身份认证和加密,身份认证是过期主要原因。所有的ssl证书都需要进行身份认证
证书过期:意味着失效

例如:设置假网络场景(连接SIM卡的数据热点,关闭数据)
2、404 --- not Found:服务器上没有请求的资源
作用:a、服务器无法找到请求的资源    b、服务器拒绝请求且不想说明理由


五、5XX服务端错误(服务端本身发生错误)


1、500 --- Internal Server Error
作用:a、服务端执行请求发生错误    b、Web应用存在bug或者临时故障
2、503 --- Server Unavailable:服务端正忙
作用:a、服务端处于超负载或者正在停机维修,无法处理请求(如果服务端提前可知恢复时间,需要写入Retry-After首部返回客户端)
【注意】:状态码和状况不一致
返回的状态码相应是错误的,但是用户察觉不到(例如:Web程序内部出现错误,状态码依旧返回200 OK)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值