这是我参与[第四届青训营]笔记创作活动的第5天。此笔记用于记录课上所讲内容。
一、初识
1、什么是HTTP HTTP:Hyper Text Transfer Protocol超文本传输协议 应用层协议,基于TCP协议 请求响应 简单可扩展 无状态
二、协议分析
1、报文结构
Method:
①Safe:不会修改服务器的数据的方法 GET HEAD OPTIONS
②Idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有safe的方法都是Idempotent的 GET HEAD OPTIONS PUT DELETE
状态码含义:
RESRful API:
常用请求头:
常用响应头:
缓存:
①强缓存:
②协商缓存:
cookie:
2、发展历程
①HTTP/0.9单行协议:请求GET/mypage.html;响应只有html文档
②HTTP/1.0构建可扩展性:增加了Header,有了状态码,支持多种文档类型
③HTTP/1.1标准化协议:链接复用,缓存,内容协商
④HTTP/2更优异的表现:二进制协议,压缩header,服务器推送 优点:更快,更稳定,更简单
HTTP/2的优点如何实现的?
帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,也会标识出当前帧所属的数据流。
消息:与逻辑请求或响应消息对应的完整的一系列帧。
数据流:已建立的连接内的双向字节流,可以承载一条或多条消息。
HTTP/2连接都是永久的,而且仅需要每个来源一个链接
⑤HTTP/3草案
HTTPS(Hyper Text Transfer Protocol Secure),经过TSL/SSL加密
对称加密:加密和解密都是使用同一个密钥
非对称加密:加密和解密需要使用两个不同的密钥:公钥和私钥
三、常见场景
静态资源
方案:缓存+CDN+文件名hash CDN(Content Delivery Network)
通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。