HTTP与HTTPS的区别

HTTPS工作原理

1、客户端使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
2、采用HTTPS协议的服务器必须要有一套数字证书
3、Web服务器收到客户端请求后,会将网站的证书信息传送一份给客户端。
这个证书只是包含了很多信息,如证书的颁发机构、证书版本、序列号、签名算法标识符、签发⼈姓名、有效期、公钥信息等并附有CA的签名
4、客户端解析证书,验证证书的有效性

(1)首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验
(2)浏览器开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法机构颁发
(3)如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。
(4)如果找到,那么浏览器就会从操作系统中取出颁发者CA 的公钥(多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥),然后对服务器发来的证书里面的签名进行解密
(5)浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比
(6)对比结果一致,则证明服务器发来的证书合法,没有被冒充
(7)此时浏览器就可以读取证书中的公钥,用于后续加密了

5、客户端随机产生一个用于通讯的随机值(对称密钥),然后用服务器的公钥对其加密,传送到服务器
6、服务器使用私钥解密信息,获得随机值(对称密钥),然后把内容通过该对称密钥进行对称加密,
7、然后将加密的内容传输到客户端
8、客户端通过之前生成的对称密钥来解密内容,获取到真正的内容

image.png
HTTP和HTTPS区别如下

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

三次握手

第一次握手:建立连接时,客户端发送同步序列编号到服务器,并进入发送状态,等待服务器确认;
第二次握手:服务器收到同步序列编号,确认并同时自己也发送一个同步序列编号+确认标志,此时服务器进入接受状态
第三次握手:客户端收到服务器的发送的包,向服务器发送确认标志,随后连接成功

四次挥手

第一次:客户端向服务器发送一个带有结束标志的报文
第二次:服务器收到报文后,像客户端发送一个确认序号,同时通知自己相应程序,对方要求关闭连接
第三次:服务器像客户端发送一个带有结束标志的报文
第四次:客户端收到报文后,向服务端发送一个确认需要,连接关闭

我是这样理解HTTP和HTTPS区别的
HTTP 和 HTTPS 的区别(面试常考题)
HTTP与HTTPS的区别

你可能感兴趣的:(HTTP与HTTPS的区别)