- 什么是 GET 请求方法 ?
GET 方法应该只用于读取数据。
浏览器直接发出 GET 只能由一个 url 触发,要在 url 之外带参数只能在 url 上带 querystring。
- 什么是 POST 请求方法 ?
POST 方法是向指定资源提交数据,请求服务器创建或修改资源(如:提交表单和上传文件)。
表单的数据会被浏览器编码到 HTTP 请求中的 body 中,body 体中主要有以下两种格式。
1、application/x-www-form-urlencoded:传输简单的数据,"key1=value1&key2=value2"。
2、multipart/form-data:传文件,相对第一种编码方式处理文件这种二进制的数据更高效。
不是幂等,不能保证每次调用都能得到相同的结果。
幂等属性:GET、HEAD、PUT 和 DELETE
HTML 标准对 HTTP 协议的用法的约定中要求,GET 把参数放在 URL 中传递,POST 将数据放在请求体中。
区别 | GET | POST |
---|---|---|
页面后退或刷新 | 无变化(因为有缓存数据) | 数据需要重新提交 |
存为书签 | ture | 表单数据会丢失,需要重新提交 |
请求缓存 | 浏览器主动缓存 | 需要手动设置 |
保存在浏览器历史记录 | ture | false |
编码类型 | application/x-www-from-urlencoded | application/x-www-from-urlencoded 或 multipart/form-data(处理文件更高效) |
数据长度限制 | 浏览器有长度字符限制 | false |
数据类型限制 | ASCII 字符 | 无限制,也允许二进制数据 |
安全性(都不安全,因为HTTP是明文传输) | 相比较差,可以在 url 看到参数 | 参数在 Request Body 主体中,不会保存在浏览器历史或 web 服务器日记中 |
用处 | 常用于获取数据 | 常用于提交数据 |