区别
1. 后退按钮/刷新
- get 请求: 无害, 原本在该页面输入的数据都还在.
- post 请求: 数据会被重新提交, 刷新之前输入的数据不在了.
2. 书签
- get 请求: 可收藏为书签
- post 请求: 不可收藏为书签
3. 缓存
- get 请求: 能被缓存
- post 请求: 不能缓存
4. 编码类型
- get 请求: application/x-www-form-urlencoded
- post 请求: application/x-www-form-urlencoded 或 multipart/form-data 类型
5. 历史
- get 请求: 参数保留在浏览器中
- post 请求: 参数不保存在浏览器中
6. 数据长度限制
- get 请求: URL 最大长度 2048 个字符
- post 请求: 无限制
7. 数据格式限制
- get 请求: 只允许 ASCII 字符
- post 请求: 没有限制, 也可以二进制字符.
8. 安全性
- get 请求: 与 post 请求相比, get 请求的安全性差, 因为所发送的速配数据是 URL 的一部分
- post 请求: post 请求方式 比 get 更安全, 因为参数不会保存在浏览器历史中或 web 服务器日志中
eg:
这是一个 get 请求, 问号(?)之后的是它的参数, 采用键值对的方式, 中间用 & 连接
username = a
password= 1
我们直接就可以看到它的参数值, 用户名和密码都可以在地址栏看到
9. 可见性
- get 请求: 数据在 URL 中, 对所有人可见
- post 请求: 数据不会显示在 URL 中