Rest 是否存在只读HTTP响应头?

Rest 是否存在只读HTTP响应头?,rest,http,http-headers,readonly-attribute,Rest,Http,Http Headers,Readonly Attribute,使用REST原则和HTTP头,我想告诉我的客户端我的响应是只读的。我的内容类型是文本/纯文本。我的一些回复是只读的,而另一些则不是只读的,我的客户只有在执行PUT并将其出错后才能分辨出区别,这会造成糟糕的用户体验 是否需要将内容类型设置为text/vnd.read-only或application/octet-string 也许您可以使用statuscode来处理此问题? 我认为没有专门的HTTP报头 尽管如此,我认为有两种可能在您的回复中提供这一提示: 在响应中添加一个自定义标题,告诉最终用

使用REST原则和HTTP头,我想告诉我的客户端我的响应是只读的。我的内容类型是文本/纯文本。我的一些回复是只读的,而另一些则不是只读的,我的客户只有在执行PUT并将其出错后才能分辨出区别,这会造成糟糕的用户体验


是否需要将内容类型设置为text/vnd.read-only或application/octet-string

也许您可以使用statuscode来处理此问题?

我认为没有专门的HTTP报头

尽管如此,我认为有两种可能在您的回复中提供这一提示:

  • 在响应中添加一个自定义标题,告诉最终用户内容是只读的。诸如此类:

    GET http://...
    (...)
    Content-type: application/json
    x-readonly: true
    {
        (...)
    }
    
    GET http://...
    (...)
    Content-type: application/json; readonly=true
    {
        (...)
    }
    
  • 您还可以在标题
    内容类型中添加一个参数
    。有关此标题的格式,请参阅此链接(第9页)。您可以看到,您可以在其中添加参数。这不会破坏REST库和框架对它的处理。所以你可以有这样的东西:

    GET http://...
    (...)
    Content-type: application/json
    x-readonly: true
    {
        (...)
    }
    
    GET http://...
    (...)
    Content-type: application/json; readonly=true
    {
        (...)
    }
    
希望它能帮助你,
Thierry

通常,客户端会向资源发出HTTP选项请求。如果PUT列在“允许”标题中,则可以修改资源


如果存在application/JSON的内容类型响应,那么可以向JSON元数据添加一个字段,将负载标记为只读

作为数据的一部分返回状态。您的内容是什么?如果是JSON(那么不应该使用text/plain)或任何其他对象类型,那么可以在响应中包含一个字段。没有标准的HTTP头。数据是用户贡献的纯文本文档。我可以在我的JSON元数据中添加一个描述文档的字段。您已经回答了您的问题。HTTP选项。向有效负载添加“只读”字段是您必须为您的媒体类型记录的内容。这不是HTTP功能。那是哪一个呢?成功获取的唯一可行方法是200,您不能用它来判断响应是只读的。OP不希望在PUT之后返回4xx,但希望在GET之后传输只读实体的信息,以便客户端知道它根本无法放置该实体。