这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
笔记内容
-
HTTP
-
初识
- TCP/IP四层网络模型:应用层,传输层,网络层,网络接口层
- OSI七层:应用层,表示层,会话层;传输层;网络层;数据链路层;物理层
- HTTP超文本传输协议Hyper Text Transfer Protocol
-
分析
- 状态码
-
方法
-
种类
- get
- post
- put
- delete
- head
- connect
- options
- trace
- patch
-
特性
- 安全:不会修改服务器数据的方法。get,head,options
- 幂等:同样的请求执行多次效果是一样的
-
-
常见字段
- Host域名
- 服务器在返回数据时,会有 Content-Length 字段,表明本次回应的数据长度。
- Connection 字段最常用于客户端要求服务器使用 HTTP 长连接机制,以便其他请求复用。
- Content-Type 字段用于服务器回应时,告诉客户端,本次数据是什么格式。如Content-Type: text/html; charset=utf-8
- Content-Encoding 字段说明数据的压缩方法。表示服务器返回的数据使用了什么压缩格式
- RESTful API
- 请求报文
- 相应报文
-
缓存
- 强缓存
- 协商缓存
- 流程图
- cookie
-
发展
-
HTTP2
-
对比HTTP/1.1
- 兼容
- 只在应用层做了改变,把HTTP分解成了语义和语法两个部分,语义和1.1保持一致,语法做出改变
-
头部压缩
-
原来header存在的问题
- 固定字段需要压缩
- 重复数据
- ASCII编码
-
使用HPACK算法
- 包括静态字典,动态字典,压缩算法
- 两端都建立和维护字典
-
-
二进制帧
- 将 HTTP/1 的文本格式改成二进制格式传输数据
-
并发传输
- 多条stream复用一条tcp连接
- 服务器主动推送资源
-
- HTTPS
-
-
场景分析
-
静态资源
- 不一定发起了请求,来自缓存
- 方案
- 文件名hash保证了想更新就会请求更新的资源。新的hash不一样了,就会请求新的
- 不一定发起了请求,来自缓存
-
登录-跨域
- 协议,域名,端口
- https默认端口443,http80
-
鉴权
- session+cookie
- jwt
- 单点登录sso
-
用户体验
- 网络优化
- 稳定性
- 网络优化
- 扩展
-
-
参考文章
字节视频
小林coding xiaolincoding.com/network/2_h…