女朋友报考公务员,却让我向她解释HTTP与HTTPS的区别……

昨天晚上我正在看书呢,女朋友跑过来问她的电脑去哪了。我说看看沙发上,你刚才不是还在用ipad报考公务员考试吗,怎么样了。她说她用ipad登录不上报考网站,想用电脑试试,并给我看了下面这张图。
在这里插入图片描述
我说别直接输入www.scs.gov.cn,输入http://www.scs.gov.cn/
试试。过了几分钟,她开心地告诉登录成功了,并问我这是怎么回事。我说如果直接输入www.scs.gov.cn,浏览器默认的网站前缀是https://
,即网址是https://www.scs.gov.cn,而一般的政府网站的网站前缀是http://,并且给她讲解了https与http的区别。
在这里插入图片描述

HTTP与HTTPS的区别

安全性上,HTTPS是安全超文本协议,在HTTP基础上有更强的安全性。简单来说,HTTPS是使用TLS/SSL加密的HTTP协议

申请证书上,HTTPS需要使用ca申请证书

传输协议上, HTTP是超文本传输协议,明文传输;HTTPS是具有安全性的 SSL 加密传输协议

连接方式与端口上,http的连接简单,是无状态的,端口是 80; https 在http的基础上使用了ssl协议进行加密传输,端口是 443

HTTP的工作过程

HTTP由请求和响应构成,是一个标准的客户端服务器模型(C/S)。HTTP协议永远都是客户端发起请求,服务器回送响应。

  1. 地址解析。域名系统DNS解析域名得到主机的IP地址

  2. 封装HTTP请求数据包。封装的内容有以上部分结合本机自己的信息。

  3. 封装成TCP包,建立TCP连接(TCP的三次握手)

  4. 客户机发送请求命令。 建立连接后,客户机向服务器发送一个请求

  5. 服务器响应。服务器接到请求后,给予相应的响应信息

  6. 服务器关闭TCP连接。一般Web服务器向浏览器发送了请求数据,它要关闭TCP连接

  7. 客户端解析报文,解析HTML代码,并渲染

HTTPS的实现原理

HTTP以明文方式传输信息,不能保障数据传输的安全。

HTTPS在HTTP的基础上加入了SSL协议。

HTTPS使用SSL协议和TLS协议

SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS的通信过程

https通信时,首先建立ssl层的连接,客户端将ssl版本号和加密组件发到服务器端,服务器端收到后对ssl版本号和加密组件进行匹配,同时将CA证书及密钥发送到客户端。客户端对证书进行验证,验证通过后使用非对称加密对数据通信时的密钥进行协商。协商后得到一致的获得一致的对称加密密钥。然后使用对称加密算法进行TCP连接,后续的过程跟http的过程一致。三次握手,数据交换,四次挥手,通信结束。

过程如下 :

  1. 客户端和服务器端通过TCP建立连接。

  2. 客户端向服务器发送HTTPS请求。

  3. 服务器响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。

  4. 客户端收到服务器端的数字证书之后,会验证数字证书的合法性。

  5. 如果公钥合格,那么客户端会生成一个用于进行对称加密的密钥client key,并用服务器的公钥对客户端密钥进行非对称加密。

  6. 客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。

  7. 服务器接收到客户端发来的密文之后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。

  8. 客户端收到密文,并使用客户端秘钥进行解密,渲染网页。

在这里插入图片描述

参考链接:

https://www.jianshu.com/p/14cd2c9d2cd2

文章持续更新,可以微信搜索公众号「 云璈公子 」阅读,回复【资料】【面试】【简历】有我准备的一线大厂面试资料和简历模板,同时我的GitHub https://github.com/1170300826/JavaInterview 有互联网一线大厂面试指南。

猜你喜欢

转载自blog.csdn.net/JAck_chen0309/article/details/107033926