教学目标
📖 课前导入
你每天都在用浏览器看网页、看视频、买东西。当你点击一个链接时,背后发生了什么?
答案就是HTTP协议——浏览器和Web服务器之间的"通信语言"。它是互联网上使用最广泛的应用层协议,也是我们理解Web技术的基础。
📚 一、HTTP协议概述
HTTP简介
HTTP(HyperText Transfer Protocol,超文本传输协议)定义了浏览器(客户端)与Web服务器之间请求和响应的格式。基于TCP端口80(HTTPS使用端口443)。
无状态
每次请求独立,服务器不记住之前的请求
请求-响应模型
客户端发请求,服务器返回响应
基于文本
请求和响应头部都是人类可读的文本
📚 二、URL的组成
URL示例拆解:
📚 三、HTTP请求与响应 ⭐核心
HTTP请求格式
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Chrome/120.0
Accept: text/html
Accept-Language: zh-CN
Connection: keep-alive
(空行)
(请求体,GET通常为空)
HTTP响应格式
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 1256
Server: nginx
Date: Mon, 07 Apr 2025 02:49:00 GMT
(空行)
<html><body>网页内容...</body></html>
常用HTTP请求方法
| 方法 | 作用 | 特点 |
|---|---|---|
| GET | 获取资源 | 参数在URL中,可缓存,幂等 |
| POST | 提交数据 | 参数在请求体中,不可缓存 |
| PUT | 更新/替换资源 | 幂等,完整替换 |
| DELETE | 删除资源 | 幂等 |
| HEAD | 获取响应头(不要正文) | 用于检查资源是否存在 |
📚 四、HTTP状态码 ⭐必背
1xx
信息性
请求已接收,继续处理
2xx
成功
请求已成功处理
3xx
重定向
需要进一步操作
4xx
客户端错误
请求有误
5xx
服务器错误
服务器处理失败
| 状态码 | 含义 | 说明 |
|---|---|---|
| 200 | OK | 请求成功,返回所请求的内容 |
| 301 | Moved Permanently | 永久重定向(URL已更改) |
| 302 | Found | 临时重定向 |
| 304 | Not Modified | 资源未修改,使用缓存 |
| 400 | Bad Request | 请求语法错误 |
| 403 | Forbidden | 没有访问权限 |
| 404 | Not Found | 请求的资源不存在 |
| 500 | Internal Server Error | 服务器内部错误 |
| 502 | Bad Gateway | 网关/代理收到无效响应 |
| 503 | Service Unavailable | 服务暂不可用(维护/过载) |
📚 五、HTTPS——加密的HTTP
HTTPS = HTTP + TLS/SSL
HTTPS在HTTP和TCP之间加了一层TLS/SSL加密,提供数据加密、身份认证和完整性保护。使用TCP端口443。
🔐 加密
传输的数据被加密,中间人无法窃听。
🆔 身份认证
通过数字证书验证服务器身份,防止钓鱼网站。
✅ 完整性
数据在传输中不会被篡改。
HTTP vs HTTPS
HTTP(不安全)
数据明文传输,可被窃听和篡改。浏览器地址栏显示"不安全"。
HTTPS(安全)
数据加密传输,浏览器地址栏显示🔒锁图标。
现代网站基本都已使用HTTPS。涉及登录、支付等敏感操作的网站必须使用HTTPS。
HTTP协议抓包分析
使用浏览器开发者工具和Wireshark分析HTTP请求/响应的完整过程,包括请求头、状态码和Cookie
使用浏览器开发者工具和Wireshark分析HTTP请求/响应的完整过程,包括请求头、状态码和Cookie
✅ 课堂小测
随堂测验
第 1/5 题HTTP默认使用哪个端口?HTTPS呢?
📋 本课小结
HTTP:基于TCP的请求-响应协议,端口80,无状态。
请求方法:GET获取、POST提交、PUT更新、DELETE删除。
状态码:2xx成功、3xx重定向、4xx客户端错误、5xx服务器错误。
HTTPS:HTTP + TLS加密,端口443,提供安全的Web通信。