HTTP和HTTPS的通信流程对比

1,what is WWW(world wide web)

1.1 定义:www是一个大规模,联机式的资料空间/信息储藏所,是无数个网络站点和网页的集合

在这里插入图片描述

2 HTTP/HTTPS的通信流程

2.1 弄清楚浏览器(client)是如何通过域名向万维网服务器请求万维网文档,以及服务器如何把文档传递给浏览器的()

在这里插入图片描述
HTTP 和 HTTPS 都需要在建立连接的基础上来进行数据传输,
在HTTP中

  1. 当客户在浏览器中输入网址的并且按下回车,浏览器会通过本地的DNS 缓存,查找对应的ip地址,若未找到,则会向DNS服务器发出查询请求,DNS查询到相应的IP地址后,发回给相应的客户机,
  2. 如果客户机收到IP地址,则会向目标服务器发送建立TCP连接请求,
  3. 经历两次TCP握手后,第三次握手中,客户端向服务端发送获取资源的请求
  4. 服务器收到资源请求后,进行响应
  5. 关闭TCP连接

在HTTP中

  1. 当客户在浏览器中输入网址的并且按下回车,浏览器会通过本地的DNS 缓存,查找对应的ip地址,若未找到,则会向DNS服务器发出查询请求,DNS查询到相应的IP地址后,发回给相应的客户机,
  2. 如果客户机收到IP地址,则会向目标服务器发送建立TCP连接请求,
  3. 经历两次TCP握手后,第三次握手中,要求建立HTTPS的连接,
  4. 参考3.1中的内容

2.2 HTTP协议补充在这里插入图片描述

2.3 HTTP的“无状态”解释

意思是说当多个用户访问同一个服务器时,无论尝试多少次,每次返回的页面都和第一次相同,

2.4 HTTP的非持久连接

在这里插入图片描述
从上图可以知道HTTP的非持久连接每次传输一个http文件,都需要重新建立一次tcp连接,所以请求一个资源A的总耗时为2 * RTT + 资源A的传输时间(注意文件传输时间和文件传播时间的差别,2 * RTT表示传播时延),
当浏览器想向服务器请求n个相同的资源的时候,那么其总耗时 T = n * ( 2 * RTT + 资源A的传输时间)

2.5 持久连接

2.5.1 非流水线型

在这里插入图片描述
从上图可以知道HTTP的非流水线持久连接,
(1) 只建立一次tcp连接,后面客户端请求服务器资源的时候都不需要重新建立TCP连接,也就是说服务器响应第一次资源请求后,会继续保持这条tcp连接,后续的资源请求会继续保持在这条连接之上;
(2) 但是非流水线的连接下,在收到浏览器对上一次请求的资源相应之前,客户端一次只能发送一个HTTP请求,
(3) HTTP/1.1的默认模式使用带流水线的持久连接。这种情况下,HTTP客户每碰到一个引用就立即发出一个请求,因而HTTP客户可以一个接一个紧挨着发出各个引用对象的请求。服务器收到这些请求后,也可以一个接一个紧挨着发出各个对象。如果所有的请求和响应都是紧挨着发送的,那么所有请求的对象一共只经历1个RTT的延迟就可以到达服务端(而不是像不带流水线的版本那样,每个引用到的对象都各有1个RTT的延迟)。另外,带流水线的持久连接中服务器空等请求的时间比较少。与非持久连接相比,持久连接(不论是否带流水线)除降低了1个RTT的响应延迟外,慢启动延迟也比较小。其原因在于既然各个对象使用同一个TCP连接,服务器发出第一个对象后就不必再以一开始的缓慢速率发送后续对象。相反,服务器可以按照第一个对象发送完毕时的速率开始发送下一个对象。

2.5.2 流水线式的连接

在这里插入图片描述
从上图可以知道HTTP的流水线式的持久连接,

  • 和非流水线式一样,只建立一次tcp连接,后面客户端请求服务器资源的时候都不需要重新建立TCP连接,也就是说服务器响应第一次资源请求后,会继续保持这条tcp连接,后续的资源请求会继续保持在这条连接之上;
  • 但是在流水线的连接下,建立完tcp连接后,客户端能一次发送多个连接请求
    or
    是客户端可以先一次性发送多个请求,而在发送过程中不需先等待服务器的回应,可以减少整体的响应时间。
  • 因此,当浏览器想向服务器请求n个相同的资源的时候,那么其总耗时T 远远小于非流水线下的资源请求时间
  • 但是服务器还是按照顺序响应,先回应 A 请求,完成后再回应 B 请求。

而且要等服务器响应完客户端第一批发送的请求后,客户端才能发出下一批的请求,也就说如果服务器响应的过程发生了阻塞,那么客户端就无法发出下一批的请求,此时就造成了「队头阻塞」的问题

2.6 keep-alive

(1)TCP 的 Keepalive 也叫 TCP 保活机制,该功能是由「内核」实现的,当客户端和服务端长达一定时间没有进行数据交互时,内核为了确保该连接是否还有效,就会发送探测报文,来检测对方是否还在线,然后来决定是否要关闭该连接。HTTP 的 Keep-Alive 也叫 HTTP 长连接,该功能是由「应用程序」实现的,可以使得用同一个 TCP 连接来发送和接收多个 HTTP 请求/应答,减少了 HTTP 短连接带来的多次 TCP 连接建立和释放的开销。

(2)在 TCP 保活机制下,设置了 HTTP 长连接的超时时间是 60 秒,web 服务软件就会启动一个定时器,如果客户端在完后一个 HTTP 请求后,在 60 秒内都没有再发起新的请求,定时器的时间一到,就会触发回调函数来释放该连接。

3,HTTPS

3.1 通信流程

HTTPS的连接也是建立在TCP之上的,下面所显示的图片,省略了一开始的TCP的三次握手过程
在这里插入图片描述

3.2 对称加密和非对称加密

  • 对称加密

即加密的密钥和解密的密钥相同,

  • 非对称加密

非对称加密将密钥分为公钥和私钥,公钥可以公开,私钥需要保密,客户端公钥加密的数据,服务端可以通过私钥来解密

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值