简单的JSON Web服务问题

简单的JSON Web服务问题

问题描述:

我需要持久化客户端状态,并且想知道这种方法会出现什么样的问题。简单的JSON Web服务问题

我想为使用HTTPS和基本身份验证的客户端提供一个URL,他们只需PUT并获取包含JSON的文本Blob。在服务器端,当PUTting在存储它之前查看其语义是否正确时,我可以解析它。

这是什么问题?

您确定要使用PUT而不是POST吗?通常,PUT用于更新数据,POST用于添加新数据。

GET的一个问题是数据可以缓存在客户端。

除此之外 - 我没有看到任何陷阱。

+0

是的,你可以通过在请求结尾附加一个随机数来避免潜在的缓存问题。即:http://www.whatever.com/service.xxx?cacheb=3918373717 – Jason 2010-09-03 19:22:29

+0

或通过指定适当的缓存标题。 – 2010-09-03 19:33:15

+0

我确定我想要PUT,因为它是整个猪的替代品。 – 2010-09-03 19:33:39

是的,PUT也可以用于创建。与POST不同的是,您通常将数据发送到集合的URI,并且服务器确定最终创建的资源的URI(在“201创建”响应的'位置'标题中返回给您)。

但是,如果客户端可以控制资源的URI,那么您可以直接使用PUT直接访问所需的资源URI,而不使用集合的URI。

另一种考虑它的方法是按照惯例,PUT必须是幂等的,而POST不是。这意味着PUT请求发送一次还是更频繁没有区别。结果是一样的:第一次创建新实体时,任何额外的PUT只是更新实体,但是使用相同的数据,所以没有什么变化。

但是,如果您重新发送POST请求(到集合URI),那么您实际上会在集合中创建多个 - 尽管是相同的条目。这也是您的网络浏览器询问您是否要重新提交表单(通常为POST)的原因,因为一次提交与多次提交完全不同。