【问题标题】:Website returns 302 instead of 200网站返回 302 而不是 200
【发布时间】:2011-03-25 17:05:58
【问题描述】:

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

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

那么,我在这里遗漏了什么吗? 我没有以任何方式放置任何重定向。

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

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

【问题讨论】:

  • 查看响应中的 Location 标头(如果存在)。
  • 仍然很聪明,您的网络服务器如何将 .con 解析为 .com

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你得到这个是因为 .net/IIS 将你的 www.domain.com 或 domain.com 重定向到 www.domain.com/default.aspx,所以你得到一个 302 的标头,然后是 200 的标头。我认为这是是设计使然,但非常令人困惑。

    【讨论】:

      【解决方案3】:

      您是否使用表单身份验证?登录页面是不是默认页面说auth.aspx的其他页面?如果是这种情况,那么您总是会得到 302 代码,并且页面将被重定向到登录页面。

      【讨论】:

        【解决方案4】:

        也许是这样的一个例子:

        302 找到

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

        303 查看其他(从 HTTP/1.1 起)

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

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

        【讨论】:

          【解决方案5】:

          您可能忘记在 URL 的末尾添加最后一个斜杠。大多数网络服务器会将您重定向到包含斜杠的“规范”位置。如果包含斜线,您可能会得到所需的响应。

          【讨论】:

          • 响应再次为 302。
          【解决方案6】:

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

          【讨论】:

          • 我想我明白了,但两者都不应该返回 200?
          • 重定向会返回 302(重定向),最后一个应该返回 200。
          • 嗯,它应该但它没有。它也返回 302。
          • 您是否使用 fiddler 查看过完整的跟踪信息?第二个重定向要去哪里?
          猜你喜欢
          • 2018-05-28
          • 1970-01-01
          • 2023-04-09
          • 2011-11-09
          • 2023-03-21
          • 2015-05-15
          • 2022-01-07
          • 2016-08-08
          • 2019-01-22
          相关资源
          最近更新 更多