在日常的 Web 开发与网络浏览中,HTTP 和 HTTPS 是我们最常打交道的两个协议。但你真的了解它们背后的工作原理吗?为什么 HTTP 请求会返回 404?HTTPS 又是如何保证我们数据安全的?
本文将以网络原理为主线,从 HTTP 的基础概念讲起,逐步深入 HTTPS 的加密与安全机制,带你彻底搞懂这两个核心协议。
HTTP 基础——互联网世界的“快递员”
1.HTTP是什么

HTTP(HyperText Transfer Protocol,超文本传输协议)是用于在 Web 浏览器和 Web 服务器之间传输超文本数据的协议。它不仅支持传输文本,还能传输图片、视频、JSON 等各种数据格式。
2. 理解“应用层协议”
在网络分层模型中,HTTP 属于应用层协议。它直接面向用户(或应用程序),规定了客户端和服务器之间如何进行通信。底层依赖 TCP/IP 协议栈来完成实际的数据路由和传输。HTTP 本身不关心数据在网络中是如何跳转的,它只负责定义数据的格式和交互规则
3. HTTP 协议的工作过程

HTTP 采用的是请求-响应(Request-Response)模型:
客户端(如浏览器)与服务器建立 TCP 连接。
客户端发送 HTTP 请求(Request)。
服务器接收并处理请求,返回 HTTP 响应(Response)。
断开或保持连接。HTTP 是无状态协议,每次请求都是独立的。
一个 HTTP 请求主要由三部分组成:
-
请求行:包含请求方法(GET, POST, PUT, DELETE 等)、URL 和 HTTP 版本。
-
请求头 (Headers):包含客户端的附加信息(如浏览器类型、支持的语言、Cookie 等)。
-
请求体 (Body):主要存放提交的数据(通常在 POST 请求中出现)。

通过抓包直观看到HTTP请求响应
4.HTTP 响应详解与状态码
响应同样由状态行、响应报头(Header)和响应正文(Body)组成。其中,状态码(Status Code)是客户端判断请求结果的最直接依据。
常见的状态码总结如下:
- 200 OK:请求成功,一切正常。
- 301 Moved Permanently:永久重定向。资源已被永久移动到新位置,搜索引擎会更新索引。
- 302 Move temporarily:临时重定向。资源只是暂时移动,客户端后续请求仍应使用原 URL。
- 403 Forbidden:服务器拒绝访问。认证通过了,但权限不够。
- 404 Not Found:找不到资源。请求的 URL 在服务器上不存在。
- 405 Method Not Allowed:请求方法不被允许。比如服务器只接受 GET,你却发送了 POST。
- 500 Internal Server Error:服务器内部错误。通常是服务器代码出现了 Bug(如抛出了未捕获的异常)。
- 504 Gateway Timeout:网关超时。服务器作为网关或代理时,未能及时从上游服务器收到响应。
HTTPS 进阶——给 HTTP 穿上“防弹衣”
虽然 HTTP 简单高效,但它的数据是明文传输的。这意味着数据在网络上经过任何一个路由器或节点时,都有可能被查看甚至篡改。
1. HTTPS 是什么?
HTTPS (HyperText Transfer Protocol Secure) 并不是一个全新的协议,它是 HTTP + TLS/SSL。它在 HTTP 和 TCP 之间加入了一个加密层,确保了数据的机密性(防窃听)和完整性(防篡改)。
2. “加密”是什么?
加密就是将“明文”通过特定的算法转换成“密文”的过程。只有拥有解密密钥的人,才能把密文还原成明文。
3. HTTPS 的工作过程(核心逻辑)
HTTPS 的加密过程非常精妙,它巧妙地结合了对称加密和非对称加密。
引入对称加密:对称加密就是同一个密钥既能加密也能解密。它速度极快,适合处理大量数据。但问题是,如何安全地把这个密钥告诉服务器?如果在网络上明文传输密钥,中间人就能截获。
引入非对称加密:非对称加密有“公钥”和“私钥”一对密钥。公钥公开,私钥自己保密。用公钥加密的数据,只有私钥能解。它解决了密钥分发的问题,但速度非常慢。
实际方案(混合加密):HTTPS 采用非对称加密来安全地交换“对称加密的密钥”,等密钥交换完成后,后续所有的数据传输都使用高效的“对称加密”来进行。
4. 中间人攻击与证书机制
中间人攻击(MITM):黑客拦截在客户端和服务器之间。黑客可以伪装成服务器与客户端通信,又伪装成客户端与服务器通信。在非对称加密交换密钥的过程中,黑客可以将服务器发给客户端的公钥,替换成自己的公钥。这样客户端用黑客的公钥加密数据,黑客就能用自己的私钥解密,从而窃取信息。
为了解决这个问题,引入了证书(Certificate)。
-
理解数据签名:证书是由权威机构(CA)颁发的。CA 会用自己(CA)的私钥,对服务器证书的摘要(Hash)进行加密,这就生成了“数字签名”。
-
通过证书解决中间人攻击:浏览器内置了权威 CA 机构的公钥。当客户端拿到服务器证书时,会用 CA 的公钥去验证证书上的签名。如果验证通过,说明这个证书确实是 CA 颁发给这个域名的,公钥没有被篡改。
进阶思考:
-
中间人有没有可能篡改该证书? 不能。因为中间人没有 CA 的私钥,无法伪造合法的数字签名。如果强行修改证书内容,签名验证就会失败,浏览器会立刻警告用户。
-
中间人整个掉包证书? 中间人如果自己伪造一个证书,或者用其他域名的证书来冒充。浏览器会发现:证书上的域名与当前访问的域名不一致,或者颁发机构不受信任(如自己签发的伪造证书),从而直接拦截并报错。
-

总结
-
HTTP 是互联网的基础,简单、无状态,但明文传输不安全。
-
HTTPS 是 HTTP 的安全版本,通过 非对称加密交换密钥 + 对称加密传输数据,结合 数字证书 机制防止中间人攻击,保障了我们现代互联网的安全。
理解这两者的区别与底层原理,不仅能帮助我们更好地排查日常开发中的网络问题(如看懂各种状态码),也是理解 Web 安全的重要基石。
希望这篇博客能帮你理清 HTTP 和 HTTPS 的知识脉络!如果有任何疑问或补充,欢迎在评论区交流探讨。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/h_Maennn/article/details/170050736



