在当前的 HTTP 规范中,不会以任何方式将 URL 片段(包括并跟随 的 URL 部分#
)发送到服务器。然而,随着 AJAX 的普及,它使用片段来维护某种形式的状态,在很多情况下,服务器在请求时了解 URL 片段是有用的。
例如,如果您访问http://facebook.com,然后单击流中的用户名,则 URL 将变为http://faceboook.com/#!/username - 允许 FB 更新您的页面而无需重新加载它所有的引导 JS 和 HTML。但是,如果您使用浏览器重新加载此内容,服务器将无法看到 URL 的“#/!username”部分,因此无法为您预呈现内容。一旦客户端 Javascript 加载并解析了片段,这将强制您的浏览器发出额外的请求。
我想知道是否有任何努力或建议来创建一个标准机制来实现这一点。
例如,可能有一个标准的 HTTP 标头,它将与 URL 片段的值一起发送 - 任何关心此类内容的服务器都可以访问它。
看起来这对于整个 Web 应用程序社区来说是一件非常有用的事情,所以我很惊讶没有听到任何提议。也许我错过了它。