前言


每天都在上网,在搜索东西的时候,你有发现网址有什么不同吗?本文就来谈谈HTTP与HTTPS有什么不同。

你知道HTTP与HTTPS有什么区别吗?_客户端

一、什么是HTTP?


HTTP是“HyperText Transfer Protocol”的简称,翻译过来就是超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的协议,被用于在 Web 浏览器和网站服务器之间传递信息。


HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。


http的传输,具有简单、灵活的特点,但缺点是使用明文传输,请求和响应不会对通信方进行确认、无法保护数据的完整性,传输内容容易被窃取。


二、什么是HTTPS?


HTTPS是“Hypertext Transfer Protocol Secure”的简称,翻译过来就是超文本传输安全协议。它是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。


三、HTTPS 的工作原理

看完上面HTTPS的解释,大家都知道了HTTPS 能够加密信息,以免重要信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用 HTTPS 协议。


1、客户端发起 HTTPS 请求

这个很好理解,就是用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。


2、服务端的配置

采用 HTTPS 协议的服务器必须要有一套数字证书,证书可以自己制作,也可以向组织申请


区别:自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。


这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。


3、传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。


4、客户端解析证书

这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。


如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。


5、传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。


6、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,


对称加密:将信息和私钥通过某种算法混合在一起。


这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够先进,私钥够复杂,数据就够安全。


7、传输加密后的信息

这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。


8、客户端解密信息

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。


四、HTTP与HTTPS的区别

1、安全性

HTTP和HTTPS是两种不同的协议,它们之间最主要的区别在于安全性。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,容易被截取信息。


HTTPS则在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文能够加密传输,保证了数据的安全性。


2、端口号不同

HTTP和HTTPS使用的是完全不同的连接方式用的端口也不一样,HTTP是80、HTTPS是443。


3、证书

HTTPS需要申请证书,而HTTP不需要,申请证书也会有一些费用。