• Web基础之页面压缩 koma


    此文灰常基础,有一定经验的程序员可以略过

    什么是页面压缩

    当页面过大时,造成网络传输缓慢时, 可以使用gzip或deflate 对页面进行压缩, 其实gzip或deflate是服务器与客户端浏览器共同支持的协议, 当客户端请求服务器时, 服务器判断客户端是否支持压缩,当支持并且服务器配置了压缩时, 服务器会传送压缩好的数据给浏览器, 浏览器再将数据解析呈现.

    在IIS7中,默认是开启了页面压缩,如图

      

    什么是静态压缩?

    静态压缩是服务器将数据压缩后,存储都临时目录(见上图), 当有请求过来时, 服务器会判断是否有压缩好的数据,如果没有,服务器会进行页面压缩,并存储,同时将压缩好的数据返回,当再次有相同的请求时, 服务器会从临时目录中返回压缩好的数据

    什么是动态内容压缩?

    动态内容压缩, 是指当客户端请求某个页面时,由于页面数据可能会变动, 例如(*.aspx), 服务器会先将数据压缩并放入内存,在将数据返回客户端;当再次有相同请求时, 服务器依然会重复之前动作,对页面进行压缩,在想数据返回

    如何手动实现?

    其实很简单,我将核心代码贴上来, 大家一看便知 ,代码下载

    GZipStream gzip = new GZipStream(filterContext.HttpContext.Response.Filter, CompressionMode.Compress);
    filterContext.HttpContext.Response.AppendHeader("Content-Encoding", "GZIP");
    filterContext.HttpContext.Response.Filter = gzip;

    主要是GZipStream类的功劳, 需要注意的是Response.AppendHeader("Content-Encoding", "GZIP") 这里的GZIP 必须是大写! 在看看我们页面返回的数据, 

    没错,就这莫简单,  但是需要注意的是, 使用页面压缩不一定都是有益的, 特别是动态内容压缩,因为每次请求服务器都会对内容进行压缩, 对服务器性能会产生影响, 如果你服务器超级牛b的话,那就另说

    说个题外的,昨天使用MVC的时候,访问Views里面的静态页面,死活不成功,悲剧的是我使用MVC很长时间竟然没碰到这个问题,后来Google才知道Views是一个特殊目录,放在其他目录中就行

  • 相关阅读:
    mybaits源码分析--事务管理(八)
    mybaits源码分析--binding模块(五)
    mybaits源码分析--自定义插件(七)
    mybaits源码分析--缓存模块(六)
    2021年9月
    golang-reflect实战ini配置文件
    ECC加密原理详解
    RFID 随手记
    计算机实现加法
    公钥加密算法 RSA
  • 原文地址:https://www.cnblogs.com/yihui/p/2397134.html
Copyright © 2020-2023  润新知