【问题标题】:Does my URL violate RFC 3986 (or others)我的 URL 是否违反 RFC 3986(或其他)
【发布时间】:2012-03-22 22:35:28
【问题描述】:

我们的系统将用户定向到这种格式的相对路径:

/some_path/?query=string

服务器然后响应所述路径。该 URL 是否违反任何人都知道的 RFC? (我相信RFC 3986 适用。)

具体来说,即使没有指定文件名,之前的路径是否OK,如:

/some_path/file?query=string

【问题讨论】:

    标签: http url path rfc


    【解决方案1】:

    您显示的内容可能没问题。这里有更多细节:

    您的问题有点含糊 - 您指的是 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(带有添加查询字符串的相对部分)。您可以使用任何有效字符作为路径,如果需要,包括尾部斜杠(尽管这用于表示层次结构,所以要小心)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-31
    • 2019-09-27
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2018-01-01
    • 2010-10-25
    相关资源
    最近更新 更多