首页 >后端开发 >PHP问题 >php中get和post的区别是什么?

php中get和post的区别是什么?

青灯夜游
青灯夜游原创
2019-10-17 14:04:285427浏览

php中get和post的区别是什么?

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

GET和POST的安全性

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

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

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

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

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

GET和POST的数据大小

GET:特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。Get传输的数据量小,因为受URL长度限制,但效率较高;

POST:由于不是通过URL传值,理论上数据不受限。Post可以传输大量数据,所以上传文件时只能用Post方式;

传输数据字符格式不同

get限制Form表单的数据集的值必须为ASCII字符,不能通过request.setCharacterEncoding("utf-8");设置中文字符,服务器得到的中文字符可能为乱码!

post支持整个字符集ISO10646,可以通过request.setCharacterEncoding("utf-8");正确显示中文字符。

服务器端获取数据方式不同

Get在服务器端$_GET;

Post在服务器端$_POST

GET幂等,POST不幂等

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

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

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

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

更多PHP相关知识,请访问php中文网

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

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