网页的头部压缩在页面体积大的情况下非常有必要做,它会使页面体积有一个明显的减小,同时加到网页从服务端下载到客户端的速度,以下是我做的一个测试:

没有使用头压缩时:

使用了头压缩后:

我们可以看到,网页的体积足足减少了6KB,这对于远程传输来说是很重要的,同时,页面下载到客户端的速度也由825MS提升到了753MS,可以说是一次不小的

飞跃!呵呵!

在MVC环境中,是如何实现的呢,如果不是全局的,可以建立一个过滤器(特殊),然后应用到action或者controller上就可以了,我们以这种方式为例,我来共享一

下代码:

 1     /// <summary>
 2     /// 页面头压缩
 3     /// </summary>
 4     public class CompressAttribute : ActionFilterAttribute
 5     {
 6         public override void OnActionExecuting(ActionExecutingContext filterContext)
 7         {
 8             var acceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
 9             if (!string.IsNullOrEmpty(acceptEncoding))
10             {
11                 acceptEncoding = acceptEncoding.ToLower();
12                 var response = filterContext.HttpContext.Response;
13
14                 if (acceptEncoding.Contains("gzip"))
15                 {
16                     response.AppendHeader("Content-encoding", "gzip");
17                     response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
18                 }
19                 else if (acceptEncoding.Contains("deflate"))
20                 {
21                     response.AppendHeader("Content-encoding", "deflate");
22                     response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
23                 }
24             }
25         }
26     }

将你希望对一组页面应用头压缩时,可以在Controller上加特性:

1     [CompressAttribute]
2     public partial class ProductController : BaseController
3     {
4       //...
5      }

对于单个页面,可以直接到Action上加特性:

1   [CompressAttribute]
2   public ActionResult Item(int id, int? grade, int? category)
3    {
4        //...
5    }

本文转自博客园张占岭(仓储大叔)的博客,原文链接:将不确定变为确定~头压缩是否有必要,MVC如何实现头压缩,如需转载请自行联系原博主。

将不确定变为确定~头压缩是否有必要,MVC如何实现头压缩相关推荐

  1. java对象头_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  2. C语言霍夫曼编码压缩,数据结构大作业——哈夫曼编码压缩BMP格式文件

    数据结构大作业--哈夫曼编码压缩BMP格式文件 首先需要了解BMP图像格式 BMP图像格式详解 其次需要了解哈夫曼编码如何对BMP文件进行压缩 哈夫曼压缩与解压缩 编程部分 使用的头文件 虽然这里用了 ...

  3. java的头怎么写_JAVA对象布局之对象头(Object Header)

    由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能 .在学习并发编程知识synchronized时,我们总是难以理解其实 ...

  4. java对象头markword_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  5. linux系统如何开启网页是否压缩,Windows或Linux下Apache开启GZIP压缩 | kTWO-个人博客...

    在搭建web服务器的时候有时因为服务器带宽比较小,而网站内容较多,内容加载较慢,此时建议站长们开启Apache的GZIP压缩功能,注意:开启GZIP之后会增加服务器的压力,不过一般服务器还是可以承受的 ...

  6. Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型

    Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型 原文:https://blog.csdn.net/u011808673/article/details/8079 ...

  7. unity 纹理压缩格式‘_[2018.1]Unity贴图压缩格式设置

    一.移动平台GPU 参考文档: 各种移动GPU压缩纹理的使用方法 - LuMing - 博客园​www.cnblogs.com 1.Imagination Technologies的PowerVR S ...

  8. 利用WinRAR命令行压缩文件或文件夹2007-11-14 15:07压缩文件夹

    利用WinRAR命令行压缩文件或文件夹 2007-11-14 15:07 压缩文件夹winrar.exe a -ag -k -r -s -ibck c:/bak.rar c:/dat/ 压缩多个文件 ...

  9. linux压缩和打包的区别,Linux中的压缩和打包

    使用gzip命令可以将一个文件完成压缩 gzip services##压缩Services文件,压缩文件的名称是services.gz,注意,压缩完成之后原文件不在了 gunzip services# ...

最新文章

  1. Ubuntu 更新后 VirtualBox 无法启动
  2. Spring4.X系列之Spring JDBC
  3. 用ASP实现隐藏链接方法
  4. 飞桨第三课2020.4.2
  5. linux elf 视频,linux 实例讲解elf文件
  6. 雷云驱动2从云服务器,雷蛇云驱动 2 for mac(Mac雷蛇鼠标驱动设置工具)V1.88 官方版...
  7. 安装配置OOS2016
  8. 全球与中国一体化VR摄影机市场现状及未来发展趋势2022-2028
  9. 计算机打开文件的原理,电脑删除文件是怎么实现的?它的原理是什么?
  10. 系统分析与设计之用例图
  11. 【Electron-Vue】构建桌面应用(40)- Electron程序未响应
  12. 官宣, CSDN 2018博客之星获奖名单!
  13. Android软键盘手动显示、隐藏、布局上移和EditText上移
  14. js渲染10万数据列表,不阻塞UI
  15. TCP 三次握手的原因是什么?
  16. 热电偶测温专用芯片介绍
  17. (筆記) 如何使用Debussy與ModelSim做Co-Simulation? (SOC) (Verilog) (VHDL) (Debussy) (ModelSim)
  18. 35-Figma-Figma自带切图工具使用
  19. 刚进入软件测试的行业,就我学习到的关于软件测试的基础知识做以下总结。...
  20. 开发自己的脚手架(Rollup+Typescript)-(03)-(CAC 命令行交互)

热门文章

  1. html中表格与字对齐,html – 中心与表格单元格对齐
  2. java还值_Java到底是引用传递还是值传递
  3. java c标签 if有值_c标签 if else c标签 总结
  4. 计算机二级vb2003年4月考试题,2003年4月全国计算机等级考试二级vb笔试真题附答案...
  5. oracle截取时间函数6,SQL 取日期部分函数
  6. java堆外内存溢出_JVM 案例 - 堆外内存导致的溢出错误
  7. 【JAVA基础篇】内部类
  8. java线程同步的实现_【Java多线程系列三】实现线程同步的方法
  9. jsp中String path = request.getContextPath()的作用
  10. C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。