URL矩阵参数与请求参数

我想知道是否在我的URL中使用矩阵或查询参数。我发现对该主题的旧讨论并不令人满意。


例子


带查询参数的URL:http://some.where/thing?paramA = 1&paramB = 6542

带矩阵参数的URL:http://some.where/thing; paramA = 1; paramB = 6542

乍一看,矩阵参数似乎只有优势:


更具可读性

不需要在XML文档中编码和解码“&”

带“?”的网址 在很多情况下都没有缓存; 具有矩阵参数的URL被缓存

矩阵参数可以出现在路径中的任何位置,并且不限于其末尾

矩阵参数可以有多个值: paramA=val1,val2

但也有缺点:


只有少数像JAX-RS这样的框架支持矩阵参数

当浏览器通过GET提交表单时,params成为查询参数。因此它最终会出现两种相同任务的参数。为了不混淆REST服务的用户并限制服务开发人员的工作量,在这个领域中使用始终查询参数会更容易。

由于服务的开发人员可以选择支持矩阵参数的框架,因此唯一的缺点是浏览器默认创建查询参数。


还有其他缺点吗?你会怎么做?


慕盖茨4494581
浏览 1071回答 3
3回答

杨__羊羊

- 降级评论部分非常重要.--我不确定矩阵URL的重要性。根据TBL写的w3c设计文章,它只是一个设计理念,并明确指出它不是网络的一个特征。使用它时,没有实现相对URL之类的东西。如果你想使用它,那很好; 没有标准的方法可以使用它,因为它不是标准的。 - 史蒂夫波默罗伊如此简短的回答是,如果您出于商业目的需要RS,最好使用请求参数。
打开App,查看更多内容
随时随地看视频慕课网APP