Java 为什么servlet中的重定向要求是绝对的?
有人能告诉我为什么servlet中的重定向要求是绝对的吗?我找到的所有参考资料都告诉我它们必须是绝对的 根据规范:Java 为什么servlet中的重定向要求是绝对的?,java,url,servlets,redirect,absolute,Java,Url,Servlets,Redirect,Absolute,有人能告诉我为什么servlet中的重定向要求是绝对的吗?我找到的所有参考资料都告诉我它们必须是绝对的 根据规范: sendRedirect方法将设置适当的标题和内容 body将客户端重定向到不同的URL。打电话是合法的 此方法具有相对的URL路径,但是底层容器 必须将相对路径转换为的完全限定的URL 传输回客户端。如果给出了部分URL,并且 无论什么原因,都无法转换为有效的URL,那么 方法必须抛出一个IllegalArgumentException (HTTP/1.1,自被取代后)在位置标题
sendRedirect
方法将设置适当的标题和内容
body将客户端重定向到不同的URL
。打电话是合法的
此方法具有相对的URL
路径,但是底层容器
必须将相对路径转换为的完全限定的URL
传输回客户端。如果给出了部分URL
,并且
无论什么原因,都无法转换为有效的URL
,那么
方法必须抛出一个IllegalArgumentException
(HTTP/1.1,自被取代后)在
位置
标题中强制使用绝对URL,用于指示重定向的“位置”。在规范的最新版本中,这一点已经放松,但Servlet规范仍然需要向后兼容的行为。您还知道HTTP为什么强制执行此(安全性?)@RobAu不知道。我最好的猜测是,他们想让简单的客户端(如命令行客户端)不必了解如何处理相对URL。