每个目录查询字符串的URL

时间:2011-04-22 23:58:29

标签: url directory query-string

我正在构建一个基于分层模块化设计的Web框架。我有组件和组件扩展其他组件。

要访问这些组件,我正在寻找URL中的一个很好的语法。当我使用 Node.js 时,我对现有的Web服务器软件没有任何限制。组件只是JavaScript中的结构化对象,可以通过管道连接在一起。

我使用的URL方案是:

/componentA/componentBextendsA/componentCextendsB

现在,我想给每个组件它自己的参数。直觉上我想用基于目录的查询字符串来完成这个,比如:

/componentA?foo=bar&hello=world/componentB?foo=test/componentC?pie=
  • componentA
    • foo = bar
    • hello = world
  • 以componentB
    • foo = test
  • componentC
    • pie =空

参数可以重叠,因为一个组件可以处理与另一个组件相同的查询参数。

我的问题是:

  • 客户可以因此而破产吗?
  • 是否已存在目录查询字符串的实现?

2 个答案:

答案 0 :(得分:1)

从URI组件的角度来看,URI /componentA?foo=bar&hello=world/componentB?foo=test/componentC?pie=由路径/componentA和查询foo=bar&hello=world/componentB?foo=test/componentC?pie=组成。在查询组件中,/?都是有效的普通字符。因此,客户端应该正确处理此URI。

如果要按照描述的方式解析此URI,可以执行以下操作:

var url = "/componentA?foo=bar&hello=world/componentB?foo=test/componentC?pie=";
var re = /([^?]+)(?:\?([^?\/]*))/g, match, components = [];
while (match = re.exec(url)) {
    components.push({path: match[1], query: match[2]});
}

答案 1 :(得分:0)

我认为这不是一个好主意。目前的趋势是简化网址,清晰度和SEO。我不知道这是否真的有效,但是?var=value格式的pasing参数已被弃用。我开发了自己的php框架,如果你给我更多信息,也许我可以提供一些想法。 (抱歉我的英文)