get和post的区别

get和post是http协议最常用的两种请求方式,他们之间有哪些区别呢?

 

▍区别

1、通常GET把参数包含在URL中,POST通过request body传递参数;

其实,GET请求也可以在request body存放数据,POST也可以在URL中放置数据,但是对于这种不符合HTTP行为准则的情况,服务器一般会无视那些被“非法”传递的数据。

 

2、GET在浏览器回退时是无害的,而POST会再次提交请求;

 

3、GET产生的URL地址可以被Bookmark(添加到书签),而POST不可以;

 

4、GET请求会被浏览器主动cache,而POST不会,除非手动设置;

 

5、GET请求只能进行url编码,而POST支持多种编码方式;

URL编码:对汉字以及特殊字符进行带有%的十六进制编码。

 

6、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留;

 

7、GET请求在URL中传送的参数是有长度限制的,而POST没有;

首先,GET、POST请求本身都没有对长度做限制。之所以会产生限制,是因为浏览器和服务器为了效率和安全而设置的限制。

 

8、对参数的数据类型,GET只接受ASCII字符,而POST没有限制;

 

9、GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息;

POST请求也不是绝对安全的,只不过它比GET请求更安全一些。

 

10、GET产生一个TCP数据包;POST产生两个TCP数据包。

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)(Firefox会一次性发送)

 

▍总结

GET和POST根本上的区别只有一点:GET用于获取数据;POST用于修改数据。

PUT:增加

DELETE:删除

POST:修改

GET:查询

 

GET效率比POST效率高!

 

▍参考文章

99%都理解错了GET和POST的区别 - 博客园

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值