代码之家  ›  专栏  ›  技术社区  ›  Elijah66

浏览器在响应重定向时会忽略位置标头的大小写敏感度吗?

  •  1
  • Elijah66  · 技术社区  · 15 年前

    http://site.com/?q=abc

    得到一个 301 将响应重定向到位置 http://site.com/?q=ABC (注意查询字符串的情况)

    浏览器是否可以在case中忽略差异并重新请求 http://site.com/?q=abc ,从而导致无限重定向循环?

    Internet Explorer 随着时间的推移 询问工具栏

    我不能发布源代码,但是对于那些想要一些东西的人,这里有一些一般的逻辑:

    Page_Load(object sender, EventArgs e) 
    {
        var q = Request.QueryString["q"];
    
        if (q == "ABC")
        {
            //render page as usual
        }
        else
        {
            Response.RedirectPermanent("[thispage]?q=ABC");
        }
    }
    

    如您所见,如果请求此页时使用 ?q=abc ?q=ABC .

    2 回复  |  直到 15 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    由我发布的代码引起的。我被愚弄了。

    this answer . 事实证明,安装某些版本的Ask.com网站IE上的工具栏将修改用户代理字符串以包含“Ask”,从而导致此“IsCrawler”检查器出现误报。

    因为在这些情况下'IsCrawler'的计算结果为true,所以执行了不同的代码路径,从而导致无限重定向循环。querystring大小写的改变就是这样的结果,而不是像我所问的那样web浏览器忽略位置头。

    因为我都没回答 我的问题 ,如果有人能发布一个权威的答案,说明是否有任何已知的浏览器或场景像我所问的那样运行,我会将其标记为已接受的答案。

        2
  •  0
  •   JustLoren    15 年前

    我希望您已经确定了一些明显的解决方法,例如转发到 ?qq=ABC q qq .

    推荐文章