HTTP中GET、POST以及PUT的区别

POST、DELETE、GET、PUT 类似数据库中的CRUD (增删改查)

使用规则如下:

请求方式URL操作
POST/URL增加
DELETE/URL/xxx删除
PUT/URL/xxx修改
GET/URL/xxx查询

各方法的介绍

  • GET方法:对资源的查操作

  • DELETE方法:对资源的删操作。但要注意:客户端无法保证删除操作一定会被执行,因为HTTP规范允许服务器在不通知客

户端的情况下撤销请求。

  • PUT和POST
  1. PUT和POS都有更改指定URL的语义.但PUT被定义为idempotent方法,POST则不是idempotent方法

如果一个方法重复执行次,产生的效果是一样的,那就是idempotent的。

  1. PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)

​ Post请求:后一个请求不会把第一个请求覆盖掉。(所以POST用来增资源)

  • GET和POST
    1. GET参数通过URL传递,POST放在Request body中。
    2. GET请求会被浏览器主动缓存,而POST不会,除非手动设置。
    3. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
    4. Get 请求中有非 ASCII 字符,会在请求之前进行转码,POST不用,因为POST在Request body中,通过 MIME,也就可以传输非 ASCII 字符。
    5. 一般我们在浏览器输入一个网址访问网站都是GET请求
    6. HTTP的底层是TCP/IP。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的根本。GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。但是请求的数据量太大对浏览器和服务器都是很大负担。所以业界有了不成文规定,(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url。
    7. GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
    8. 在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。但并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

以上内容整理来源如下:

https://blog.csdn.net/u014209205/article/details/81205062

https://blog.csdn.net/qq_36183935/article/details/80570062

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值