一、https的工作原理
(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。
二、HTTPS 的优缺点
优点
-
可以对数据进行加密和身份验证,保护用户的隐私和安全。
-
可以防止中间人攻击,避免数据被窃听或篡改。
-
可以提高网站的信誉和排名,增加用户的信任和访问量。
-
可以支持更多的功能和扩展,如 HTTP/2,WebRTC,Service 等。
缺点
-
需要购买和维护数字证书,增加网站的成本和复杂度。
-
需要消耗更多的服务器资源和网络带宽,降低网站的性能和速度。
-
需要适配不同的浏览器和操作系统,解决兼容性和更新问题。
-
可能影响一些缓存和优化策略,如 CDN,SPDY 等。
三、HTTP 的优缺点
优点
-
简单:HTTP 是一种文本协议,易于理解和实现。HTTP 的请求和响应都由起始行、首部字段和可选的消息主体组成,每个部分都有明确的语法规则。HTTP 的方法、状态码和首部字段都有标准化的定义,方便开发者遵循。
-
灵活:HTTP 是一种无状态协议,即每个请求和响应都是独立的,不依赖于之前或之后的交互。这使得 HTTP 可以支持多种类型的资源,如 HTML、图片、视频、音频等,也可以支持多种类型的客户端,如浏览器、手机、物联网设备等。HTTP 还可以通过扩展首部字段或使用其他协议(如 HTTPS、WebSocket)来增加新的功能或安全性。
-
通用:HTTP 是一种广泛使用的协议,几乎所有的网站和应用都基于 HTTP 进行通信。HTTP 也是一种开放的协议,任何人都可以参与其发展和改进。HTTP 的标准由 IETF(互联网工程任务组)和 W3C(万维网联盟)制定和维护,经过了多年的演进和更新,目前最新的版本是 HTTP/2。
缺点
HTTP 协议是无状态的,即每次请求都是独立的,服务器不会保存客户端的任何信息。HTTP 协议也是明文的,即请求和响应的内容都是未加密的,任何人都可以在网络上截获并查看。
这样就导致了 HTTP 协议的几个缺点:
-
通信使用明文(不加密),内容可能会被窃听:由于数据是明文传输的,任何人都可以知道用户访问了哪些网站,浏览了哪些内容,甚至分析出用户的喜好、习惯等个人信息,这些信息可能被用于商业利益或其他目的,侵犯了用户的隐私权。
-
不验证通信方的身份,因此有可能遭遇伪装:由于服务器不会保存客户端的状态,客户端每次请求都需要提供身份信息,如 Cookie 或 Session,这些信息也可能被攻击者截获或伪造,导致身份认证失败或被冒充。
-
无法证明报文的完整性,所以有可能已遭篡改:由于数据是明文传输的,攻击者可以轻易地获取用户的敏感信息,如账号、密码、银行卡号等,或者篡改数据内容,造成用户或网站的损失。