总结:GET与POST请求方法有什么区别

        发现很多前端小伙伴的简历当中都写有这么一句:了解http协议。其实大可不必,因为http是前端基础中的基础。这就相当于一位厨师的简历中写着:熟练使用炊具。

        既然简历中出现这个知识点,那么紧随而来的便是面试官的提问:get与post方法有什么区别呢?

        大部分面试者都只会从单词字面上回答:get是从服务器获取数据,而post是向服务器传送数据。

        很显然上面的回答是无法让面试官信服的,下面是我对这两种请求方法的一些总结:


        首先get和post都是http请求的方法。而http又是基于TCP/IP的应用层通信协议。所以本质上来说get和post请求是没有区别的,都是TCP链接。他们能做的事情也都是一样的(与服务器进行交互)。换言之:get能做的事,post也可以做,反之亦可!

        http协议提供这两种方法,也是在特定的情况下区分应用:

        1、参数位置:get请求的参数是放在url(query)里面的。而POST请求的参数是放置在请求体(content)里面的。当然post请求也是可以放置在url当中的。

        2、浏览器缓存:get请求可以被浏览器缓存,而post请求不能被缓存。

        3、参数长度:get请求参数由于是在url里面,所以会受到浏览器的长度限制,浏览器的不同长度的数值也不同,比如IE是2083字节。理论上讲,POST是没有大小限制的。因为HTTP协议规范没有进行大小限制。

        4、参数安全性:同样是因为get的请求参数放置在url里,所以可见,再加上会被浏览器缓存,所以安全性比较差。post请求的参数是放置在请求体里,且不会被缓存,所以安全性相对就好一些。

        5、浏览器访问:get请求可以通过浏览器直接访问,支持刷新和后退。post请求是不能被浏览器直接访问的,刷新后数据会重新传送。

        6、RESTful架构:在该架构中get扮演获取数据的角色,而post扮演的是添加数据的角色。所以get对数据是无害的,不会对数据资源造成影响。而post使用不当,有可能对原有数据资源造成伤害。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值