初识HTTP协议
01.初识-什么是HTTP ,其基本特点
什么是HTTP · Hyper Text Transfer Protocol 超文本传输协议 · 应用层协议、基于TCP协议 · 请求 响应 · 简单可拓展 · 无状态
HTTO/0.9 单行协议 -> HTTP/1.0 构建可拓展性 -> HTTP/1.1标准化协议 -> HTTP/2 更优异的表现 -> HTTP/3 草案
02.协议分析-报文结构,发展历程
协议分析-报文
Method
Safe(安全的): 不会修改服务器的数据的方法 例如:GET HEAD OPTIONS
Idempotent(幂等): 同意的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的 所有safe的方法都是Idempotent的 例如GET HEAD OPTIONS PUT DELETE
状态码
· 200 OK - 客户端请求成功 · 301 - 资源被永久转移到其他URL · 302 - 临时跳转 · 401 Unauthorized - 请求未经授权 · 404 - 请求资源不存在,可能是输入了错误的URL · 500 - 服务器内部发生了不可预期的错误 · 504 Gateway Timeout - 网关或者代理的服务器无法在规定时间内获得想要的响应
RESful API
一种API设计风格;REST - Representational State Transfer 1.每一个URI代表一种资源 2.客户端和服务器之间,传递这种资源的某种表现层 3.客户端通过HTTP Method,对服务器端资源进行操作,实现“表现层状态转化”
缓存
强缓存 - 如果缓存本地已存在,则直接调用本地缓存
协商缓存 - 如果缓存本地已存在,但是无法判断是否可用,状态是否是最新的,需要跟Server端通信去验证一下
HTTP/2概述:更快、更稳定、更简单
· HTTP/2连接都是永久的,而且仅需要每个来源一个连接 · 流控制:阻止发送方向接收方发送大量数据的机制 · 服务器推送
HTTPS概述
· HTTPS:Hypertext Transfer Protocol Secure · 经过TSL/SSL加密
03.常见场景-静态资源、登录
静态资源方案:缓存 + CDN + 文件名hash
· CDN:Content Delivery Network
· 通过用户就近性和服务器负载的判断,CDN确保内容以一种即为高效的方式为用户的请求提供服务
业务场景
· 表单登录 · 扫码登录
技术方式
· SSO
跨域解决方案
· CORS
· 代理服务器
· Iframe
04.实际应用-浏览器与node中使用
浏览器篇
AJAX之XHR
· XHR:XMLHttpRequest
· readyState
AJAX之Fetch
· XMLHttpRequest的升级版
· 使用Promise
· 模块化设计,Response,Request,Header对象
· 通过数据流处理对象,支持分块读取
标准库:HTTP/HTTPS
· 默认模块,无需安装其他依赖
· 功能有限/不是十分友好
常用的请求库:axios
· 支持浏览器、nodejs环境
· 丰富的拦截器
05.了解更多-不止HTTP协议一个选择
扩展-通信方式
WebSocket
· 浏览器与服务器进行全双工通讯的网络技术
· 典型场景:实时性要求高,例如聊天室
· URL使用WS://或者wss://等开头
QUIC:Quick UDP Internet Connection
· 类似TCP的可靠传输
· 类似TLS的加密传输,支持完美前向安全
· 用户空间的拥塞控制,最新的BBR算法
· 前向纠错FEC
总结
通过今天的课程,了解了HTTP的发展历程、HTTP协议的分析、常用的场景以及实际应用。对HTTP的概念有了进一步的认识。