HTTP 实用指南 | 青训营笔记
这是我参与「第四届青训营 」笔记创作活动的的第6天
初识HTTP-什么是HTTP
- Hyper Text Transfer Protocol 超文本传输协议
- 应用层协议,基于TCP协议
- 请求 响应
- 简单可扩展
- 无状态
协议分析-报文
状态码
200 OK客户端请求成功 301 资源网页等被永久转移到其他URL 302 临时跳转 401 Unauthorized-请求未经授权 404 请求资源不存在,可能是输入了错误的URL 500 服务器内部发生的不可预期的错误 504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应
Restful API
RESTful API:一种API设计风格;REST-Representional State Transfer
- 每一个URL代表一种资源;
- 客户端和服务器之间,传递这种资源的某种表现层;
- 客户端通过HTTP method,对服务端资源进行操作,实现表现层状态转化
协议分析-发展
HTTP/2概述:更快,更稳定,更简单
- 帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
- 二进制
- 消息:与逻辑请求或响应消息对应的完整的一系列帧
- 数据流:已建立的连接内的双向字节流,可以承载一条或多条信息
- 交错发送,接收方重组织
- HTTP/2连接都是永久的,而且仅需要每个来源一个连接
- 流控制:阻止发送方向接收方发送大量数据的机制
HTTPS概述
- HTTPS:Hypertext transfer Protocol Secure
- 经过TSL/SSL加密
- 对称加密:加密和解密都是使用同一个密钥
- 非对称加密:加密和解密需要使用两个不同的密钥,公钥(public key)和私钥(private key)
跨域解决方案
- CORS
- 代理服务器
- 同源策略是浏览器的安全策略,不是HTTP的
- Iframe
- 诸多不便
**AJAX之Fetch **
- XMLHttpRequest的升级版
- 使用Promise
- 模块化设计,Response,Request,Header对象
- 通过数据流处理对象,支持分块读取
常用的请求库:axios
- 支持浏览器、nodejs环境
- 丰富的拦截器
WebSocket 浏览器与服务器进行数全双工通讯的网络技术 典型场景:实时性要求高,例如聊天室 URL使用ws://或wss://等开头