面试官:HTTPS 和 HTTP 的区别是什么?

发布时间:2026/7/8 5:25:13

面试官:HTTPS 和 HTTP 的区别是什么? 在线 Java 面试刷题持续更新https://www.quanxiaoha.com/java-interview面试考察点基础掌握度面试官不仅仅是想知道 HTTPS 比 HTTP 更安全更是想知道你是否理解安全的本质——数据是如何被加密的、证书的作用是什么、整个安全通信链路是如何建立的。原理理解深度考察你是否了解 HTTPS 的底层实现包括 SSL/TLS 握手过程、对称加密与非对称加密的结合使用、数字证书的验证链等核心机制。实践应用意识如果你了解 HTTPS 的性能开销、证书部署方式、以及在实际项目中如何正确配置 HTTPS说明你不只是 懂理论还有 实战经验。核心答案HTTP 和 HTTPS 的核心区别如下对比维度HTTPHTTPS全称HyperText Transfer ProtocolHyperText Transfer ProtocolSecure端口80443安全性明文传输数据裸奔SSL/TLS 加密数据安全证书不需要需要 CA 颁发的数字证书性能无加密开销更快握手有开销但现代优化后差距很小SEO无加成搜索引擎优先收录一句话总结HTTPS HTTP SSL/TLS通过加密传输和身份认证解决了 HTTP 的三大安全问题——窃听、篡改、冒充。深度解析一、HTTP 的三大安全缺陷在了解 HTTPS 之前先要搞清楚 HTTP 为什么 不安全img上图展示了 HTTP 面临的三大安全威胁窃听风险HTTP 数据以明文形式传输就像寄信时把信封敞开任何中间节点路由器、代理、黑客都能看到内容。你在咖啡厅连 WiFi 登录网银旁边的黑客就能抓包看到你的账号密码。篡改风险HTTP 没有完整性校验机制数据在传输过程中被修改接收方根本不知道。运营商可以在网页里插入广告黑客可以修改下载的软件包植入木马。冒充风险HTTP 没有身份验证机制客户端无法确认服务器的真实身份。你以为是 工商银行其实是黑客搭建的钓鱼网站。 欢迎加入小哈的星球你将获得:专属的项目实战多个项目 / 1v1 提问 /Java 学习路线 /学习打卡 / 每月赠书 / 社群讨论新项目《Spring AI 项目实战》正在更新中..., 基于 Spring AI Spring Boot 3.x JDK 21;《从零手撸仿小红书微服务架构》 已完结基于 Spring Cloud Alibaba Spring Boot 3.x JDK 17..., 点击查看项目介绍演示地址http://116.62.199.48:7070/《从零手撸前后端分离博客项目全栈开发》2期已完结,演示链接http://116.62.199.48/;专栏阅读地址https://www.quanxiaoha.com/column截止目前累计输出 100w 字讲解图 4013 张还在持续爆肝中..后续还会上新更多项目目标是将 Java 领域典型的项目都整一波如秒杀系统, 在线商城, IM 即时通讯Spring Cloud Alibaba 等等戳我加入学习解锁全部项目已有4200小伙伴加入二、HTTPS 如何解决这三大问题HTTPS 通过SSL/TLS 协议层层设防彻底解决了上述三个问题img上图展示了 HTTPS 的防护架构加密解决窃听使用对称加密算法如 AES加密数据即使黑客截获数据包看到的也是一堆乱码没有密钥就无法解密。校验解决篡改使用消息认证码HMAC对数据进行签名接收方验证签名如果数据被篡改签名就对不上直接丢弃。证书解决冒充服务器必须持有 CA 机构颁发的数字证书客户端会验证证书的合法性确保你访问的是真正的服务器而不是钓鱼网站。三、HTTPS 的核心SSL/TLS 握手过程HTTPS 的安全性建立在 SSL/TLS 握手之上。握手的核心目标是安全地协商出一个对称加密密钥。为什么用对称加密因为对称加密快。但对称加密的密钥怎么安全传输用非对称加密来传输密钥img上图展示了 SSL/TLS 握手的核心流程协商加密套件客户端告诉服务器 我支持这些加密算法服务器选择一个双方都支持的套件。常见的套件如TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256。证书验证服务器发送数字证书客户端验证证书的合法性。这是防止 中间人攻击 的关键——只有真正的服务器才能持有有效的证书。密钥交换客户端生成一个 预主密钥Pre-Master Secret用服务器的公钥加密后发送。只有持有私钥的服务器才能解密。生成会话密钥双方用随机数 C、随机数 S、预主密钥通过 PRF 函数计算出最终的 会话密钥Session Key。后续所有数据都用这个密钥进行对称加密。握手验证双方发送加密的 Finished 消息验证握手过程没有被篡改。四、混合加密兼顾安全与性能HTTPS 使用了 非对称加密 对称加密 的混合加密方案img上图展示了混合加密的设计思路非对称加密用于密钥交换只在握手阶段使用虽然慢但安全。用它来安全地传输对称密钥。对称加密用于数据传输握手完成后所有业务数据都用对称加密。AES-GCM 的加密速度可以达到每秒几 GB性能开销几乎可以忽略。**完美前向保密 (PFS)**现代 HTTPS 使用 ECDHE 密钥交换每次会话生成新的临时密钥对。即使服务器的私钥将来泄露过去的会话数据也无法被解密。五、数字证书与 CA 信任链HTTPS 的安全性依赖于数字证书而证书的安全性依赖于 CA证书颁发机构的信任链img上图展示了证书信任链的验证过程根 CA 证书预装在操作系统或浏览器中如 DigiCert、GlobalSign 等。这些是信任的起点根 CA 的私钥通常离线保管极其安全。中间 CA 证书根 CA 签发中间 CA中间 CA 负责日常的证书签发工作。这样根 CA 的私钥不需要经常使用降低泄露风险。服务器证书网站运营者向 CA 申请证书CA 验证域名所有权后签发。证书包含域名、公钥、有效期等信息并用 CA 的私钥签名。验证链浏览器收到证书后沿着 服务器证书 → 中间 CA → 根 CA 的链条逐级验证签名直到到达信任的根证书。任何一级验证失败连接就会被终止。六、HTTP vs HTTPS 性能对比很多人担心 HTTPS 会影响性能实际上现代 HTTPS 的性能开销已经非常小img上图展示了 HTTPS 的性能分析握手开销首次连接需要额外的 TLS 握手1-2 RTT但对于长连接或会话复用场景这个开销可以忽略。传输开销现代 CPU 的 AES-NI 指令集使得对称加密的性能开销小于 1%基本可以忽略。TLS 1.3 优化最新版本的 TLS 1.3 将握手减少到 1 RTT大大降低了延迟。实际体验在 HTTP/2 的加持下HTTPS 的综合性能甚至可能超过 HTTP因为多路复用减少了连接数。面试高频追问追问一HTTPS 一定安全吗有哪些攻击方式HTTPS 加密的是传输过程但无法防止客户端被植入恶意证书、DNS 劫持、服务端漏洞等。常见攻击包括SSL 剥离降级攻击、中间人攻击伪造证书、BEAST/POODLE 等协议漏洞攻击。追问二TLS 1.2 和 TLS 1.3 有什么区别TLS 1.3 移除了不安全的加密算法如 RSA 密钥交换、RC4、SHA-1握手从 2 RTT 减少到 1 RTT支持 0-RTT 恢复安全性更高、速度更快。追问三对称加密和非对称加密有什么区别各自适合什么场景对称加密加解密用同一把密钥速度快适合大量数据加密非对称加密公钥加密私钥解密安全但慢适合密钥交换和数字签名。HTTPS 混合使用两者。追问四什么是 CA 证书浏览器如何验证证书的合法性CA 证书是由证书颁发机构签发的数字证书。浏览器验证检查证书是否过期、域名是否匹配、签名是否有效、颁发 CA 是否在信任列表中逐级验证直到根证书。常见面试变体变体一为什么 HTTPS 比 HTTP 安全请详细说明。变体二请解释 HTTPS 的握手过程。变体三HTTPS 用到了哪些加密算法为什么这样设计变体四什么是数字证书CA 的作用是什么记忆口诀HTTP 三宗罪窃听明文、篡改无校验、冒充无认证。HTTPS 三层防加密对称、校验HMAC、认证证书。混合加密非对称传密钥安全对称传数据快速。一句话总结HTTPS HTTP SSL/TLS用证书认证身份用非对称加密交换密钥用对称加密传输数据。总结HTTPS 通过SSL/TLS 协议在 TCP 之上构建了安全层用数字证书解决身份认证用非对称加密安全交换密钥用对称加密高效传输数据用消息认证码保证数据完整性。现代 HTTPS 在 TLS 1.3 和 HTTP/2 的加持下性能开销已可忽略安全与效率兼得。 欢迎加入小哈的星球你将获得:专属的项目实战多个项目 / 1v1 提问 /Java 学习路线 /学习打卡 / 每月赠书 / 社群讨论新项目《Spring AI 项目实战》正在更新中..., 基于 Spring AI Spring Boot 3.x JDK 21;《从零手撸仿小红书微服务架构》 已完结基于 Spring Cloud Alibaba Spring Boot 3.x JDK 17..., 点击查看项目介绍演示地址http://116.62.199.48:7070/《从零手撸前后端分离博客项目全栈开发》2期已完结,演示链接http://116.62.199.48/;专栏阅读地址https://www.quanxiaoha.com/column截止目前累计输出 100w 字讲解图 4013 张还在持续爆肝中..后续还会上新更多项目目标是将 Java 领域典型的项目都整一波如秒杀系统, 在线商城, IM 即时通讯Spring Cloud Alibaba 等等戳我加入学习解锁全部项目已有4200小伙伴加入1. 我的私密学习小圈子从0到1手撸企业实战项目~ 2. 今天被问懵了加密后的数据如何进行模糊查询 3. 面试官TCP 是怎么保证可靠传输的 4. Spring 7.0.4 杀疯了40 个新特性、15 个 Bug 修复、1 个死锁终结最近面试BAT整理一份面试资料《Java面试BATJ通关手册》覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。 获取方式点“在看”关注公众号并回复 Java 领取更多内容陆续奉上。PS因公众号平台更改了推送规则如果不想错过内容记得读完点一下“在看”加个“星标”这样每次新文章推送才会第一时间出现在你的订阅列表里。 点“在看”支持小哈呀谢谢啦

相关新闻