繁体   English   中英

REST:HTTP标头或请求参数

[英]REST: HTTP headers or request parameters

我一直在围绕REST进行一些研究。 我注意到Amazon S3 API主要使用http标头作为其REST接口。 这对我来说是一个惊喜,因为我认为接口主要用于请求参数。

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

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

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

一般来说,我不是HTTP自定义标头的忠实粉丝。 这通常假设客户端具有服务器实现的先验知识(不能通过自然HTTP方式发现,即超媒体),这通常被认为是REST反模式

HTTP标头通常定义与请求/响应过程中要实现的HTTP 正交的HTTP方面。 Authorization标题(真的是用词不当,应该是身份验证)是一个典型的例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM