网站的面包屑怎么做的,大连建站企业,wordpress页面链接404错误,投票网站制作HTTP 和 HTTPS 是两种常见的网络协议#xff0c;它们都是用于在浏览器和服务器之间传输数据的。但是#xff0c;它们之间也有一些重要的区别#xff0c;这些区别涉及到数据的安全性、传输性能、使用成本和搜索排名等方面。本文将从以下几个方面来介绍 HTTP 和 HTTPS 的区别它们都是用于在浏览器和服务器之间传输数据的。但是它们之间也有一些重要的区别这些区别涉及到数据的安全性、传输性能、使用成本和搜索排名等方面。本文将从以下几个方面来介绍 HTTP 和 HTTPS 的区别本文内容大纲如下 数据的安全性
HTTP 协议是一种明文传输协议它不对数据进行任何加密或验证这意味着任何人都可以在网络上截获、查看或修改 HTTP 传输的数据这就存在很大的安全风险尤其是对于一些敏感的信息如用户名、密码、银行卡号、身份证号等。
HTTPS 协议是一种安全传输协议它在 HTTP 的基础上增加了 SSL/TLS 层SSL/TLS 是一种加密和认证技术它可以对数据进行加密、解密、签名和验证这样就可以保证数据的机密性、完整性和身份真实性防止数据被第三方窃取或篡改。 图片来源 https://coolcao.com 2018/08/06/https/
如上图HTTPS 流程包含握手和后续的数据传输握手的目的是为了客户端与服务端协商加密算法等参数。
HTTPS 协议的工作原理大致如下 客户端首次请求服务器告诉服务器自己支持的协议版本支持的加密算法及压缩算法并生成一个随机数client random告知服务器。 客户端需要提供的信息 支持的协议版本如 TSL1.0 版本 客户端生成的随机数用以稍后生成对称密钥 支持的加密算法支持的压缩方法等 服务器确认双方使用的加密方法并返回给客户端证书以及一个服务器生成的随机数server random 服务器需要提供的信息 协议的版本 加密的算法 服务器生成的随机数 服务器证书 客户端收到证书后首先验证证书的有效性然后生成一个新的随机数premaster secret并使用数字证书中的公钥加密这个随机数发送给服务器。 客户端会对服务器下发的证书进行验证验证通过后客户端会再次生成一个随机数premaster secret然后使用服务器证书中的公钥进行加密以及放一个 ChangeCipherSpec 消息即编码改变的消息还有整个前面所有消息的 hash 值进行服务器验证然后用新秘钥加密一段数据一并发送到服务器确保正式通信前无误。 服务器接收到加密后的随机数后使用私钥进行解密获取这个随机数premaster secret。 最后服务器和客户端根据约定的加密方法使用前面提到的三个随机数client random, server random, premaster secret生成对称密钥用来加密接下来的整个对话过程。服务端用对称密钥加密响应数据传给客户端客户端用对称密钥解密响应数据得到明文数据。
传输性能
要讨论传输性能需要针对不同的 HTTP 版本做说明
HTTPS VS HTTP 1.1
在 HTTP 1.1 中HTTP 1.1 的性能比 HTTPS 还要好一些主要是因为 HTTPS 只是在 HTTP 1.1 协议上增加了 TLS 层没有其他方面的修改。
增加了 TLS 层后需要额外的加密和解密的过程这会增加数据的处理时间和传输时间同时也会消耗更多的 CPU 和内存资源。另外 HTTPS 协议还需要进行证书的验证和密钥的协商这也会增加连接的建立时间。
HTTP 1.1 连接建立过程只需要进行 TCP 的三次握手而 HTTPS 协议的连接建立过程还需要进行 SSL/TLS 的握手这会多出至少 6 次的往返时间RTT。
因此HTTPS 的连接建立时间要比 HTTP 1.1 的连接建立时间长得多。
HTTP 2 VS HTTP 1.1
HTTP 2 比起 HTTP 1.1 的性能提升就比较多了主要有以下几点。
二进制分帧
HTTP 2 使用二进制分帧可以减少数据的大小和格式的复杂度提高数据的传输效率。
它主要修改了 HTTP 1.1 的报文传输格式。HTTP 1.1 以换行符作为纯文本的分隔符而 HTTP 2 将所有传输的信息分割为更小的消息和帧并采用二进制格式对它们编码这些帧对应着特定数据流中的消息他们都在一个 TCP 连接内复用。
多路复用
HTTP 2 支持多路复用可以在一个连接上并发传输多个请求和响应避免了队头阻塞和重复建立连接的开销。
HTTP 2 可以在共享 TCP 连接的基础上同时发送请求和响应。HTTP 消息可以被分解为独立的帧而不破坏消息本身顺序的情况下交错发出去在另一端根据流标识符和首部将他们重新组装起来。通过多路复用技术可以避免 HTTP 旧版本的消息头阻塞问题极大提高传输性能。
首部压缩
HTTP 2 支持首部压缩可以减少数据的传输量节省了网络的带宽。
HTTP 2 使用了 HPACK 算法来压缩头字段这种压缩格式对传输的头字段进行编码减少了头字段的大小。同时在两端维护了索引表用于记录出现过的头字段后面在传输过程中就可以传输已经记录过的头字段的索引号对端收到数据后就可以通过索引号找到对应的值。对比 HTTP 1.1 使用文本的形式传输消息头HTTP 2 的首部压缩可以减少请求资源大小。
HTTP 2 缺点
说了这么多 HTTP 2 的优点那 HTTP 2 的缺点我们也需要清楚。 HTTP 2 建立连接的延时HTTP 2 仍然基于 TCP 协议因此需要进行 TCP 的三次握手和 TLS 的握手这会消耗一定的时间影响数据的传输效率。 HTTP 2 队头阻塞没有彻底解决HTTP 2 虽然支持多路复用可以在一个连接上并发传输多个请求和响应但是如果其中一个数据流发生了丢包或延迟那么整个 TCP 连接都会受到影响导致后续的数据流也被阻塞。 HTTP 2 多路复用容易超时HTTP 2 的多路复用技术使得多个请求其实是基于同一个 TCP 连接的那么如果某一个请求的处理时间过长那么多个请求都可能超过客户端的超时时间导致请求失败。
HTTP 3 VS HTTP 2
HTTP 3 相比 HTTP 2 的提升可以说是全方位的底层的传输协议由 TCP 协议改为使用基于 UDP 协议的 QUIC 协议在应用层实现了拥塞控制、可靠传输的特性。
优点
HTTP 3 的优点主要体现在它使用了 QUIC 协议可以减少握手的延迟提高连接的稳定性支持更高效的多路复用以及更好的适应网络变化等
缺点
HTTP 3 的缺点主要体现在它仍然存在一些兼容性和稳定性的问题有时候甚至会比 HTTP 2 稍微慢一点。这可能是由于拥塞控制算法的不同或者是由于网络设备和防火墙对 UDP 的限制或过滤所导致的。
大家可以看到不同 HTTP 版本之间的性能差异是很大的。HTTP 2 和 HTTP 3 都是默认建立在 HTTPS 之上的。所以如果想要更高的 HTTP 协议传输性能的话可以使用 HTTP 2 或者 HTTP 3 协议。
使用成本
HTTP 的使用成本比起 HTTPS 而言就低的多了主要是因为 HTTPS 协议需要申请和维护数字证书这通常需要一定的费用而且证书的有效期有限需要定期更新 在业务开发中一个阿里云 HTTPS CA 的企业级证书一年的价格通常需要几千人名币. 另外HTTPS 也需要消耗一丢丢的服务器资源因为 TLS 层的加密和解密过程也需要 CPU 参与计算。
与之相比HTTP 不需要申请和维护数字证书也不需要更多的服务器资源所以说 HTTP 协议的使用成本更低。
搜索排名
HTTPS 协议的搜索排名优于 HTTP 协议主要是因为 HTTPS 协议可以提高用户的信任度和安全感从而提高用户的访问量和停留时间这些都是搜索引擎优化SEO的重要因素。
另外一些主流的搜索引擎如 Google 和百度也明确表示HTTPS 协议是搜索排名的一个重要权重指标也就是说HTTPS 网站比 HTTP 网站在搜索排名中更有优势。
HTTP 协议由于安全性较差可能会导致用户的流失和不满从而影响用户的访问量和停留时间这些都会降低搜索引擎优化SEO的效果。而且HTTP 协议也没有得到搜索引擎的青睐因此HTTP 协议的搜索排名较低。
综上所述HTTPS 协议在安全性和搜索排名方面有明显的优势而 HTTP 协议只是在成本控制方面会好一点。
随着互联网的发展HTTPS 协议已经成为越来越多网站的选择而 HTTP 协议已经逐渐被淘汰。因此建议网站的开发者和运营者尽快将 HTTP 协议升级为 HTTPS 协议以提高网站的安全性和竞争力。
最后
感谢大家阅读希望能给大家提供帮助。 关注公众号【waynblog】每周分享技术干货、开源项目、实战经验、国外优质文章翻译等您的关注将是我的更新动力