问:既然GET请求可以做POST请求的事情,为什么还要区分GET和POST而不只使用一个请求?
收集了一下,GET和POST请求的区别大致有以下:
1.GET 被强制服务器支持
GET 通常用于请求服务器发送某个资源。在HTTP/1.1中,要求服务器实现此方法;POST请求方法起初是用来向服务器输入数据的。在HTTP/1.1中,POST方法是可选被实现的,没有明确规定要求服务器实现2.浏览器对URL的长度有限制,所以GET请求不能代替POST请求发送大量数据
在RFC中并没有对URL的长度进行限制,但是各大浏览器厂家在实现的时候限制了URL的长度,所以让人误认为GET请求的参数是有限制的。其实也有对POST请求体的大小限制的情况。3.对参数的数据类型,GET只接受ASCII字符,而POST没有限制。GET请求只能进行url编码,而POST支持多种编码方式
4.GET请求是不可修改的,是幂等的。多次请求的结果是相同的
5.POST请求相对GET请求是「安全」的
POST请求的请求体同样可以抓包获取到,并不是安全的。只是相对GET直接将参数拼接在url地址中,POST把参数放在请求体中不至于那么明显就被人看到。
参考文章:
1.http://blog.csdn.net/gideal_wang/article/details/4316691
2.https://www.oschina.net/news/77354/http-get-post-different
3.http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
4.https://segmentfault.com/a/1190000004014583