HTTP GET 和 POST 之间的区别

一、什么是 GET 请求方法 ?

GET 方法用于获取指定资源数据,浏览器直接发出 GET 只能由一个 url 触发。字符串数据会以名称/键值格式依附在 Url 后发送请求。

https://www.test.com/index.php?name=Gnahz&age=23

二、什么是 POST 请求方法 ?

POST 方法是向指定资源提交数据,请求服务器创建或修改资源(如:提交表单和上传文件)。

表单的数据会被浏览器编码到 HTTP 请求中的 body 中,body 体中主要有以下两种格式。

  • application/x-www-form-urlencoded:传输简单的数据,“key1=value1&key2=value2”。

  • multipart/form-data:传文件,相对第一种编码方式处理文件这种二进制的数据更高效。

三、幂等

不是幂等,不能保证每次调用都能得到相同的结果。

  • 幂等属性:GET、HEAD、PUT 和 DELETE
  • HTML 标准对 HTTP 协议的用法的约定中要求,GET 把参数放在 Url 中传递,POST 将数据放在请求体中。

四、GET 和 POST 之间的区别

区别GETPOST
页面后退或刷新无变化(因为有缓存数据)服务器通常会警告用户需需要重新提交数据
存为书签能存为书签表单数据会丢失,需要重新提交
请求缓存浏览器主动缓存需要手动设置
保存在浏览器历史记录参数能保存(因为他们是 Url 的一部分)参数不会保存在历史记录
编码类型application/x-www-from-urlencodedapplication/x-www-from-urlencoded 或 multipart/form-data(处理文件更高效)
数据长度限制Url 有长度限制,根据浏览器和 Web 服务器而异,通常限制为 2048 个字符。无限制
数据类型限制只能是 ASCII 字符无限制,也允许二进制数据
安全性(都不安全,因为HTTP是明文传输)相比较差,可以在 Url 看到参数参数在 Request Body 主体中,不会保存在浏览器历史或 Web服务器日记中
用处常用于获取数据常用于提交数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值