HTTP GET 方法与 POST 方法区别

  • 什么是 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 服务器日记中
用处 常用于获取数据 常用于提交数据

你可能感兴趣的:(HTTP GET 方法与 POST 方法区别)