http初识
url出入导航栏中发生了什么
什么是http
Http 应用层,基于tcp协议 请求响应 简单可拓展 无状态
协议发展
0.9 get 只有html文档
1.0 增加header,状态码,多种文档类型
1.1 缓存/协商
2 二进制协议 服务器推送 压缩header
报文
put/patch 修改资源
Head 请求一个与get请求相应相同的响应,但没有响应体
Connect 建立与服务器的隧道
Options 通信选项
Trace 换回测试
method分类 safe(不修改服务器的数据的方法) ,幂等的(同样的请求被执行一次与来纳许执行多次修过一样,服务器状态一样)
状态码
301 永久重定向
302 临时重定向
403 协商缓存(资源没有改变,返回浏览器缓存资源)
Restful api
客户端通过http方法,对服务器资源进行操作(representational state transfer)
请求头/响应头
强缓存和协商缓存
强缓存
查看本地是否有缓存的资源 有的话且在有效时间内 直接用本地浏览器缓存资源
- Expires 过期时间(时间戳 绝对时间)
- Cache-control (重要的部分是:单位是秒的相对时间max-age)
- 可缓存
- 过多久到期
- 重新验证/加载
协商缓存
查看本地是否有缓存的资源,有的话 发个请求问一下 能不能用
查看 etag(服务器id)和if-none-match(客户端是否匹配)是否一致,查看last-modified(服务器最后一次修改)和if-modified-since(客户端上一次修改请求时间)
请求头 if-...
实际流程
红色-->在请求资源发出前,检验上次相同请求得到的响应头(强-->etag-->last-modified)
http2
数据流:双向字节流,承载多条信息
消息:一系列帧
连接永久,仅需要每个来源一个连接(一个设备-一个服务器间)
流控制:服务器返回大量数据,客户端可以阻止接收
服务器推送(请求html,发现需要js.css静态资源,提前推送到客户端)
图示:
Https
Https 多一个ssl/tls
跨域
cors(cross-origin resource sharing)跨源资源共享
预请求:options
相关协议:access-control-allow 通道控制允许
解决方案
单点登录