http、https流程以及版本区别

http、https流程以及版本区别

从输入url后按下回车开始

因为可能记录了地址  看是否要redirect  因为可能记录了永久跳转成新的地址

再看缓存  没有缓存再去服务器 首先查找DNS

创建TCP连接

发送http请求数据包 

返回响应数据  结束接受返回

 

http/0.9

只有get

没有header等描述数据的信息

服务器发送完毕就关闭TCP连接

http/1.0

增加了post  header put等命令

增加了status code 和 header

增加多字符集支持、多部分发送、权限、缓存

http/1.1

支持持久连接  一个http请求  会创建tcp不关闭

增加了pipeline   可以再同一个连接发送多个请求

增加了host和其他命令  host可以同一个集群部署多个服务

 

http2

所有数据二进制传输

同一个连接里面发送多个请求不需要按照顺序来

头信息压缩以及推送等提高效率的功能

(之前都是客户端主动发送请求,服务器被动,现在可以服务器主动推送)

就是为了解决传输性能不足的问题

 

uniform resource identifier

URI 统一资源标识符  包括 URL  URN

uniform resource locator 统一资源定位器

http、https流程以及版本区别

urn  永久统一资源定位符   防止连接换位置导致404notfound

目前没有非常成熟的解决方案

http、https流程以及版本区别

首部--> 主题之间有一个空行

常用GET POST  方法

code 就是 404  200  301 501 等

下载一个nodejs.org

使用node -v

使用windows命令行工具

git-scm.com/download/win

 

cache-control 

可缓存性

public  任何人都可以缓存

private  只有发起请求的浏览器

no-cache 

http、https流程以及版本区别

cookie

服务端 通过 set-cookie设置

下次请求自动带上  可以设置很多键值对

属性:

max-age  和expires 设置过期时间

secure只在https时候发送

HttpOnly无法通过document.cookie访问

 

HTTPS

私钥 只放在服务器上

公钥  

http、https流程以及版本区别

 

过程是:客户端发送生成的随机数和加密套件(支持加密的算法供选择)

服务器生成随机数并且把公钥(证书)和选择的加密算法发送给客户端

客户端通过证书(公钥)生成预主秘钥(一个新的随机数,总共有三个,并且用公钥加密了)发送给服务器

然后服务器由自己的私钥解密预主秘钥

这时双方选择同一个加密套件根据三个随机数生成主**,这时开始传输由主**加密的数据

http、https流程以及版本区别

 

HTTP2

信道复用

信道复用即频分复用(FDM,Frequency Division Multiplexing),就是将用于传输信道的总带宽划分成若干个子频带(或称子信道),每一个子信道传输1路信号。要求总频率宽度大于各个子信道频率之和,同时为了保证各子信道中所传输的信号互不干扰,应在各子信道之间设立隔离带,这样就保证了各路信号互不干扰(条件之一)。特点是所有子信道传输的信号以并行的方式工作,每一路信号传输时可不考虑传输时延,因而频分复用技术取得了非常广泛的应用。频分复用技术除传统意义上的频分复用(FDM)外,还有一种是正交频分复用(OFDM)。

中文名

分帧传输   每一帧都有上下文的联系 所以可以不分先后顺序发送

Server push  服务端可以主动推送服务

http1.1只能串行  等第一个请求返回后才能处理第二个请求

而http2可以 只创建一个http连接进行多个http请求的处理