我们在我的公司有一个快捷服务,它基本上提供了将短别名重定向到完整 URL 的功能。服务器运行一个简单的 http 重定向 ( 302 ) 服务,该服务使用主机请求标头对基于文件系统的数据存储进行查找。
我有一个 Resful Web Applciation 并且所有GET请求都可以正常工作,但是POST/PUT请求没有到达服务器。
302“重定向”是否默认保留原始请求的方法,或者它被 GET 类型覆盖?
我们在我的公司有一个快捷服务,它基本上提供了将短别名重定向到完整 URL 的功能。服务器运行一个简单的 http 重定向 ( 302 ) 服务,该服务使用主机请求标头对基于文件系统的数据存储进行查找。
我有一个 Resful Web Applciation 并且所有GET请求都可以正常工作,但是POST/PUT请求没有到达服务器。
302“重定向”是否默认保留原始请求的方法,或者它被 GET 类型覆盖?
302一般是按照303的规定来实现的。为了保持原来的方法,改用307。
另请参阅HTTP 状态代码定义的302部分:
注意:RFC 1945 和 RFC 2068 指定不允许客户端更改重定向请求的方法。然而,大多数现有的用户代理实现将 302 视为 303 响应,无论原始请求方法如何,都对 Location 字段值执行 GET。状态码 303 和 307 已被添加用于希望明确明确期望客户端做出何种反应的服务器。
对于 302,POST 总是重写为 GET。有时还有其他方法(取决于浏览器的损坏程度,请参阅http://greenbytes.de/tech/tc/httpredirects/)。