今天面试官问到http状态码,又忘了。。

所以只能记一下了
首先是1开头的

1XX

现在来说1XX都是从 HTTP 1.1 开始加入的。

100

这个状态码可以用于一个协议,“100-continue”,有时候post中的数据会很大,有时候服务端需要这些数据,有时候不需要,这时候可以使用**“100-continue”**,去验证一下,成功会返回100,表示继续将post请求体中的数据带过来。长时间未响应则客户端也默认继续上传,其他则直接返回错误。

101

表示服务器将要切换/升级协议,客户端会请求更换协议,服务端如果返回101,则可以更换,洗一次请求用新的协议,在请求头中可以加‘Connection: Upgrade’,‘Upgrade:HTTP / 2’去升级成为http/2,也可以升级成为WebSocket。

2XX

2XX开头基本为成功

200

最常见也最熟悉的,表示请求正常处理了。

201

表示新的资源创建完毕,以及服务器录入了新的信息。

202

表正在处理或者运算中,会一直给状态码202,如果计算结束返回数据,则给200,客户端可以通过轮询拿到响应数据。

203

表示返回的信息不一定正确,经常出现在代理服务器的缓存上。

204

请求正确,但是没啥好返回的。

205

更新重置,比如删除了某个item,就服务器返回204,前端就更新响应视图。

206

返回一部分内容,根据请求头的部分进行拼接。分批下载的时候会用到。

3XX

3XX基本上也表示请求没有问题,但会有一些告示

300

请求成功,但是会有告示服务器这个路径有多种选择,然后可以根据报文内容进行更加细分的选择,并继续请求。

301

面试官问的最多,永久重定向,表示资源已经转移,之后最好去新的路径拿文件。

302

暂时重定向,暂时将资源转移,不建议之后用返回的新的路径去访问资源。

303

和302差不多,也是暂时重定向,很多时候302的请求是用post的,很多时候post请求服务器资源是经过一轮处理的,也就是下次再用post请求某个资源时就不是同样的资源了,这样的话301或者302给出的新资源的路径其实是错误的,不规范的,不一定是下次请求想要的资源,所以303的跳转会让用户进行确定使用get方式进行重定向,而不是直接用现在请求的方式重定向重定向。

304

面试官也问得最多,是关于协商缓存的,表明我这个资源没有更新,你可以直接用你本地保存的缓存。

305

表示必须通过某个中转站(代理服务器)请求我们的服务器才可以。

306

废弃。

307

和303差不多,但是必须用get的方式重定向。

4XX

4XX基本上是你客户端请求有问题了

400

可能少加了个参数就会返回这个。

401

没有带token等用于身份验证的信息就会出现这个。

402

暂时没有

403

带上token了,但是没有权限访问。

404

最常见,没有这个资源

405

有这个资源,但是你请求的方法错了

406

请求资源的格式错误,比如我们要拿到json的数据,但服务器只有xml的数据。

407

和401差不多,但对象是代理服务器

408

请求超时

409

资源冲突,服务器拒绝相同但资源,但还是上传了相同的资源,告示资源冲突。

410

资源存在过,但现在没了,参考百度网盘。。。

411

一大段资源,你不选择要哪部分,就会411。

412

某些条件没有,比如我要某个资源,其实是有的,但是请求这个资源的某一版本,如果服务器端没有,就会返回这个。

413

太大了,进不去,服务器有时候会限制上传文件的大小。

414

url太长了,超出了服务器的范畴。

415

上传类型不支持,比如文件的格式传错了。

416

想要某个视频的20秒到21秒,但我只有19秒,就会返回这个。

417

预期错误,比如我们想要expect: 100-continue,但是不行,就会返回这个

5XX

基本上是服务器炸了

500

服务器因为错误炸了。

501

某些功能、请求类型不支持。

502

中间商(代理服务器)拿服务器但资源出错了。

503

服务暂时不可用,可能在部署什么的。或者服务器繁忙。

504

服务终端不理代理服务器。

505

协议不支持。

你可能感兴趣的:(网络)