本篇载自我的笔记,本次为第二次复习。我觉得我有能力理一下思路了。
--- 笔记截图。
HTML 表单的 enctype(Encode Type,编码类型)属性用于控制表单数据在提交到服务器时的编码方式,不同取值的详细解析如下:
1. enctype="application/x-www-form-urlencoded"(默认值)
2. enctype="multipart/form-data"
3. enctype="text/plain"
enctype 值 | 编码特点 | 典型用途 | 请求方法限制 |
---|---|---|---|
application/x-www-form-urlencoded | 键值对,全面转义 | 普通文本表单(如登录、注册) | 无(GET/POST均可) |
multipart/form-data | 分块传输,支持二进制数据 | 文件上传、含文件的表单 | 必须为POST |
text/plain | 纯文本,仅简单处理空格 | 极少用(简单文本调试) | 无(GET/POST均可) |
理解这些区别后,可根据表单内容(是否含文件、特殊字符等)选择合适的
enctype,确保服务器能正确解析数据。
在 HTTP 协议中,GET 和 POST 是两种常用的请求方法,它们的作用及特点如下:
HTTP 消息结构 | 菜鸟教程 --- 通过这个深入了解报文
直接看菜鸟,你可以获得与众不同的体验。
HTTP 报文是客户端(如浏览器)与服务器之间通信的 数据载体,分为两种:
起始行(First Line) 头部(Headers) 空行(必须有,分隔头部和主体) 主体(Body,可选)
可以类比为一封 “信”:
HTTP版本号 状态码 状态消息
HTTP/1.1 200 OK
Content-Type: application/json // 响应体的格式(如JSON、HTML、图片)
Content-Length: 150 // 响应体的字节长度
Date: Tue, 29 Apr 2025 12:00:00 GMT // 服务器生成响应的时间 Server: Apache/2.4.52
// 服务器软件名称
{
"city": "北京",
"temperature": "25°C"
}
请求报文大体上与响应报文差不多。
部分 | 请求报文 | 响应报文 |
---|---|---|
起始行 | 请求行(Method URL Version) 例:GET /weather?city=北京 HTTP/1.1 | 响应行(Version StatusCode StatusMessage) 例: HTTP/1.1 200 OK |
头部 | 包含客户端信息(如 User-Agent、Cookie) | 包含服务器信息(如 Server、Content-Type) |
主体(Body) | 可选(GET请求没有体, POST请求有体) | 可选(部分状态码没有体,如204) |
通过浏览器开发者工具观察真实的报文,是理解这些概念的最快方式!有了这个基础,后续学习 HTTP 协议会更轻松~
GET 和 POST 方法的核心区别,以及它们在 响应报文 中的关联逻辑。以下是系统化讲解:
一、核心本质:GET 和 POST 是什么?
二、在 请求报文 中的具体区别(重点!)
1. 请求行(第一行)的差异
方法 | 请求行格式 | 示例(以获取 / 提交天气数据为例) |
---|---|---|
GET | GET URL?参数 HTTP版本 | GET /weather?city=北京 HTTP/1.1 (参数在 URL 中) |
POST | POST URL HTTP版本 | POST /submit-weather HTTP/1.1 (参数在请求体中) |
2. 请求体(Body)的存在性
3. 请求头部(Headers)的差异
Content-Type: application/x-www-form-urlencoded // 表单数据(键值对)
Content-Type: application/json // JSON数据
4. 参数的安全性与可见性
5. 幂等性与安全性(HTTP 规范特性)
6. 常见使用场景
GET /weather?city=北京 HTTP/1.1 // 请求行:GET方法,参数在URL
Host: api.weather.com // 头部:指定域名
User-Agent: Mozilla/5.0 (Windows)... // 头部:客户端信息
HTTP/1.1 200 OK // 响应行:成功
Content-Type: application/json // 头部:体是JSON格式
{ // 响应体:天气数据
"city": "北京",
"temp": "25°C"
}
POST /submit-weather HTTP/1.1 // 请求行:POST方法,URL无参数
Host: api.weather.com // 头部:域名
Content-Type: application/json // 头部:声明体是JSON
Content-Length: 50 // 头部:体的长度
{ // 请求体:提交的数据
"city": "上海",
"temp": "28°C"
}
HTTP/1.1 201 Created // 响应行:资源已创建
Location: /weather/123 // 头部:新资源的URL
Content-Type: text/plain // 头部:体是纯文本
提交成功,数据已存储! // 响应体:处理结果
对比项 | GET | POST |
---|---|---|
请求目的 | 获取资源(读操作) | 提交资源(写操作) |
请求行方法 | GET URL?参数 HTTP/版本 | POST URL HTTP/版本 |
请求体 | 无(不允许有 Body) | 有(必须包含提交的数据) |
参数位置 | URL 中(可见,不安全) | 请求体中(相对安全) |
幂等性 | 幂等(多次请求结果一致) | 非幂等(多次请求可能创建多个资源) |
安全性 | 安全(理论上不修改服务器数据) | 不安全(会修改服务器数据) |
常见状态码 | 200 OK (成功获取) | 201 Created (成功创建)或 200 OK |
缓存支持 | 支持缓存 | 通常不缓存 |
典型场景 | 搜索、获取数据、访问网页 | 登录、提交表单、上传文件、创建资源 |
借鉴:
1、我的笔记
2、AI查询
望我能在,每一次复习中,都能发现惊喜