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中get和post的区别是什么?的详细内容,更多请关注其它相关文章!
上一篇: PHP XML和数组互相转换详解
下一篇: PHP XML和数组互相转换实例详解
推荐阅读
-
php中$_GET与$_POST过滤sql注入的方法
-
vue 2.x 中axios 封装的get 和post方法
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
-
PHP中__get()和__set()的用法实例详解
-
PHP循环获取GET和POST值的代码
-
php中require和require_once的区别说明
-
详解PHP中strlen和mb_strlen函数的区别
-
PHP中array_merge和array相加的区别分析
-
PHP的curl实现get,post和cookie(实例介绍)
-
PHP中删除变量时unset()和null的区别分析