区别:1、GET只能发送有限数量的数据,POST没有限制。2、GET发送的数据不受保护,安全性低;而POST的安全性高。3、GET查询的结果可以加入书签中,POST不行。4、GET只接受ASCII字符,POST允许二进制和ASCII字符等。
本教程操作环境: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中文网其他相关文章!