这是我参与「第四届青训营 」笔记创作活动的第7天
课堂内容
一、初识HTTP
1.什么是HTTP
- Hyper Text Transfer Protocol 超文本传输协议
- 应用层协议,基于TCP协议
- 请求 响应
- 简单可扩展
- 无状态
二、协议分析
1.发展
2.报文
3.HTTPS
- HTTPS:Hypertext Transfer Protocol Secure
- 经过TSL/SSL加密
- 对称加密:加密和解密都是使用同一个密钥
- 非对称加密,加密和解密需要使用两个不同的密钥:公钥(public key)和私钥(private key)
三、场景分析
1.静态资源
静态资源方案: 缓存 + CDN + 文件名hash
2.登录
- 业务场景
- 表单登录
- 扫码登录
- 技术方式
- SSO
3.跨域问题
- CORS( Cross-Origin Resource Sharing )
- 预请求:获知服务端是否允许该跨源请求(复杂请求)
- 相关协议头
四、实战
1.浏览器
- AJAX之XHR
- XHR:XMLHttpRequest
- readyState
- UNSENT:代理被创建,但尚未调用 open()方法。
- OPENED:open()方法已经被调用。
- HEADERS_ RECEIVED:send() 方法已经被调用,并且头部和状态已经可获得。
- LOADING:下载中,responseText属性已经包含部分数据。
- DONE:下载操作已完成
- AJAX之Fetch
- XMLHttpRequet的升级版
- 使用Promise
- 模块化设计,Response, Request,Header对象
- 通过数据流处理对象,支持分 块读取
2.node
- 标准库HTTP/HTTPS
- 默认模块,无需安装其他依赖
- 功能有限/不是十分友好
- 常用请求库axios
- 支持浏览器、nodejs环境
- 丰富的拦截器
五、了解更多
1.WebSocket
- 浏览器与服务器进行全双工通讯的网络技术
- 典型场景:实时性要求高,例如聊天室
- URL 使用 ws:// 或 wss:// 等开头
2.QUIC
- Quick UDP Internet Connection
- 0-RTT 建联(首次建联除外)
- 类似TCP的可靠传输
- 类似TLS的加密传输,支持完美前向安全
- 用户空间的拥塞控制,最新的BBR算法
- 支持h2的基于流的多路复用, 但没有TCP的 HOL问题
- 前向纠错FEC
- 类似MPTCP的Connection migration
以上就是我总结的第七节课的内容了,内容有疏漏还请见谅,有错误还请指正。其中场景分析知识点比较零碎,建议大家跟着老师过一遍,希望我们一起进步,顺利结营!