计算机网络:Get和Post的区别


GET和POST的区别都有哪些呢?在网上搜了好多,但总是云里雾里的,所以自己也总结一下,其中看到一篇博客下的评论,觉得写的很简练,就贴过来:
计算机网络:Get和Post的区别
++++++++++自己再来罗嗦的总结一波+++++++++++++++++++++++++++
计算机网络:Get和Post的区别

1.GET和POST都是HTTP的请求方法,而HTTP又是基于TCP/IP实现的,所以GET和POST都属于TCP连接,那为啥还要进行区分呢,直接用TCP进行传输不好吗?为什么还要又HTTP呢?
2.如果直接用TCP进行数据传输,那么无论是单纯的获取资源还是修改服务器资源的请求,在外界开来都是TCP连接,不利于进行管理。所以HTTP也就诞生了。HTTP就是TCP进行传输数据的一个规则,这个规则里规定了GET\POST\PUT\DELETE等请求方法,这些方法都得各司其职,才能维护一定的做事条理
3.下边就来说说它们的区别吧:

(1)表现形式:
GET将请求参数附在URL之后,即请求行中;
POST将请求参数放在请求体中
(2)安全性:
信息修改:
GET更安全,因为GET只是获取数据,并不参与修改数据;
POST可能会修改服务器上的资源请求,比如对文章点赞,就是提交一次请求,它改变了服务器中的数据(点赞数)
信息保护:
GET不安全,因为GET将用户提供的数据明晃晃的晾在URL中,我们可以很容易看到。而且GET会被浏览器主动缓存,可以通过历史记录就能查看到请求数据;
POST相对能安全一点,因为至少还悄咪咪的藏在了请求体中,但其实通过抓包还是能轻易获取到请求数据
幂等性:
GET符合幂等性,因为只要URL相同,我们就能获取到同样的结果。但实际过程并非那么严格,例如新闻应用中,新闻站点的头版不断更新,虽然第二次请求返回的不是同一批新闻,但仍然是安全幂等的,因为总是返回当前新闻.
POST不符合幂等性
(3)浏览器缓存:
GET是会被浏览器主动缓存的,如果下次传输的数据相同,就会返回缓存中的内容,更快的展示数据;
POST不能自动缓存,但可以手动设置
(4)编码方式:
URL编码方式是ASII,所以当URL中包含非ASII字符时,需要先编码再传输;
POST是支持多种编码的,不需要进行重新编码
(5)长度限制:
GET: HTTP协议其实并没有规定GET请求的长度,这个长度限制是由浏览器和Web服务器所决定的,并且各个浏览器对长度的限制各不相同。大多数浏览器限制URL长度为2k个字节,大多数服务器最多处理64K大小的URL,因此也不适合传输大量数据集;
POST: POST的请求数据不是通过URL传输所以数据长度相对来讲是没有限制的,但还是有的,这取决于服务器的配置
(7)发送数据包:
GET方法产生一个数据包,浏览器会把请求头和请求数据一起发送出去,服务器收到后会响应状态码200(OK)
POST方法会产生两个TCP数据包,浏览器会先将请求头发送给服务器,服务器收到后响应100(continue),浏览器再发送请求数据,服务器响应200。
虽然看起来GET比POST快,但实际上网络良好的情况下,它们传输速度基本相当,网络差得时候,两次TCP包在验证数据完整性上有优势,而且 并不是所有POST中都发送两次包,Firefox就一次

来源:https://blog.51cto.com/14234228/2507573


码神部落- 版权声明 1、本主题所有言论和图片纯属会员个人意见,与码神部落立场无关。
2、本站所有主题由该帖子作者发表,该帖子作者爷依然萧洒码神部落享有帖子相关版权。
3、码神部落管理员和版主有权不事先通知发贴者而删除本文。
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者爷依然萧洒码神部落的同意。
5、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任。
6、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
7、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。

最新回复 (0)
    • 码神部落
      2
        立即登录 立即注册 GitHub登录
返回
发新帖
作者最近主题: