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");
}
这是第二段
{
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");
}
这是第二段
第二段是对响应内容gzip压缩,其实这个是web服务器的事。我也没用过PHP的zlib扩展所以不会写
对 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");
}
.... 其他代码