文章目录
HTTP常见状态码
1、2xx
200:ok
204:No content 返回为空,但是正确处理了
206:客户端进行了范围请求
2、3xx
301:永久重定向 - 域名换了、资源地址换了
302:临时重定向 - 临时活动,只在当下临时跳转活动页面
303:请求的资源有另一个合适途径
304:浏览器缓存相关 - 未满足服务端查询需求,但是走缓存条件
3、4xx 客户端错误 服务端无法根据当前请求参数处理
400:请求报文出现了语法错误
401:认证失败
403:明确拒绝
404:服务端找不到对应资源 同时,当服务端拒绝查询资源且不愿意说明理由的时候
405:请求方式不被允许
4、5xx 服务端处理请求错误
500:当前请求发生错误
501:暂不支持当前操作
503:超负荷或停机维护
302 303 307 三种重定向的区别
302是http1.0中出现的重定向
http1.1细化派生出了 303 和 307
303将当前的post请求改变为get请求进行重定向
307当前的重定向会严格按照浏览器的诉求,不会从post变成get
HTTP版本能力
1. HTTP1.0和1.1之间有哪些区别?
连接上:
1.1 是持久型连接,把请求复用同一个TCP连接
资源处理上:
不需要整体的资源查询,而是通过range来做部分查询
缓存上:
1.0 modified-xx expires 判断是否命中缓存
1.1 etag if-match 进行缓存策略的主动化
2.HTTP1.1 和 2.0 的区别
二进制协议:
1.1中 头信息 是文本, 数据体 是文本/二进制
2.0中 头信息、数据体 都是二进制,信息流统称为帧
多路复用:
2.0 中一方面复用TCP的连接,同时在连接中,同时发送多个请求或者回应
数据流:
2.0 引入了数据流的概念并且以数据流ID进行索引。
头信息压缩
2.0 对头信息进行字典化索引以及压缩
服务端推送
2.0 允许服务端主动向客户端未经请求地推送资源 - 资源非动态数据