网站返回302而不是200

时间:2010-08-05 09:31:33

标签: asp.net redirect http-status-code-302

好吧,这个吓坏了我。 我使用Http Header检查工具检查我的网页标题并猜测是什么。 在每个请求中,响应为302而不是200。

domain.con
www.domain.con
http://www.domain.con

所以,我在这里错过了一些东西吗? 我没有以任何方式进行任何重定向。

那么f#$%我的网站重定向到哪里?有安全漏洞吗?

更新:谷歌搜索时发现this one

6 个答案:

答案 0 :(得分:7)

domain.comwww.domain.com不同 - 这是重定向。

答案 1 :(得分:6)

你得到这个是因为.net / IIS将你的www.domain.com或domain.com重定向到www.domain.com/default.aspx,所以你得到一个302的头,然后是200的头。我想这个是设计但非常混乱。

答案 2 :(得分:4)

也许就是这样:

找到302

这是最受欢迎的重定向代码,但也是与标准相矛盾的工业实践的一个例子。 HTTP / 1.0规范(RFC 1945)要求客户端执行临时重定向(原始描述短语是“暂时移动”),但是流行的浏览器实现302具有303 See Other的功能。因此,HTTP / 1.1添加了状态代码303和307来区分这两种行为。但是,大多数Web应用程序和框架仍然使用302状态代码,就好像它是303。

303见其他(自HTTP / 1.1起)

可以使用GET方法在另一个URI下找到对请求的响应。当收到响应PUT时,应该假定服务器已经接收到数据,并且应该使用单独的GET消息发出重定向。

http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

答案 3 :(得分:0)

您可能忘记在网址末尾添加最终斜杠。大多数Web服务器会将您重定向到包含斜杠的“规范”位置。如果包含斜杠,则可能会得到您正在寻找的响应。

答案 4 :(得分:0)

您使用的是表单身份验证吗?和登录页面是一些其他页面,而不是默认页面说auth.aspx?如果是这种情况,那么您将始终获得302代码,页面将被重定向到登录页面。

答案 5 :(得分:0)

在ASP.Net中,我们可以使用Response.Redirect和Server.Transfer进行重定向。 如果我们使用服务器,则传输状态码302永远不会命中&直接命中200。 如果我们使用Response.Redirect,它将作为响应从302传递到200。这不过是往返。