计算机网络——HTTP/IP 协议通俗入门详解
HTTP/IP 协议通俗入门详解
- 一、什么是 HTTP 协议?
- 1. 基本定义
- 2. HTTP 是怎么工作的?
- 二、HTTP 协议的特点
- 三、HTTPS 是什么?它和 HTTP 有啥区别?
- 1. HTTPS 概述
- 2. HTTP vs HTTPS
- 四、HTTP 的通信过程
- 步骤详解:
- 五、常见 HTTP 请求方法
- 六、HTTP 状态码详解
- 七、HTTP 1.0 和 HTTP 1.1 的区别
- 八、HTTPS 建立连接过程详解
- 九、HTTP 会话结束的判断方式
- 十、IP 地址 vs MAC 地址
- 总结
一、什么是 HTTP 协议?
1. 基本定义
HTTP(HyperText Transfer Protocol)超文本传输协议,是一种基于 TCP/IP 协议 的 应用层协议,用于客户端(浏览器)和服务端(Web服务器)之间的数据传输。
HTTP 协议让你能打开网页、下载图片、发送表单请求等。比如你打开百度首页,其实就是浏览器向服务器发起了一个 HTTP 请求,服务器返回了网页代码,你的浏览器再把这些内容显示出来。
2. HTTP 是怎么工作的?
HTTP 是基于 “请求-响应” 模型:
- 浏览器(客户端)发送一个请求;
- Web 服务器收到请求并返回响应;
- 浏览器根据响应展示内容。
二、HTTP 协议的特点
特点 | 说明 |
---|---|
简单快速 | 请求格式简单,处理速度快 |
灵活 | 支持多种数据类型(HTML、图片、JSON等) |
无连接 | 一次请求完成后就断开连接 |
无状态 | 每次请求独立,不记得你是谁(除非用 Cookie、Session) |
默认端口 | HTTP 默认使用 80 端口,HTTPS 默认用 443 端口 |
基于 TCP | 使用可靠的 TCP 三次握手来建立连接 |
支持两种架构 | B/S(浏览器/服务器)、C/S(客户端/服务器) |
三、HTTPS 是什么?它和 HTTP 有啥区别?
1. HTTPS 概述
HTTPS = HTTP + SSL/TLS加密协议
HTTPS 用于保障传输安全性,防止信息被窃取或篡改。
2. HTTP vs HTTPS
比较项 | HTTP | HTTPS |
---|---|---|
是否加密 | ❌ 明文传输 | ✅ 加密传输 |
安全性 | 差 | 高 |
默认端口 | 80 | 443 |
是否需要证书 | 否 | 是(需要 SSL 证书) |
握手过程 | 直接通信 | 多一步 SSL 握手协商密钥 |
性能 | 快 | 稍慢(需要加解密) |
成本 | 低 | 高(证书可能要钱) |
四、HTTP 的通信过程
步骤详解:
-
建立连接
浏览器通过 TCP 协议连接服务器,通常连接的是 80 端口。 -
发送请求
浏览器发出 HTTP 请求报文(包含方法、路径、请求头等)。 -
服务器响应
服务器返回 HTTP 响应报文(包含状态码、内容等)。 -
关闭连接
通信完成后关闭连接(或复用连接)。 -
浏览器解析内容
浏览器根据 HTML、CSS、JS 渲染最终页面。
五、常见 HTTP 请求方法
方法 | 用途 |
---|---|
GET | 获取资源 |
POST | 提交表单或数据 |
PUT | 上传新资源 |
DELETE | 删除资源 |
HEAD | 类似 GET,但不返回内容体 |
OPTIONS | 查询支持的方法 |
六、HTTP 状态码详解
状态码 | 含义 | 示例说明 |
---|---|---|
200 OK | 成功 | 页面正常返回 |
206 Partial Content | 成功返回部分内容 | 用于断点续传 |
301 Moved Permanently | 永久重定向 | 网址永久更改 |
302 Found | 临时重定向 | 短时间跳转到其他页面 |
304 Not Modified | 内容未修改 | 用于缓存判断 |
403 Forbidden | 无权限访问 | 服务器拒绝请求 |
404 Not Found | 页面不存在 | 常见的“找不到页面” |
500 Internal Server Error | 服务器错误 | 服务端崩了 |
503 Service Unavailable | 服务不可用 | 一般是服务器太忙或维护中 |
七、HTTP 1.0 和 HTTP 1.1 的区别
项目 | HTTP 1.0 | HTTP 1.1 |
---|---|---|
默认连接 | 短连接,每次请求都断开 | 长连接,支持 Connection: keep-alive |
Host头支持 | 不支持 | 必须支持(支持虚拟主机) |
缓存机制 | 简单 | 支持更多控制头字段 |
错误状态码 | 少 | 增加了更多状态码如 409、410 |
断点续传 | 不支持,存在浪费带宽 | 支持(通过 Range 头实现) |
管道化请求 | 不支持 | 支持请求流水线(Pipelining) |
八、HTTPS 建立连接过程详解
- 用户在浏览器地址栏输入,浏览器发起 HTTPS 请求;
- 服务器返回 SSL 证书(含公钥);
- 浏览器验证证书是否合法(例如由受信任 CA 签发);
- 浏览器生成随机密钥,并使用公钥加密;
- 服务器使用私钥解密,生成对称密钥;
- 后续数据用这个密钥加密传输(对称加密,效率高)。
graph TDA[浏览器发起 HTTPS 请求(Client Hello)] --> B[服务器返回 SSL 证书(含公钥)]B --> C[浏览器验证证书是否合法]C -->|验证通过| D[浏览器生成随机对称密钥]D --> E[用服务器公钥加密该密钥并发送]E --> F[服务器使用私钥解密获取对称密钥]F --> G[双方拥有相同的对称密钥]G --> H[使用对称密钥进行后续数据加密传输(如登录、支付等)]
九、HTTP 会话结束的判断方式
要判断 HTTP 会话是否结束,最准确的方法是:
观察 TCP 是否进行“四次挥手”:
- 客户端和服务器之间释放 TCP 连接的标准过程;
- 表示一个 HTTP 会话结束(如果未启用长连接)。
十、IP 地址 vs MAC 地址
项目 | IP 地址 | MAC 地址 |
---|---|---|
层级 | 网络层 | 数据链路层 |
作用 | 逻辑地址,确定“你在哪个网络” | 物理地址,确定“你是谁” |
是否唯一 | 可变(动态分配) | 全球唯一(写死在网卡) |
举例 | 192.168.1.100 | 3C:52:82:3A:44:1F |
用途 | 路由寻址 | 局域网通信 |
简单理解:
IP地址像是“邮政编码+门牌号”,MAC地址像是“身份证号”。
总结
- HTTP 是基础网络通信协议,Web 浏览器和服务器都依赖它。
- HTTPS 是加密版 HTTP,更安全,但成本更高。
- HTTP 协议本身简单,但通过状态码、请求头、缓存机制等可以实现强大功能。