首页 >后端开发 >PHP问题 >php的GET和POST方法的区别是什么

php的GET和POST方法的区别是什么

青灯夜游
青灯夜游原创
2021-06-07 11:54:574073浏览

区别:1、GET只能发送有限数量的数据,POST没有限制。2、GET发送的数据不受保护,安全性低;而POST的安全性高。3、GET查询的结果可以加入书签中,POST不行。4、GET只接受ASCII字符,POST允许二进制和ASCII字符等。

php的GET和POST方法的区别是什么

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

Get与Post的最主要区别就是Get是通过Url方式传送数据,而Post并不让用户看到传送的具体信息,这个区别决定了两者的用途。Get方式主要用于搜索,而Post方式主要用于向服务器传送用户操作信息。

GET 和 POST 方法的区别:

1、发送的数据数量

在 GET 中,只能发送有限数量的数据,因为数据是在 URL 中发送的。

在 POST 中,可以发送大量的数据,因为数据是在正文主体中发送的。

2、安全性

GET 方法发送的数据不受保护,因为数据在 URL 栏中公开,这增加了漏洞和黑客攻击的风险。

POST 方法发送的数据是安全的,因为数据未在 URL 栏中公开,还可以在其中使用多种编码技术,这使其具有弹性。

  • GET是通过URL方式请求,可以直接看到,明文传输。

  • POST是通过请求header请求,可以开发者工具或者抓包可以看到,同样也是明文的。

  • GET请求会保存在浏览器历史纪录中,还可能会保存在Web的日志中。

get提交,请求的数据会跟在url(统一资源定位)后面,安全性低

post提交,把提交的数据放在http包的包体中,安全性高

3、加入书签中

GET 查询的结果可以加入书签中,因为它以 URL 的形式存在;而 POST 查询的结果无法加入书签中。

4、编码

在表单中使用 GET 方法时,数据类型中只接受 ASCII 字符。

在表单提交时,POST 方法不绑定表单数据类型,并允许二进制和 ASCII 字符。

5、可变大小

GET 方法中的可变大小约为 2000 个字符。

POST 方法最多允许 8 Mb 的可变大小。

6、缓存

GET 方法的数据是可缓存的,而 POST 方法的数据是无法缓存的。

7、主要作用

GET 方法主要用于获取信息。而 POST 方法主要用于更新数据。

8、GET幂等,POST不幂等

幂等是指同一个请求方法执行多次和仅执行一次的效果完全相同。

  • 按照RFC规范,PUT,DELETE和安全方法都是幂等的。虽说是规范,但服务端实现是否幂等是无法确保的。

  • 引入幂等主要是为了处理同一个请求重复发送的情况,比如在请求响应前失去连接,如果方法是幂等的,就可以放心地重发一次请求。这也是浏览器在后退/刷新时遇到POST会给用户提示的原因:POST语义不是幂等的,重复请求可能会带来意想不到的后果。

  • 比如在微博这个场景里,GET的语义会被用在「看看我的Timeline上最新的20条微博」这样的场景,而POST的语义会被用在「发微博、评论、点赞」这样的场景中。

推荐学习:《PHP视频教程

以上是php的GET和POST方法的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn