HTTP 与 HTTPS 的区别

发布于:2024-05-05 ⋅ 阅读:(29) ⋅ 点赞:(0)

HTTP 与 HTTPS 的区别?

HTTP HTTPS
端口 80 443
安全性 无加密,安全性较差 有加密机制,安全性较高
资源消耗 较少 由于加密处理,资源消耗更多
是否需要证书 不需要 需要
协议 运行在TCP协议之上 运行在SSL协议之上,SSL运行在TCP协议之上

HTTPS 的优缺点?

优点

  • 安全性:

    • 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

    • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。

    • HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

  • SEO方面:谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。

简述:确保数据正确发送,ssl+http,加密传输,身份认证,增加攻击成本,https在检索方面排名更高。

缺点

  • 在相同网络环境中,HTTPS 相比 HTTP 无论是响应时间还是耗电量都有大幅度上升。

  • HTTPS 的安全是有范围的,在黑客攻击、服务器劫持等情况下几乎起不到作用。

  • 在现有的证书机制下,中间人攻击依然有可能发生。

  • HTTPS 需要更多的服务器资源,也会导致成本的升高。

简述:耗电,安全性依然有范围,在现有证书机制下依然可能被攻击,耗费资源多。

讲一讲HTTPS 的原理?

图片来源:滑动验证页面

加密流程按图中的序号分为:

  1. 客户端请求 HTTPS 网址,然后连接到 server 的 443 端口 (HTTPS 默认端口,类似于 HTTP 的80端口)。

  2. 采用 HTTPS 协议的服务器必须要有一套数字 CA (Certification Authority)证书。颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被篡改。

  3. 服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等。

  4. 客户端解析证书并对其进行验证。如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。

    如果证书没有问题,客户端就会从服务器证书中取出服务器的公钥A。然后客户端还会生成一个随机码 KEY,并使用公钥A将其加密。

  5. 客户端把加密后的随机码 KEY 发送给服务器,作为后面对称加密的密钥。

  6. 服务器在收到随机码 KEY 之后会使用私钥B将其解密。经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题,接下来就可以用对称加密愉快地进行通信了。

  7. 服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据。

  8. 双方使用对称加密愉快地传输所有数据。

简述:连接端口,产生公钥私钥,私钥自己保存,公钥附带传送,服务器响应请求传递证书给客户端,客户端解析证书,客户端加密之后把key发给服务器作为加密密钥。服务器利用私钥解密。

HTTPS使用非对称加密来安全地交换密钥,然后使用对称加密来加密通信,从而提供了一个既安全又高效的加密通信方式。

在浏览器中输入www.baidu.com后执行的全部过程?

  1. 域名解析(域名 www.baidu.com 变为 ip 地址)。

    浏览器搜索自己的DNS缓存(维护一张域名与IP的对应表);若没有,则搜索操作系统的DNS缓存(维护一张域名与IP的对应表);若没有,则搜索操作系统的hosts文件(维护一张域名与IP的对应表)。

    若都没有,则找 tcp/ip 参数中设置的首选 dns 服务器,即本地 dns 服务器(递归查询),本地域名服务器查询自己的dns缓存,如果没有,则进行迭代查询。将本地dns服务器将IP返回给操作系统,同时缓存IP。

dns解析两种方式:递归和迭代

  1. 发起 tcp 的三次握手,建立 tcp 连接。浏览器会以一个随机端口(1024-65535)向服务端的 web 程序 80 端口发起 tcp 的连接。

  2. 建立 tcp 连接后发起 http 请求。

  3. 服务器响应 http 请求,客户端得到 html 代码。服务器 web 应用程序收到 http 请求后,就开始处理请求,处理之后就返回给浏览器 html 文件。

  4. 浏览器解析 html 代码,并请求 html 中的资源。

  5. 浏览器对页面进行渲染,并呈现给用户。

简述:DNS解析,建立tcp连接,发送请求,解析html,渲染

附一张形象的图片:


网站公告

今日签到

点亮在社区的每一天
去签到