REST Web服务的主要缺点

时间:2013-07-25 01:46:41

标签: web-services

我正在阅读一本Javascript书,其中讨论了Web服务,但我发现很难理解以下句子是使用REST(Representational State Transfer)的一个缺点。

  

使用REST的最大缺点之一是某些浏览器   仅支持GET和POST方法,而许多防火墙允许   仅通过GET和POST方法。

我真的不明白这是怎么回事。 英语不是我的第一语言,所以可能只是我发现它很难。

有人可以详细说明这个吗?

4 个答案:

答案 0 :(得分:4)

REST支持PUT和DELETE方法以及GET和POST - 因此,如果您的应用程序应该在浏览器中运行,那么您将受到限制。

约定是使用GET来检索信息,使用POST来创建新对象/实体,使用PUT来更新现有对象/实体,使用DELETE来删除......

答案 1 :(得分:2)

Restful Web服务通常使用Http规范中定义的许多方法。所以,Create方法使用Http Post,Read方法使用Http Get,Update方法使用Http Put,Delete方法使用Http Delete。请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.htmlWhich HTTP methods match up to which CRUD methods?

本书提出的问题是Put和Delete可能无法通过防火墙或某些浏览器使用。我不知道这是否是一个有效的问题。我认为今天的互联网基础设施可以很好地处理这些问题。

上面提到的Crud方法Stack Overflow文章包含一个有用的评论:

  

由于Web浏览器尚不支持PUT和DELETE,因此它是   认为可以通过添加查询字符串参数来“重载POST”   像被POST的URI上的method = PUT或method = DELETE

答案 2 :(得分:1)

这是一个缺点,如果您的应用程序依赖于DELETE或PUT请求,并非每个客户端或网络配置都支持这种情况,这意味着您可能无法部署它(没有解决方法)。

我不确定这是否仍然是一个真正的问题,并且可以通过为无法发出正确的DELETE或PUT的客户端提供一些过滤器重写请求来轻松解决。

答案 3 :(得分:1)

REST Web服务使用HTTP请求方法:POST,GET,DELETE,PUT。 所以这意味着不支持PUT和DELETE HTTP Request方法。这是一个缺点,但有办法通过操纵DTO来解决它。但这意味着您不会遵循完整的REST方法。