是否有标题(“位置:/?param = abc”);包含有效参数并与所有浏览器兼容?

Posted

技术标签:

【中文标题】是否有标题(“位置:/?param = abc”);包含有效参数并与所有浏览器兼容?【英文标题】:Does a header("location: /?param=abc"); contain a valid parameter and is compatible with all browsers? 【发布时间】:2012-02-06 16:45:39 【问题描述】:

header("location: /?param=abc"); 是否包含有效参数并与所有浏览器兼容? 或者,文件的 url 是必须的,所以它应该包含文件的路径:

header("location: /index.php?param=abc");

【问题讨论】:

问题不在于文件(这无关紧要),问题在于它缺少协议和主机,正如 hakre 指出的那样。因此,您的两种选择都同样无效(尽管两者都可能在大多数浏览器中工作)。 谢谢。那么标头 ("location: http://".$_SERVER['HTTP_HOST']."/?param=abc") 是否正确? (它在路径中不包含index.php,但它实际上会加载它)...我不希望index.php显示在地址栏中... 不,不是。 URL 必须以 http://https:// 之类的开头...不要被某些浏览器对用户隐藏的事实感到困惑,它仍然需要存在。 对不起,我在大约 6 分钟前在我的评论中添加了 http://。那么,header ("location: http://".$_SERVER['HTTP_HOST']."/?param=abc") 是否正确呢? (URL 中没有 .php 文件) 是的,当然,忘记“文件”。 URL 不关心物理文件。 【参考方案1】:

不,它与所有 HTTP 客户端都不兼容,因为 HTTP 需要 Location 标头的有效 URI(绝对的,而不是相对的)。

有关规范要求,请参阅RFC 2616 14.30 Location。

【讨论】:

HTTP 的下一个修订版将放宽该要求(请参阅trac.tools.ietf.org/wg/httpbis/trac/ticket/185)。在实践中使用这些没有问题。 @JulianReschke:好吧,我并没有说它不起作用,但是如果您针对所有 HTTP 客户端,则应该遵循规范。您提到的规格尚未发布。 hakre - 修订后的规范反映了实践中所做的事情。告诉人们不要使用它是没有意义的。 @Julian Reschke:我们只能针对规范进行测试,这并非毫无意义。我实际上帮助重新发明了***。此外,您所写的实践也改变了 baseURI 和 relativeURI 如何随着时间的推移相互解析。出于互操作性的原因,我认为使用 absoluteURI 并不是一个坏主意。 hakre:我并不是说检查规格毫无意义。当您知道某个特定部分将在几个月后的修订版中发生更改时,坚持检查超过 10 年的规范是没有意义的。【参考方案2】:

根据 RFC 2616,该字段值无效,但根据将于今年发布的 RFC 2616 修订版有效。

是的,客户会处理它。

【讨论】:

以上是关于是否有标题(“位置:/?param = abc”);包含有效参数并与所有浏览器兼容?的主要内容,如果未能解决你的问题,请参考以下文章

是否有可能知道星星是否亮起? (jQuery Raty 插件)

是否有任何解决方法可以避免 SFSafariViewController 隐藏固定位置的标题?

是否有“无回复”电子邮件标题?

是否有更改 plot.svm 硬编码标题的解决方法?

是否有可能发现照片是否被拍摄?

是否有更快的方法来检查是否存在数千个 NSManagedObject 项目?