HTTP 和 HTTPS 有什么区别?
2026/9/5 8:00:24 网站建设 项目流程

HTTP 和 HTTPS 的区别(面试Markdown)

HTTPS = HTTP + TLS/SSL,在HTTP和TCP中间增加一层TLS加密。

核心区别

  1. 安全层面(最关键)
  • HTTP:明文传输,数据裸奔。抓包可以直接看到请求参数、响应内容,容易被窃听、篡改、中间人攻击。
  • HTTPS:TLS加密传输,传输数据是密文。防止窃听、篡改,校验身份,抵御中间人攻击。
  1. 端口不同
  • HTTP:默认80端口
  • HTTPS:默认443端口
  1. 握手流程不同
  • HTTP:直接TCP三次握手,之后就传输HTTP报文。
  • HTTPS:TCP三次握手完成后,还要进行TLS握手:协商加密套件、交换证书、生成会话密钥,之后才加密传输业务数据。
  1. 性能开销
  • HTTP:握手简单,没有加解密开销。
  • HTTPS:TLS握手多一轮RTT;同时客户端、服务端需要做加解密运算,会消耗少量CPU;现在会话复用可以降低握手开销。
  1. 证书
  • HTTP:不需要证书。
  • HTTPS:需要CA颁发的数字证书,用来证明服务器身份,防止伪装服务器。
  1. 浏览器标识
  • HTTP:地址栏不安全警告。
  • HTTPS:小锁标识。

TLS握手简单流程(面试简要)

  1. 客户端发送支持的加密套件
  2. 服务端返回证书、选定加密套件
  3. 客户端校验证书合法性
  4. 双方协商生成会话密钥
  5. 后续所有HTTP报文使用会话密钥对称加密传输

小知识点:非对称加密只用来协商密钥;真正业务数据用对称加密传输,非对称加密运算慢,不会用来加密大报文。

常见面试追问

Q:HTTPS能完全保证安全吗?

不能。

  1. 如果证书被盗、使用自签名证书、证书被伪造,中间人攻击依然有可能发生。
  2. HTTPS只保证传输过程加密;业务本身逻辑漏洞(SQL注入、XSS)它管不了

Q:HTTPS防什么?不防什么?

✅防:传输窃听、报文篡改、中间人伪装服务器
❌不防:业务漏洞、客户端本身泄露数据、钓鱼网站骗取用户主动输入信息。

口述面试版

HTTP是明文协议,端口80,传输的数据可以被抓包窃听篡改;HTTPS就是HTTP加上TLS加密层,端口443。
HTTPS需要数字证书校验服务器身份,通过非对称加密协商密钥,业务数据使用对称加密传输。
代价是多一次TLS握手,有少量CPU加解密开销。
要注意HTTPS解决传输链路安全,但是无法解决业务代码层面的安全漏洞。

补充:HTTP2 基本都运行在HTTPS之上。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询