结构
初识HTTP协议
初识HTTP
浏览器0到渲染做了什么?
什么是HTTP
- Hyper Text Transfer Protocol超文本传输协议
- 应用层协议,基于TCP协议
- 请求响应
- 简单可扩展
- 无状态
协议分析
报文
Method
状态码
- 200 0K- 客户端请求成功
- 301- 资源 (网页等) 被永久转移到其它 URL
- 302-临时跳转
- 401 Unauthorized - 请求未经授权
- 404- 请求资源不存在,可能是输入了错误的 URL500- 服务器内部发生了不可预期的错误504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应
RESTful API
RESTful API: 一种API设计风格, REST Representational State Transfer
1.每一个URI代表一种资源 2.客户端和服务器之间,传递这种资源的某种表现层 3.客户端通过HTTP method,对服务器端资源进行操作,实现"表现层状态转化"
常用的请求头
常用的响应头
缓存
cookie
发展
http2
概述:更快,更稳定,更简单
- 帧(frame): HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流。
- 二进制
- 消息:与逻辑请求或响应消息对应的完整的一系列帧。
- 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息。
- HTTP/2连接都是永久的,而且仅需要每个来源一个连接
- 流控制:阻止发送方向接收方发送大量数据的机制
Http协议的应用场景分析
场景分析
静态资源
登录
跨越
- CORS
- Cross-Origin Resource Sharing
- 预请求:获知服务端是否允许该跨源请求 (复杂请求)
- 相关协议头:
- Access-Control-Allow-OriginAccess-Control-Expose-Headers
- Access-Control-Max-Age
- Access-Control-Allow-Credentials
- Access-Control-Allow-Methods
- Access-Control-Allow-Headers
- Access-Control-Request-MethodAccess-Control-Request-Headers
- Origin
跨越的解决方案
- CORS
- 代理服务器
- 同源策略是浏览器的安全策略,不是HTTP的
- lframe
- 诸多不便