所以只能记一下了
首先是1开头的
现在来说1XX都是从 HTTP 1.1 开始加入的。
这个状态码可以用于一个协议,“100-continue”,有时候post中的数据会很大,有时候服务端需要这些数据,有时候不需要,这时候可以使用**“100-continue”**,去验证一下,成功会返回100,表示继续将post请求体中的数据带过来。长时间未响应则客户端也默认继续上传,其他则直接返回错误。
表示服务器将要切换/升级协议,客户端会请求更换协议,服务端如果返回101,则可以更换,洗一次请求用新的协议,在请求头中可以加‘Connection: Upgrade’,‘Upgrade:HTTP / 2’去升级成为http/2,也可以升级成为WebSocket。
2XX开头基本为成功
最常见也最熟悉的,表示请求正常处理了。
表示新的资源创建完毕,以及服务器录入了新的信息。
表正在处理或者运算中,会一直给状态码202,如果计算结束返回数据,则给200,客户端可以通过轮询拿到响应数据。
表示返回的信息不一定正确,经常出现在代理服务器的缓存上。
请求正确,但是没啥好返回的。
更新重置,比如删除了某个item,就服务器返回204,前端就更新响应视图。
返回一部分内容,根据请求头的部分进行拼接。分批下载的时候会用到。
3XX基本上也表示请求没有问题,但会有一些告示
请求成功,但是会有告示服务器这个路径有多种选择,然后可以根据报文内容进行更加细分的选择,并继续请求。
面试官问的最多,永久重定向,表示资源已经转移,之后最好去新的路径拿文件。
暂时重定向,暂时将资源转移,不建议之后用返回的新的路径去访问资源。
和302差不多,也是暂时重定向,很多时候302的请求是用post的,很多时候post请求服务器资源是经过一轮处理的,也就是下次再用post请求某个资源时就不是同样的资源了,这样的话301或者302给出的新资源的路径其实是错误的,不规范的,不一定是下次请求想要的资源,所以303的跳转会让用户进行确定使用get方式进行重定向,而不是直接用现在请求的方式重定向重定向。
面试官也问得最多,是关于协商缓存的,表明我这个资源没有更新,你可以直接用你本地保存的缓存。
表示必须通过某个中转站(代理服务器)请求我们的服务器才可以。
废弃。
和303差不多,但是必须用get的方式重定向。
4XX基本上是你客户端请求有问题了
可能少加了个参数就会返回这个。
没有带token等用于身份验证的信息就会出现这个。
暂时没有
带上token了,但是没有权限访问。
最常见,没有这个资源
有这个资源,但是你请求的方法错了
请求资源的格式错误,比如我们要拿到json的数据,但服务器只有xml的数据。
和401差不多,但对象是代理服务器
请求超时
资源冲突,服务器拒绝相同但资源,但还是上传了相同的资源,告示资源冲突。
资源存在过,但现在没了,参考百度网盘。。。
一大段资源,你不选择要哪部分,就会411。
某些条件没有,比如我要某个资源,其实是有的,但是请求这个资源的某一版本,如果服务器端没有,就会返回这个。
太大了,进不去,服务器有时候会限制上传文件的大小。
url太长了,超出了服务器的范畴。
上传类型不支持,比如文件的格式传错了。
想要某个视频的20秒到21秒,但我只有19秒,就会返回这个。
预期错误,比如我们想要expect: 100-continue,但是不行,就会返回这个
基本上是服务器炸了
服务器因为错误炸了。
某些功能、请求类型不支持。
中间商(代理服务器)拿服务器但资源出错了。
服务暂时不可用,可能在部署什么的。或者服务器繁忙。
服务终端不理代理服务器。
协议不支持。