【问题标题】:Why are redirects in servlets required to be absolute?为什么 servlet 中的重定向必须是绝对的?
【发布时间】:2016-03-17 02:46:57
【问题描述】:

谁能告诉我为什么 servlet 中的重定向必须是绝对的?我找到的所有参考资料都告诉我它们必须是绝对的。

来自规范:

sendRedirect 方法将设置适当的标题和内容 body 将客户端重定向到不同的URL。打电话是合法的 此方法具有相对 URL 路径,但是底层容器 必须将相对路径转换为完全限定的URL 传输回客户端。如果给出部分 URL 并且,对于 不管什么原因,都不能转换成有效的URL,那么这个 方法必须抛出一个IllegalArgumentException

【问题讨论】:

    标签: java url servlets redirect absolute


    【解决方案1】:

    Section 14.30 of RFC 2616(HTTP/1.1,自被取代)Location 标头中的强制绝对 URL 用于指示重定向的“位置”。这在最新版本的规范中有所放宽,但 Servlet 规范仍然需要向后兼容的行为。

    【讨论】:

    • 您是否也知道为什么 HTTP 强制执行此操作(安全性?)
    • @RobAu 没有线索。我最好的猜测是,他们想让简单的客户端(如命令行客户端)不必了解如何处理相对 URL。
    猜你喜欢
    • 1970-01-01
    • 2013-11-02
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 2015-04-23
    • 2018-11-24
    相关资源
    最近更新 更多