这是我参与「第五届青训营 」伴学笔记创作活动的第6天。
什么是HTTP ?
HTTP(Hyper Text Transfer Protocol):超文本传输协议,是互联网上应用最为广泛的—种网络协议。 客户端和服务端通过交换各自的消息(与数据流正好相反)进行交互。 HTTP是应用层的协议,通过TCP,或者是TLS-加密的TCP连接来发送,理论上任何可靠的传输协议都可以使用。
HTML简单可扩展,通常用来传输超文本文档、图片、视频或者表单等相关信息。 HTTP是无状态,有会话的 在同一个连接中,两个执行成功的请求之间是没有关系的。
协议分析
代码
状态码
200 OK-客户端请求成功
301 - 资源 (网页等)被永转移到其它 URL
302 - 临时跳转
401 Unauthorized-请求未经授权
404 - 请求资源不存在,可能是输入了错误的URL
500 -服务器内部发生了不可预期的错误
504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应
- RESTfulAPI:一种API设计风格;REST Representational State Transfer
- 常用请求头
- 常用响应头
- 缓存
cookie
HTTP/2:更快、更稳定、更简单
- 帧:HTTP/2 数据通信的最小单位,请求和响应等,消息由一个或多个帧组成,每个帧都包含帧头,至少也会标识出当前帧所属的数据流。。
- 流:存在于连接中的一个虚拟通道。流可以承载双向消息,每个流都有一个唯一的整数ID。
- HTTP/2 采用二进制格式传输数据,而非 HTTP 1.x 的文本格式,二进制协议解析起来更高效。
- HTTP/2 中,同域名下所有通信都在单个连接上完成,该连接可以承载任意数量的双向数据流。每个数据流都以消息的形式发送,而消息又由一个或多个帧组成。多个帧之间可以乱序发送,根据帧首部的流标识可以重新组装。
- 消息: 与逻辑请求或响应消息对应的完整的一系列帧。
- 数据流: 已建立的连接内的双向字节流可以承载一条或多条消息。
- HTTP/2 连接都是永久的,而且仅需要每个来源一个连接
- 流控制: 阻止发送方向接收方发送大量数据的机制
HTTPS
- HTTPS 协议是由 HTTP 加上 TLS / SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过 数字证书 、 加密算法 、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。
- (1)数据保密性:保证数据内容在传输的过程中不会被第三方查看。就像快递员传递包裹一样,都进行了封装,别人无法获知里面装了什么 。
- (2)数据完整性:及时发现被第三方篡改的传输内容。就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收 。
- (3)身份校验安全性:保证数据到达用户期望的目的地。就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方,通过身份校验来确保送对了地方。
- 对称加密: 加密和解密都是使用同一个密钥
- 非对称加密:加密和解密需要使用两个不同的密钥: 公钥 (public key)和私钥 (private key)