我的网址是否违反RFC 3986(或其他)

时间:2012-03-22 22:35:29

标签: http url path rfc

我们的系统会将用户引导至此格式的相对路径:

/some_path/?query=string

然后服务器响应所述路径。该URL是否违反了RFC,任何人都可以告诉? (我相信RFC 3986适用。)

具体来说,前一个路径是OK,即使它没有指定文件名,如:

/some_path/file?query=string

1 个答案:

答案 0 :(得分:2)

你所展示的内容可能还可以。这里有更多细节:

您的问题有点模糊 - 您指的是一个网址,但您向我们展示的内容在技术上并不是网址或URI。 URL或URI必须具有以下语法:

scheme://authority/path?query#fragment
eg: http://host.domain.ext/path/to?query=1#anchor1

您似乎要返回的是 relative-ref 或者可能(取决于您返回的位置,例如在XML正文中) href

所以你似乎要返回的内容(根据RFC 3986)是 relativeURI 。 RFC将其显示为:

relativeURI    | relative-part [ "?" query ] 
relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty    

在某些情况下哪个没问题。

根据HTTP RFC 2616 - 某些标头值可能会返回为 relativeURI ,例如Content-Location和Referer,而其他标头值(如位置)则定义为要求绝对值。话虽如此,大多数浏览器和其他客户端都会在那里接受relativeURI。

是的,你的案例中没有'filename'的路径可能没问题,并且是一个有效的relativeURI(一个带有添加的查询字符串的相对部分)。您可以将任何有效字符作为路径,如果需要,可以包括尾部斜杠(尽管这用于表示层次结构,因此请小心)。