HTTP重定向状态代码

时间:2016-06-30 19:06:02

标签: redirect http-status-codes

我有一个ASP.NET网站。用户可以访问我的应用中的网址/合作伙伴/ {partner-id}。当调用该URL时,我会做两件事:

1)我想记录合作伙伴ID和请求它的用户 2)将网址重定向到合作伙伴的网站。

我的问题是,我应该使用哪种HTTP状态代码?我使用301.但是,这引入了我的日志记录代码被跳过的问题。我怀疑它是因为301表示永久重定向。但是,我基本上想要保持中间人,以便我正确记录细节。

我应该使用什么HTTP状态代码?

谢谢!

1 个答案:

答案 0 :(得分:0)

看看这里:

https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

您应该使用302状态代码。有关302重定向的两个有用点:

  

由于重定向有时可能会改变,客户端应该这样做   继续使用Request-URI进行未来请求

这可以通过推断重定向可能是临时的,客户端应该始终检查初始URI而不是将重定向URI作为默认行为,这意味着它们每次都会通过您的日志系统,而不是直接转到重定向后续请求的URI。 302响应还指出:

  

如果由Cache-Control或指示,则此响应仅可缓存   过期标题字段。

默认情况下,301重定向是可缓存的,除非您明确指定,但302除非明确指定,否则不可缓存。 但是,明确添加'不缓存'可能是一个好主意。重定向的标头让客户端知道它不应该被缓存,以防您有一个不遵循默认规范行为的客户端。 stackoverflow中有很多其他答案,这里有一个不错的答案:

How to control web page caching, across all browsers?