专栏首页IT大咖说HTTP和HTTPS连接是如何建立的?

HTTP和HTTPS连接是如何建立的?

HTTPS指的是超文本传输安全协议。HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意劫持的可能.很好的解决了http的三个缺点(被监听、被篡改、被伪装)那么HTTP和HTTPS连接是如何建立的?简单的理解,HTTPS就是将HTTP中的传输内容进行了加密,然后通过可靠的连接,传输到对方的机器上。

HTTP和HTTPS连接是如何建立的?

1、建立连接

HTTP和HTTPS都需要在建立连接的基础上来进行数据传输,是基本操作

当客户在浏览器中输入网址后,浏览器会在浏览器DNS缓存,本地DNS缓存,和Hosts中寻找对应的记录,如果没有获取到则会请求DNS服务来获取对应的ip

当获取到ip后,tcp连接会进行三次握手建立连接

2、tcp的三次挥手和四次挥手

过程简图

3、三次握手(建立连接)

第一次:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次:服务器收到SYN包,向客户端返回ACK(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RCVD状态;

第三次:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据,也就是ESTABLISHED状态。

三次握手保证了不会建立无效的连接,从而浪费资源。

4、四次握手(断开连接)

第一次:TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。

第二次:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

第三次:服务器关闭客户端的连接,发送一个FIN给客户端。

第四次:客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

5、 HTTP请求过程

· 建立连接完毕以后客户端会发送响应给服务端

· 服务端接受请求并且做出响应发送给客户端

· 客户端收到响应并且解析响应给用户

HTTPS

· 在使用HTTPS是需要保证服务端配置正确了对应的安全证书

· 客户端发送请求到服务端

· 服务端返回公钥和证书到客户端

· 客户端接收后会验证证书的安全性,如果通过则会随机生成一个随机数,用公钥对其加密,发送到服务端

· 服务端接受到这个加密后的随机数后会用私钥对其解密得到真正的随机数,随后用这个随机数当做私钥对需要发送的数据进行对称加密

· 客户端在接收到加密后的数据使用私钥(即生成的随机值)对数据进行解密并且解析数据呈现结果给客户

· SSL加密建立

HTTPS是如何建立连接的,又是怎么进行加密的?

那HTTPS是如何建立连接的呢,怎么商量好加密密码的呢?HTTPS 同 HTTP 一样,首先建立起 TCP 连接,但是建立好之后并不是立即发出请求,索要具体的资源,而是先和对方商量加密的密码。商量的加密密码的过程就是建立 TSL 连接的过程。其实并没有建立真实的连接,只是在刚刚建立好的 TCP 连接上,包裹上一层加密协议而已。但是也被形象的称作连接建立。具体建立方式如下:客服端发给服务器一个HELLO包,里面有我支持的加密协议列表。服务器收到后发送也给客户端发送一个HELLO数据包,数据包内包涵服务器挑选的加密算法,还包含自己的数字证书信息。你拿到他的数字证书信息之后就需要去向 CA 校验证书,校验成功后也知道了对方的公钥,就该通知服务器,我们以后对称加密的密码是多少,当然,这个密码是要用公钥加密的。在这条消息发送之前,客户端会先发送一条消息,告诉服务器,我下一个消息将使用你刚刚挑选的加密协议进行加密了,下一个消息是加密后的哦,不要搞错。之后将对称加密的密文发给服务器。服务器接收到之后,会根据对称密钥生成一系列复杂的加密算法,在传输给客服端,客户端收到后会给服务器发送一个 Finished Message ,服务器收到消息后也回一个 Finished Message。这时,我们终于完成了加密的准备工作,一切加密方式和密钥都商量好了,终于可以传输数据了。至此,TSL 建立连接的过程结束。

目前网站最安全的保护方式就是为网站部署SSL证书,SSL证书为我们提供了更加安全、隐私、健康的互联网环境,SSL证书对传输中的数据进行加密,防止黑客的盗取甚至篡改数据,保护用户的个人信息及企业机密数据。

在中国,通过国际Webtrust标准的认证的CA机构仅3家,具备了国际电子认证服务能力的CA机构,通过国际Webtrust标准的认证意味着CA机构的运营管理和服务水平符合国际标准,并且有能力、有资质提供全球化认证服务,是可靠电子认证服务的有效证明。其中一家就是数安时代GDCA,在国内是一个综合安全实力比较强的CA机构。需要购买SSL证书的企业或站长可以考虑一下,数安时代除了自主品牌GDCA,还有Symantec、Globalsign、GeoTrust等品牌,选择更多,一次性对比,提供行业最优惠的价格。有需要可以到官网咨询客服了解产品。

本文分享自微信公众号 - IT大咖说(itdakashuo)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 7 大最致命的云安全盲点

    当下在提供 IT 服务的方面,云计算正从一个可选项进化为事实上的标准选项。根据“ 2019 年公共云趋势”,从这份企业战略集团(ESG)的报告来看,IaaS 环...

    IT大咖说
  • C/S和B/S两种架构区别与优缺点分析

    C/S和B/S,是再普通不过的两种软件架构方式,都可以进行同样的业务处理,甚至也可以用相同的方式实现共同的逻辑。既然如此,为何还要区分彼此呢?那我们就来看看二者...

    IT大咖说
  • 解密亚洲诚信如何做到HTTPS的最佳安全实践

    摘要 随着亚洲诚信2016年推出加密无处不在以来,HTTPS的使用成本和技术门槛逐步降低,HTTPS正被越来越多的网站和企业使用。但是我们发现,进行正确的HTT...

    IT大咖说
  • 7 大最致命的云安全盲点

    当下在提供 IT 服务的方面,云计算正从一个可选项进化为事实上的标准选项。根据“ 2019 年公共云趋势”,从这份企业战略集团(ESG)的报告来看,IaaS 环...

    IT大咖说
  • 五个值得深思的PHP面试题

    面试题 Q6 $x应该是输出什么? $x = true and false; var_dump($x); 部分同学或许会第一时间想到false,实际上这里依...

    wangxl
  • 针对NETFLIX的新型钓鱼攻击的精妙之处

    最近,火眼(FireEye)实验室发现了针对Netflix(一家在世界多国提供网络视频点播的公司)的一种新型网络钓鱼攻击,该攻击旨在窃取用户的信用卡数据和其他个...

    FB客服
  • "清华-腾讯联合实验室"针对疫情的分析6:全国疫情胶着,拐点还要等多久?

    文章转自:腾讯医典 2月12日的疫情数据显示,湖北疫情的扩散指数进一步下降,非湖北地区的新增病例数连续8天下降,但趋势变缓。疫情似乎进入胶着状态。 人们不禁要...

    腾讯高校合作
  • 日常开发过程中实际场景下使用git的一些简单总结

    公司内部有代码仓库和 github 仓库邮箱不一致。例如已经全局配置了公司内的信息

    flytam
  • 使用Nagios监控你的Ubuntu服务器

    Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户。它是基于GPLv2开发的开源软件,可免费获得及使用。 使用Nag...

    灬半痴
  • RSA会议:2015六大新型攻击趋势

    SANS专家在RSA会议上向大家展示了未来攻击方式的趋势。 该项研究由SANS主管John Pescatore主导,Counter Hack Challenge...

    FB客服

扫码关注云+社区

领取腾讯云代金券