【问题标题】:REST: HTTP headers or request parametersREST:HTTP 标头或请求参数
【发布时间】:2011-12-18 04:37:41
【问题描述】:

我一直在围绕 REST 进行一些研究。我注意到Amazon S3 API 主要使用 http 标头作为其 REST 接口。这让我很惊讶,因为我认为该接口主要是根据请求参数工作的。

我的问题是:我应该主要使用 http 标头开发我的 REST 接口,还是应该使用请求参数?

【问题讨论】:

    标签: http rest http-headers httprequest


    【解决方案1】:

    问题主要是定义的参数是否是资源标识符(URI)的一部分。如果是,那么您将使用请求参数,否则使用HTTP自定义标头。例如,在音乐库中传递 album 的 id 必须是 URI 的一部分。

    记住,例如/employee/id/45(或/employee?id=45,REST 没有偏见反对 查询字符串参数或for 纯斜杠分隔的URI)标识一个资源.现在您可以通过发送请求标头content-type: text/plaincontent-type: image/jpg 来使用内容协商来获取信息或图像。在这方面,资源被认为是相同的,并且header仅用于定义资源的格式。

    一般来说,我不是 HTTP 自定义标头的忠实粉丝。 这通常假定客户端事先了解服务器实现(无法通过自然 HTTP 手段,即超媒体发现),这始终被视为 REST 反模式

    HTTP 标头通常定义 HTTP 的各个方面正交,以在请求/响应过程中实现。 Authorization header(真的是用词不当,应该是认证)就是一个经典的例子。

    【讨论】:

    • 这是一个深思熟虑且写得很好的回复。
    猜你喜欢
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    相关资源
    最近更新 更多