小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • 网络协议精华文章

    • 网络协议精华文章
    • 1. HTTP 协议面试怎么讲
    • 2. HTTPS 和 HTTP 有什么区别
    • 3. GET 和 POST 区别怎么回答
    • 4. 状态码 200 302 400 401 403 404 500 怎么理解
    • 5. Cookie Session Token 怎么区分
    • 6. TCP 三次握手四次挥手怎么讲
    • 7. 抓包分析接口问题怎么做
    • 8. 网络超时和连接失败怎么排查
    • 9. 接口测试中的请求头和响应头怎么看
    • 10. 网络协议题怎么结合项目回答
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

2. HTTPS 和 HTTP 有什么区别

HTTPS 和 HTTP 的区别,是网络协议面试里非常高频的问题。很多同学只会回答“HTTPS 比 HTTP 安全,因为加密了”,这个回答方向没错,但太浅。测试岗位回答这个问题,要讲清楚它们在接口测试、抓包、证书、登录鉴权、安全测试和问题定位中的实际影响。面试官真正想知道的是:你是否理解 HTTPS 为什么安全,是否知道证书的作用,是否知道为什么抓包 HTTPS 要安装证书,是否能解释接口访问证书错误、混合内容、Token 泄露等问题。

HTTP 是明文传输协议,HTTPS 是在 HTTP 基础上增加 TLS/SSL 加密层后的安全协议。也就是说,HTTPS 本质上仍然是 HTTP 请求和响应,只是在传输过程中通过加密、身份认证和完整性校验保护数据。测试工程师不需要深入每个加密算法,但必须知道 HTTPS 对测试工作有什么影响。

一、HTTP 和 HTTPS 的核心区别

1. 是否加密

HTTP 是明文传输,请求参数、Header、Cookie、响应内容在网络传输中理论上可以被窃听。

HTTPS 会对传输内容加密,即使被抓到网络包,也难以直接看到明文内容。

这对登录、支付、个人信息、订单信息等敏感场景非常重要。

2. 端口不同

HTTP 默认端口是 80。

HTTPS 默认端口是 443。

实际项目中也可能配置其他端口,但默认端口要知道。

3. 是否需要证书

HTTPS 需要服务端配置 SSL/TLS 证书。浏览器会校验证书是否可信、是否过期、域名是否匹配。

如果证书异常,浏览器可能提示“不安全”或拒绝访问。

4. 安全能力不同

HTTPS 主要提供三类安全能力:

  • 加密:防止内容被窃听;
  • 身份认证:确认访问的服务器是真的;
  • 完整性校验:防止传输内容被篡改。

二、HTTPS 为什么更安全

HTTPS 的安全不是只靠“加密”两个字。它主要解决三个问题。

1. 防窃听

HTTP 明文传输,用户名、密码、Token、Cookie 可能在网络中被看到。HTTPS 加密后,传输内容不容易被直接读取。

2. 防伪装

证书用于证明服务器身份。浏览器访问 https://example.com 时,会校验证书是否属于这个域名,避免用户访问到伪造网站。

3. 防篡改

HTTPS 会校验数据完整性,降低中间人篡改请求或响应内容的风险。

测试中,如果登录接口、支付接口、用户隐私接口还使用 HTTP,就存在明显安全风险。

三、HTTPS 证书测试关注点

测试人员不一定配置证书,但要知道证书问题会导致什么现象。

常见证书问题包括:

  • 证书过期;
  • 证书域名不匹配;
  • 使用自签名证书但浏览器不信任;
  • 证书链不完整;
  • 证书配置在错误服务或错误环境;
  • App 证书校验失败。

表现可能是:

  • 浏览器提示连接不安全;
  • 接口请求失败;
  • App 无法访问接口;
  • 抓包只看到 CONNECT,看不到明文;
  • 自动化脚本请求 HTTPS 报证书错误。

四、为什么抓 HTTPS 要安装证书

Charles、Fiddler 抓 HTTPS 时,通常需要安装并信任抓包工具证书。这是因为 HTTPS 内容是加密的,抓包工具要在客户端和服务端之间做解密代理。

如果没有安装证书,抓包工具可能只能看到:

CONNECT api.example.com:443

看不到具体 URL、请求体和响应体。

安装证书并信任后,抓包工具才能解密 HTTPS 流量。但如果 App 做了证书绑定,普通抓包可能仍然失败。

面试可以这样讲:

HTTPS 是加密传输,所以抓包工具如果要查看请求和响应明文,需要安装并信任抓包工具的根证书,让客户端信任这个代理证书。否则只能看到连接,不一定能看到具体内容。

五、HTTPS 在接口测试中的影响

接口测试工具如 Postman、Requests、RestAssured 调用 HTTPS 接口时,可能遇到证书校验问题。

测试环境经常使用自签名证书,如果客户端不信任,就会请求失败。解决方式可能是导入证书,或者在测试脚本中关闭证书校验。但关闭校验只能用于测试环境,不建议用于生产。

测试要关注:

  • 测试环境是否 HTTPS;
  • 证书是否可信;
  • 是否存在证书过期;
  • 自动化脚本是否能正常访问;
  • 是否错误关闭生产证书校验;
  • 敏感接口是否仍使用 HTTP。

六、HTTP 切 HTTPS 常见问题

项目从 HTTP 改为 HTTPS 后,可能出现:

1. 混合内容

HTTPS 页面中加载 HTTP 图片、脚本或接口,浏览器可能阻止。

表现:页面资源加载失败,控制台提示 Mixed Content。

2. 回调地址错误

支付、第三方登录、短信回调等地址如果仍写 HTTP,可能导致回调失败或安全风险。

3. Cookie Secure 属性

如果 Cookie 设置了 Secure,它只能在 HTTPS 下发送。HTTP 环境可能拿不到 Cookie。

4. 证书链问题

某些浏览器或 App 不信任证书,导致部分用户访问失败。

5. 抓包困难

HTTPS 抓包需要安装证书,App 可能有证书绑定。

七、HTTPS 和安全测试

测试敏感业务时,要关注:

  • 登录接口是否使用 HTTPS;
  • 密码是否明文出现在 URL 中;
  • Token 是否通过 HTTPS 传输;
  • Cookie 是否设置 Secure 和 HttpOnly;
  • 是否存在 HTTP 降级访问;
  • 是否有敏感信息在响应中明文返回;
  • 证书是否过期或不可信。

HTTPS 不是万能安全,但它是基础要求。

八、项目场景:登录接口安全性分析

如果登录接口使用 HTTP:

http://api.example.com/login

请求体包含用户名和密码,这就有被窃听风险。测试可以提出安全风险:登录、支付、个人信息等敏感接口应使用 HTTPS。

如果使用 HTTPS,但抓包发现 Token 出现在 URL 查询参数中:

https://api.example.com/user?token=xxx

也不推荐,因为 URL 可能被日志、浏览器历史或网关记录。更常见做法是放在 Header 中。

九、面试回答模板

如果面试官问“HTTPS 和 HTTP 有什么区别”,可以这样回答:

HTTP 是明文传输协议,HTTPS 是在 HTTP 基础上加入 TLS/SSL 加密后的安全协议。HTTPS 相比 HTTP 主要多了加密传输、服务器身份认证和数据完整性校验,所以更适合登录、支付、个人信息等敏感场景。HTTP 默认 80 端口,HTTPS 默认 443 端口。测试中我会关注 HTTPS 证书是否有效、域名是否匹配、是否存在证书过期,抓 HTTPS 包时需要安装并信任 Charles 或 Fiddler 证书。接口测试时也要注意证书校验问题,以及 Cookie Secure、混合内容、回调地址等 HTTPS 切换带来的问题。

十、常见追问

追问:HTTPS 一定安全吗?

不一定。HTTPS 只保证传输层更安全,但如果业务本身有越权、弱密码、Token 泄露、敏感信息返回等问题,仍然不安全。

追问:为什么 HTTPS 抓包要装证书?

因为 HTTPS 是加密的,抓包工具需要作为中间代理解密流量,客户端必须信任抓包工具证书才能看到明文内容。

追问:证书过期会怎样?

浏览器或客户端可能提示不安全,甚至拒绝访问接口,自动化脚本也可能请求失败。

追问:HTTP 切 HTTPS 后要测什么?

测证书、页面资源、接口请求、回调地址、Cookie、抓包、App 访问和自动化脚本兼容性。

十一、练习清单

  1. 区分 HTTP 和 HTTPS;
  2. 记住默认端口 80 和 443;
  3. 理解证书作用;
  4. 用浏览器查看网站证书;
  5. 用 Charles 抓 HTTPS 请求;
  6. 分析一次证书错误;
  7. 检查登录接口是否 HTTPS;
  8. 理解 Cookie Secure;
  9. 理解混合内容问题;
  10. 准备 HTTPS 面试回答。

HTTPS 和 HTTP 的区别,测试回答不能只停留在“加密更安全”。要结合证书、抓包、接口测试、安全测试、Cookie、回调和项目风险一起讲,才是真正有测试思维的回答。

配套刷题:

  • 网络协议测试面试题
相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
1. HTTP 协议面试怎么讲
Next
3. GET 和 POST 区别怎么回答