1.初识HTTP
背景知识;什么是HTTP,其基本特点
什么是HTTP
- Hyper Text Transfer Protocol超文本传输协议
- 应用层协议,基于TCP协议
- 请求 响应
- 无状态
2.协议分析
报文结构,发展历程
持续发展
报文分析
状态码
RESTful API
RESTful API:一种APi设计风格;REST-Representational State Transfer
- 每个URL代表一种资源
- 客户端和服务器之间,传递这种资源的某种表现层
- 客户端通过HTTP method,对服务器端资源进行操作,实现“表现层状态转化”
常用请求头
常用响应头
缓存
cookie
发展
HTTPS概述
- HTTPS:Hypertext Transfer Protocol Secure
- 经过TSL/SSL加密
- 对称加密:加密和解密都是使用同一个密钥
- 非对称加密:加密和解密需要使用两个不同的密钥:公钥(public key)和私钥(private key)
3.常见场景
静态资源、登陆
静态资源
登录
跨域
适合使用JWT的场景:
- 有效期短
- 只希望被使用一次 比如,用户注册后发一封邮件让其激活账户,通常邮件中需要有一个链接,这个链接 需要具备以下的特性:能够标识用户,该链接具有时效性(通常只允许几小时之内激活),不能被篡改已激活其他可能得账户,一次性的。这种场景就适合使用JWT。 而由于JWT具有一次性的特性。单点登录和会话管理非常不适合用JWT,如果在服务器端部署额外的逻辑存储JWT的状态,那还不如使用session。基于session有很多成熟的框架可以开箱即用,但是用JWT还要自己实现逻辑
SSO:单点登录(Single Sign On)
4.实际应用
浏览器与node中使用
浏览器
nodejs
常用库
用户体验
稳定性
- 重试是保证稳定的有效手段,但要防止加剧恶劣情况
- 缓存合理使用,作为最后一道放防线
5.了解更多
不止HTTP协议一个选择
扩展-通信方式
WebSocket
- 浏览器与服务器进行全双工通讯的网络技术
- 典型场景:实时性要求高,例如聊天室
- URL使用ws:// 或 wss://等开头
*