首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

入职国企,写接口用了put和delete,前端说不能用.....

“程序员的日常大戏”又来了。

事情是这样的一位后端兄弟刚入职国企,写了几个接口,用了put和delete,结果前端同事却跳出来说:“兄弟,这俩不能用,改成post吧!

不过人家前端同事是真的在找茬吗?

其实人家真不是故意找事儿,确实在前端开发中很少使用put和delete接口。

为什么我们在和后端对接的时候,很少用PUT和DELETE接口,而是更多地使用POST和GET接口。

首先,我得先和大家解释一下什么是HTTP请求方法。

HTTP请求方法有很多种,常见的有GET、POST、PUT、DELETE、PATCH等。这些方法其实就像我们平常在快递公司寄包裹时选择的服务类型:快递、普通包裹、EMS等等,每种服务类型都有自己的用途和特点。

GET和POST:GET和POST是我们前端开发中最常见的两个HTTP请求方法。它们在前端开发中也必不可少。

GET方法

GET方法主要用于向服务器请求数据。比如,你想查看某个网页内容,浏览器就会发起一个GET请求,把你请求的内容下载到本地展示出来。

GET请求的特点是“只读”,不对服务器上的资源产生任何影响。这就像我们去图书馆查资料,只是在那儿读书,不带走也不更改任何书籍内容。

POST方法

POST方法则用于向服务器提交数据。假如我们需要在网站上填写一个表单,比如注册账户、提交订单等,就需要用到POST请求。POST请求的特点是“可写”,可以在服务器上创建新的资源或对现有资源进行修改。

就好比我们去邮局寄信,把信件交给邮局,邮局会根据信件内容进行处理和投递。

PUT和DELETE:为什么不常用?

既然GET和POST这么常用,那PUT和DELETE是干嘛的呢?

PUT方法用于更新资源,而DELETE方法则用于删除资源。听起来也很有用,为什么在前端开发中很少用到它们呢?

PUT方法

PUT方法可以说是“更新大王”。当我们需要更新服务器上的资源时,比如修改用户信息、更新文章内容等,就需要用到PUT请求。

然而,PUT请求有个特点:它通常要求客户端发送完整的资源信息。举个例子,如果我们需要更新用户的邮箱地址,可能需要把整个用户信息(包括用户名、密码、地址等)都发送给服务器。

这样做虽然看起来很规范,但在实际开发中并不总是方便。

首先,前端开发需要额外处理更多的数据,这无形中增加了代码的复杂性和工作量。

其次,PUT请求通常被认为是幂等的,意思是无论你发送多少次同样的请求,服务器的资源状态应该是一样的。这对于一些需要部分更新的操作来说,未免有些不太灵活。

DELETE方法

DELETE方法则用于删除服务器上的资源。比如,你要删除一个账户、移除一篇文章,就可以使用DELETE请求。但是DELETE请求也有它的问题。

首先,DELETE请求不安全。很多浏览器和防火墙会对DELETE请求进行严格限制,防止恶意用户通过发送DELETE请求删除不该删除的数据。这就导致我们在前端开发中使用DELETE请求时,往往会遇到种种限制和麻烦。

其次,DELETE请求的可追溯性差。DELETE请求一旦成功,资源就被彻底删除了,这样一来,如果出问题了,很难追溯删除的原因和时间。这对于一些需要审计和数据恢复的场景来说,DELETE请求显然不是最好的选择。

其实我之前在前端开发中也遇到过这种情况。记得有一次,我们团队在开发一个电商平台时,遇到了一个关于接口调用的问题。当时我们需要实现商品信息的更新和删除功能,后端同事建议我们使用PUT和DELETE请求。

然而在实际开发中,我们发现PUT和DELETE请求在一些浏览器中会遇到兼容性问题,导致功能无法正常使用。

于是,我们决定改用POST请求来实现这些操作。

在POST请求中,我们通过增加一个操作类型的参数,来区分是更新还是删除操作。这样一来,不仅解决了兼容性问题,还简化了前端代码的实现。

所以选择合适的HTTP请求方法,不仅可以提高开发效率,还能保证应用的稳定性和兼容性。

总结

HTTP请求方法有很多种,每种方法都有其特定的用途和特点。

在前端开发中,GET和POST请求因为其简单易用、兼容性好、安全性高等优点,成为了我们最常用的请求方法。

而PUT和DELETE请求虽然也很有用,但由于其复杂性和兼容性问题,在实际开发中相对少用。

最后,希望大家在今后的开发中,能够灵活运用这些知识,打造出更加优秀和稳定的应用。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OxjpOP8wUtxutnepa1iY2_9A0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券