Web报文压缩方法

Posted LightSong@计海拾贝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web报文压缩方法相关的知识,希望对你有一定的参考价值。

编译时压缩

https://www.cnblogs.com/qiuzhimutou/p/7592875.html

这里我列举几个常用的能够用于减少包体大小的插件,我们可以根据项目需求选择性的使用:
compression-webpack-plugin :该插件能够将资源文件压缩为.gz文件,并且根据客户端的需求按需加载。
dedupeplugin :抽取出输出包体中的相同或者近似的文件或者代码,可能对于 Entry Chunk 有所负担,不过能有效地减少包体大小。
uglifyjsplugin :压缩输出块的大小,可以参考官方文档。
ignoreplugin :用于忽略引入模块中并不需要的内容,譬如当我们引入moment.js时,我们并不需要引入该库中所有的区域设置,因此可以利用该插件忽略不必要的代码。
 

https://www.webpackjs.com/plugins/uglifyjs-webpack-plugin/

[
  new UglifyJsPlugin({
    uglifyOptions: {
      ie8: false,
      ecma: 8,
      parse: {...options},
      mangle: {
        ...options,
        properties: {
          // mangle property options
        }
      },
      output: {
        comments: false,
        beautify: false,
        ...options
      },
      compress: {...options},
      warnings: false
    }
  })
]


-----
new webpack.optimize.UglifyJsPlugin({
mangle: true,
compress: {
warnings: false, // Suppress uglification warnings
pure_getters: true,
unsafe: true,
unsafe_comps: true,
screw_ie8: true
},
output: {
comments: false,
},
exclude: [/\\.min\\.js$/gi] // skip pre-minified libs
}),

https://www.webpackjs.com/plugins/compression-webpack-plugin/

compression-webpack-plugin :该插件能够将资源文件压缩为.gz文件,并且根据客户端的需求按需加载。
var CompressionPlugin = require("compression-webpack-plugin");
module.exports = {
    plugins: [
        new CompressionPlugin({
            asset: "[path].gz[query]",
            algorithm: "gzip",
            test: /\\.(js|html)$/,
            threshold: 10240,
            minRatio: 0.8
        })
    ]
}

 

 

请求中压缩

https://www.npmjs.com/package/compression

给express添加压缩中间件

Node.js compression middleware.

The following compression codings are supported:

  • deflate
  • gzip

The middleware will attempt to compress response bodies for all request that traverse through the middleware, based on the given options.

 

When using this module with express or connect, simply app.use the module as high as you like. Requests that pass through the middleware will be compressed.

var compression require(\'compression\')
var express require(\'express\')
 
var app express()
 
// compress all responses
app.use(compression())
 
// add all routes

 

以上是关于Web报文压缩方法的主要内容,如果未能解决你的问题,请参考以下文章

C#编写Web设置请求报文都为application/json类型格式

华为机试真题 C++ 实现报文解压缩

华为机试真题 C++ 实现报文解压缩

华为机试真题 Java 实现报文解压缩

HTTP请求报文详解

《图解HTTP》读书笔记