【发布时间】:2012-03-22 22:35:28
【问题描述】:
我们的系统将用户定向到这种格式的相对路径:
/some_path/?query=string
服务器然后响应所述路径。该 URL 是否违反任何人都知道的 RFC? (我相信RFC 3986 适用。)
具体来说,即使没有指定文件名,之前的路径是否OK,如:
/some_path/file?query=string
【问题讨论】:
我们的系统将用户定向到这种格式的相对路径:
/some_path/?query=string
服务器然后响应所述路径。该 URL 是否违反任何人都知道的 RFC? (我相信RFC 3986 适用。)
具体来说,即使没有指定文件名,之前的路径是否OK,如:
/some_path/file?query=string
【问题讨论】:
您显示的内容可能没问题。这里有更多细节:
您的问题有点含糊 - 您指的是 URL,但从技术上讲,您向我们展示的并不是 URL 或 URI。 URL 或 URI 必须采用以下语法:
scheme://authority/path?query#fragment
eg: http://host.domain.ext/path/to?query=1#anchor1
您似乎返回的是一个 relative-ref 或者(取决于您返回它的位置,例如在 XML 正文中)一个 href
因此,您似乎返回的是一个 relativeURI(根据 RFC 3986)。 RFC 将其显示为:
relativeURI | relative-part [ "?" query ]
relative-part = "//" authority path-abempty
/ path-absolute
/ path-noscheme
/ path-empty
在某些情况下,这很好。
根据HTTP RFC 2616 - 一些标头值可能会返回为relativeURI,例如Content-Location 和Referer,而其他(例如Location)被定义为REQUIRING a absoluteURI。话虽如此,大多数浏览器和其他客户端都会在那里接受 relativeURI。
是的,在您的情况下,没有“文件名”的路径可能很好,并且是有效的 relativeURI(带有添加查询字符串的相对部分)。您可以使用任何有效字符作为路径,如果需要,包括尾部斜杠(尽管这用于表示层次结构,所以要小心)。
【讨论】: