首页 > 解决方案 > RESTful Web 服务中的 GET、POST 和 PUT 有什么区别

问题描述

一位面试官问我这样的回答

GET 请求可以被缓存 GET 请求保留在浏览器历史中 GET 请求可以被添加书签 GET 请求不应该在处理敏感数据时使用 GET 请求有长度限制 GET 请求只用于请求数据(不能修改)

POST 请求永远不会被缓存 POST 请求不会保留在浏览器历史记录中 POST 请求不能被添加书签 POST 请求对数据长度没有限制

POST 和 PUT 的区别在于 PUT 请求是幂等的。也就是说,多次调用同一个 PUT 请求总是会产生相同的结果。相反,重复调用 POST 请求会产生多次创建相同资源的副作用。

但是最后他没有接受我的回答。并说我不接受 HTTP 方法。他需要这个方法的restful方法定义。

所以我的问题是它与 HTTP 方法和 Rest 方法有何不同???

标签: restweb-services

解决方案


但是最后他没有接受我的回答。并说我不接受 HTTP 方法。他需要这个方法的restful方法定义。

你的面试官可能正在寻找类似于Rails 路由约定的东西:

GET 用于获取项目或集合

POST 用于在集合中创建新项目

PUT 用于更新项目

对我来说,这听起来像是你的面试官实际上并不了解 REST。不幸的是,当你想赢得工作时,以与面试官不同的方式理解问题并不是一个有用的地方。

它与 HTTP 方法和 Rest 方法有何不同?

如果我们要非常小心和精确,我们会说 REST 没有方法。REST 是一种架构风格;HTTP 是使用这种风格设计的应用程序协议。

REST 表示将有自包含的请求消息,并且这些接口的语义将被所有资源统一理解。

HTTP 表示方法标记是请求语义的主要来源,并定义了 GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE 的语义。它还定义了一个可以引入新方法标记(例如:PATCH)的过程。


推荐阅读