面试题:https 与 http 的区别

1. 协议的本质区别

  • http(HyperText Transfer Protocol)

    • http 是一种 无状态的、明文传输的协议。它用于客户端(如浏览器)与服务器之间交换数据,但不提供任何加密或身份验证。
    • http是基于 TCP/IP 协议栈之上的应用层协议。
    • http 通信中,数据是以 明文 形式进行传输的,任何人都可以通过网络抓包工具获取传输中的内容,存在较大的安全隐患。
  • https(HyperText Transfer Protocol Secure)

    • httpshttp 的安全版,在 http 上增加了 SSL/TLS 加密层,使得传输的数据经过加密,能够有效防止数据被窃取或篡改。
    • https 通过 SSL/TLS(安全套接字层/传输层安全协议) 实现数据加密、服务器身份认证和数据完整性校验。
    • 其工作原理是 http 协议在 SSL/TLS 协议的基础上运行,SSL/TLS 负责为数据传输过程中的通信提供安全保护。

2. 加密与安全性

  • http:数据是以 明文 形式传输,容易受到中间人攻击(MITM)、数据窃听和篡改。

    • 攻击者可以在数据传输过程中获取和修改数据包。
    • 比如,在公共 Wi-Fi 网络环境下,使用 http 的网站可能被窃取用户名、密码、银行卡信息等敏感数据。
  • https:所有传输的数据都会经过 SSL/TLS 加密,确保数据在传输过程中无法被窃听或篡改。

    • 数据加密:即使有人截获了传输的数据,也无法直接读取其内容,因为数据是加密的。
    • 身份验证:https 确保通信的服务器是合法的,不会连接到伪造的服务器。
    • 数据完整性:通过消息认证码(MAC)确保数据在传输过程中没有被篡改。

3. 端口号

  • http 使用 80 端口,默认情况下,浏览器通过 80 端口与服务器建立连接。
  • https 使用 443 端口,是默认的 https 通信端口。

4. 证书与身份验证

  • http:不涉及证书或身份验证,任何人都可以通过配置 Web 服务器提供 http 服务。

  • https:需要使用 SSL/TLS 证书。证书由受信任的证书颁发机构(CA)颁发,目的是验证网站的身份,防止中间人攻击。

    • 用户浏览器会验证 SSL/TLS 证书的合法性,确保服务器是合法且可信的。
    • 证书的验证可以防止 伪造网站 或 钓鱼攻击

5. 数据传输的过程

  • http

    1. 客户端(浏览器)向服务器发送请求。
    2. 服务器直接返回响应数据。
    3. 整个过程是 明文传输,没有加密和身份验证。
  • https

    1. 客户端向服务器发送请求,发起 SSL/TLS 握手。
    2. 服务器返回其 SSL/TLS 证书,客户端验证证书的合法性。
    3. 客户端和服务器通过 SSL/TLS 协议建立加密通道,并协商加密算法。
    4. 数据在加密通道中传输,确保了数据的 保密性 和 完整性

6. 性能影响

  • http:由于没有加密和解密过程,http 的传输速度相对较快,性能开销较小。

  • https:加密和解密的过程会消耗一定的计算资源,尤其是在初始的 SSL/TLS 握手阶段。因此,https 的性能会受到影响,尤其是服务器需要处理大量加密和解密操作时,响应速度可能会有所降低。

    不过,现代的硬件加速和优化的 SSL/TLS 实现(如 http/2 和 TLS 1.3)大大减小了 https 的性能损失,通常用户很难察觉到两者之间的差异。

7. SEO(搜索引擎优化)

  • http:没有额外的 SEO 优势。
  • https:Google 等搜索引擎已经明确表示,https 网站会在搜索排名中得到一定的优待。换句话说,使用 https 的网站比 http 网站更有可能在搜索结果中排名更高。

8. 用户信任与浏览器提示

  • http:在现代浏览器中,如果访问的是 http 网站,浏览器通常会显示 "不安全" 的警告,特别是当用户尝试输入敏感信息(如密码、信用卡号等)时。

    • 有些浏览器会在地址栏显示一个“不安全”的提示符,提醒用户这个网站不加密。
  • httpshttps 网站会在浏览器地址栏显示 锁形图标,表示与该网站的通信是加密的,数据传输是安全的。

    • 用户可以查看证书详情,确认网站的合法性。

9. 数据完整性

  • http:没有内置的数据完整性检查,数据在传输过程中可能会遭到篡改。

  • https:利用 SSL/TLS 协议中的消息摘要和签名机制,确保数据在传输过程中没有被篡改。如果数据被修改,接收方可以发现并拒绝该数据。

10. 适用场景

  • http:适用于无需保护敏感数据的场合,比如公共信息页面、博客等。
  • https:适用于涉及敏感信息(如用户名、密码、支付信息等)的场景,尤其是电商网站、银行、社交平台等需要保证用户隐私和数据安全的场合。

总结:http vs https

特性httphttps
安全性无加密,容易遭受中间人攻击使用 SSL/TLS 加密,提供数据保密性和完整性
端口80443
性能更快,较低的计算消耗有加密/解密过程,可能稍微影响性能
证书不需要证书需要有效的 SSL/TLS 证书
SEO 优势无明显优势提高搜索引擎排名
数据完整性无保障提供数据完整性校验
用户信任可能显示不安全警告显示安全锁标志,增强用户信任
适用场景适用于普通网页和不涉及敏感数据的情况适用于涉及敏感信息(登录、支付等)的场合

总结

使用 https 可以有效保障数据的安全性、隐私性和完整性,因此,几乎所有需要保护用户隐私和数据安全的现代网站都应该使用 https。随着互联网对隐私和安全的要求越来越高,https 已经成为 Web 开发的标准。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

new Vue()

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值