for (int a = 0; a < Request.Headers.Count; a++)
            {
                Response.Write(Request.Headers.Keys[a] + ":" + Request.Headers[Request.Headers.Keys[a]]);
                Response.Write("<br />");
            }
这是第一段
if (HttpContext.Current.Request.Headers["被篡改的Accept-encoding值"] != null && HttpContext.Current.Request.Headers["BCcept-encoding"].Contains("gzip"))
{
   HttpContext.Current.Response.Filter = new GZipStream(HttpContext.Current.Response.Filter, CompressionMode.Compress);
    HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip");
}
这是第二段

解决方案 »

  1.   

    第一段稍微能看懂,就是输出当前页面的HTTP请求报头,不过PHP并没有直接提供访问请求报头的接口,所以代码量有点小大就不写了。
    第二段是对响应内容gzip压缩,其实这个是web服务器的事。我也没用过PHP的zlib扩展所以不会写
      

  2.   

    1、你运行第一段代码,并贴出结果。
    对  Request.Headers 对象不是很了解,应该是传入的头信息。这些信息应该都存放于 $_SERVER 数组中,前缀是 HTTP_2、第二段是检查客户端是否接受 gzip 格式数据,如果是则按 gzip 格式输出网页内容
    检查 $_SERVER['HTTP_ACCEPT_ENCODING'] 中是否包含 gzip (一般情况下值为 gzip, deflate)
    如果是则调用 ob_gzhandler 函数
    具体代码可以是
    if(strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) {
      ob_start("ob_gzhandler");
    }
    .... 其他代码