网络通讯核心|HTTP/HTTPS 协议详解,从基础到安全

0 阅读9分钟

上一篇我们搞懂了域名、DNS、URL 的核心逻辑,解决了 “如何找到服务器上的具体资源” 的问题。但找到资源后,浏览器和服务器之间如何传递数据?比如搜索关键词后,服务器如何将结果返回至浏览器?这就需要依靠应用层的核心通信协议 ——HTTP 和 HTTPS。今天就全面拆解这两个协议,搞懂它们的工作原理、核心特点、区别及安全逻辑。

一、HTTP:浏览器与服务器的 “基础通信语言”

HTTP 全称超文本传输协议,是基于 TCP/IP 模型应用层的无状态协议,也是浏览器与 web 服务器之间最基础的通信规则。其核心作用是:浏览器向服务器发送资源请求,服务器将 HTML、图片、视频等超文本资源传输至浏览器,实现网页内容的展示。

HTTP 的四大核心特点

  1. 无状态服务器不会记录客户端的历史访问状态,每一次请求都是完全独立的。比如第一次访问某网站和第二次访问,服务器不会记住你的任何操作,需通过Cookie、Session补充状态管理,让服务器实现 “记住用户” 的功能(如登录状态保持)。
  2. 基于 TCP 连接HTTP 依赖 TCP 的可靠传输特性,通信前必须通过 TCP 三次握手建立连接,数据传输完成后,通过四次挥手释放连接,确保数据无丢失、按序传输。
  3. 明文传输这是 HTTP 最大的缺点:请求和响应的所有数据均为明文形式,没有任何加密处理。在公共 WiFi、局域网等环境中,数据极易被窃取、篡改,存在严重的安全风险。
  4. 简单高效HTTP 协议的头部格式简洁,请求 / 响应的流程简单,易于实现和解析,能快速完成资源传输,适合普通的网页浏览、资源获取场景。

HTTP 的报文结构:请求与响应的 “数据载体”

HTTP 通信的核心是请求 - 响应模式,所有数据都以 “报文” 的形式传输,分为请求报文(客户端→服务器)和响应报文(服务器→客户端),两者结构相似,均由「起始行 + 头部 + 空行 + 实体主体」四部分组成,空行是分隔头部和实体主体的固定格式,必须存在。

1. HTTP 请求报文:客户端的 “指令单”

请求报文是浏览器向服务器发送的 “资源请求指令”,包含客户端的请求信息、浏览器信息等,GET 请求无实体主体,POST 请求的实体主体存放表单、JSON 等数据简化示例

http

GET /s?wd=网络知识 HTTP/1.1  # 起始行
Host: www.baidu.com            # 头部字段:目标服务器域名
User-Agent: Chrome/114.0.0.0   # 头部字段:客户端浏览器信息
Accept: text/html              # 头部字段:可接收的资源格式
# 空行(固定格式)
# 实体主体(GET请求无,POST请求存放数据)

各部分说明

  • 起始行:核心部分,包含「请求方法 + 请求路径 + HTTP 版本」;
  • 头部字段:键值对形式,传递客户端信息、请求条件(如 Host、User-Agent、Cookie);
  • 实体主体:可选,仅 POST 请求使用,用于存放提交的数据。

两大核心请求方法

  • GET:用于获取资源(如浏览网页、搜索内容),参数直接拼在 URL 后,长度有限制,明文传输,相对不安全;
  • POST:用于提交资源(如登录、注册、提交表单),参数存放在实体主体中,长度无限制,相对安全。

2. HTTP 响应报文:服务器的 “回复单”

响应报文是服务器对客户端请求的 “回复”,包含请求处理结果、服务器信息、返回的资源数据等,实体主体是服务器返回的具体资源(如 HTML 内容、图片二进制数据)。简化示例

http

HTTP/1.1 200 OK        # 起始行
Content-Type: text/html# 头部字段:响应数据格式为HTML
Content-Length: 1024   # 头部字段:响应数据的字节长度
Server: Apache         # 头部字段:服务器的类型
# 空行(固定格式)
<!DOCTYPE html><html><body>网页内容</body></html>  # 实体主体:网页HTML内容

各部分说明

  • 起始行:包含「HTTP 版本 + 状态码 + 状态描述」,状态码是核心,用于表示请求的处理结果;
  • 头部字段:键值对形式,传递服务器信息、响应数据属性(如 Content-Type、Server);
  • 实体主体:服务器返回的具体资源,是浏览器最终展示的内容。

必记的 HTTP 状态码

状态码由 3 位数字组成,代表请求的不同处理结果,日常上网最常见的有:

  • 200 OK:请求成功,服务器正常返回资源(网页能正常打开);
  • 403 Forbidden:请求被拒绝,客户端无访问该资源的权限;
  • 404 Not Found:请求的资源不存在(如 URL 错误、网页被删除);
  • 500 Internal Server Error:服务器内部故障,与客户端无关。

二、HTTPS:HTTP 的 “安全升级版”

由于 HTTP 明文传输的致命缺陷,在涉及账号、密码、支付等敏感信息传输时,数据极易被窃取和篡改,为了解决这一问题,HTTPS 协议应运而生。

HTTPS 全称超文本安全协议,并非全新的协议,而是在 HTTP 和 TCP 之间添加了一层 TLS 加密层(早期为 SSL),通过加密实现请求 / 响应数据的安全传输,是目前互联网中主流的安全通信协议。

HTTPS 的加密核心:对称加密 + 非对称加密结合

HTTPS 的加密并非单一方式,而是结合了对称加密非对称加密的优点,兼顾加密效率传输安全性,两者各司其职,缺一不可。

1. 对称加密:高效的 “数据传输密码”

加密和解密使用同一把密钥,通信双方共享这把密钥:发送方用密钥加密数据,接收方用同一把密钥解密数据。

  • 优点:加密、解密速度快,效率高,适合大量数据的传输;
  • 缺点:密钥需要在网络中传输给对方,极易被窃取,一旦密钥泄露,数据会被直接破解。

2. 非对称加密:安全的 “密钥传递密码”

非对称加密有两把配对的密钥:公钥私钥,公钥可全网公开,私钥由服务器独自保存,绝不泄露。

  • 加密规则:公钥加密的数据,只有对应的私钥能解密;私钥加密的数据,只有对应的公钥能解密;
  • 应用逻辑:服务器生成公钥和私钥,将公钥发送给客户端;客户端用公钥加密数据后发送给服务器,服务器用私钥解密,即使公钥被窃取,也无法破解数据;
  • 缺点:加密、解密速度慢,效率低,不适合大量数据的传输。

3. HTTPS 的加密组合逻辑

HTTPS 结合两种加密方式的核心逻辑:用非对称加密传递对称加密的密钥,用对称加密传输实际的业务数据

  1. 浏览器与服务器建立连接后,通过非对称加密完成 “对称加密密钥” 的安全传递;
  2. 密钥传递完成后,双方使用对称加密进行后续的所有数据传输;
  3. 既保证了密钥的传输安全,又保证了数据的传输效率。

HTTPS 的身份认证核心:CA(证书颁发机构)

光有加密还不够,如何确认 “通信的对方是真正的目标服务器”,而非伪装的钓鱼网站?这就需要CA(数字证书颁发机构) 来实现身份认证,CA 是公认的、权威的 “网络身份证颁发机构”。

CA 的核心作用

  1. 验证服务器的真实身份(如域名归属、企业信息);
  2. 为合法服务器颁发数字证书(包含服务器公钥、身份信息、数字签名);
  3. 自身拥有根证书(浏览器、电脑自带),用于验证下级证书的合法性。

CA 的认证与验签过程(简化版)

步骤 1:服务器申请数字证书
  1. 服务器向 CA 提交自身的身份信息(域名、企业资质)和公钥;
  2. CA 审核通过后,将这些信息整理成信息文件
  3. CA 对信息文件进行哈希运算(不可逆,生成唯一的固定字符串);
  4. CA 用自己的私钥对该字符串加密,生成数字签名
  5. CA 将「信息文件 + 哈希字符串 + 数字签名」打包,生成数字证书,发送给服务器。
步骤 2:客户端验证服务器身份
  1. 浏览器访问服务器时,服务器将数字证书发送给浏览器;
  2. 浏览器用预装的CA 公钥解密数字签名,得到原始的哈希字符串;
  3. 浏览器对证书中的信息文件进行一次哈希运算,得到新的哈希字符串;
  4. 对比两个哈希字符串:一致则服务器身份合法,可安全通信;不一致则为钓鱼网站,浏览器提示 “访问不安全”。

三、HTTP 与 HTTPS 核心区别总结

对比维度HTTPHTTPS
安全性明文传输,无加密,安全风险高基于 TLS 加密,数据密文传输,安全性高
加密层无额外加密层HTTP 与 TCP 之间添加 TLS 加密层
端口号默认 80 端口默认 443 端口
证书无需证书必须向 CA 申请数字证书
速度无加密 / 解密开销,速度更快有加密 / 解密开销,速度略慢于 HTTP
适用场景普通网页浏览、非敏感资源获取登录、支付、金融、电商等敏感信息传输

四、总结:HTTP/HTTPS 核心知识点快速记忆

  1. HTTP 是基础通信协议,无状态、明文传输、基于 TCP,是浏览器与服务器的基础通信语言;
  2. HTTP 报文分为请求和响应,均由「起始行 + 头部 + 空行 + 实体主体」组成,状态码表示请求结果;
  3. HTTPS 是 HTTP 的安全升级版,核心是添加 TLS 加密层,结合对称 / 非对称加密实现安全传输;
  4. CA 是 HTTPS 的身份认证核心,通过数字证书验证服务器身份,防止钓鱼网站;
  5. 日常开发和使用中,涉及敏感信息的场景必须使用 HTTPS,普通场景可使用 HTTP。

至此,网络通讯的核心基础知识点(模型 / 协议→寻址→通信)已全部拆解,从数据的分层传输,到域名的解析寻址,再到浏览器与服务器的加密通信,一套完整的上网逻辑已清晰呈现,搞懂这些,就能真正理解互联网通信的底层原理。