欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-03-08 11:23:45
...

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中get和post的区别是什么?的详细内容,更多请关注其它相关文章!

相关标签: php get post