HTTP中的POST和GET

问:既然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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容