HTTP压缩的过程
1. 浏览器发送Http request 给Web服务器, request 中有Accept-Encoding: gzip, deflate。(告诉服务器浏览器支持gzip压缩)
2. Web服务器接到request后, 生成原始的Response, 其中有原始的Content-Type(定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件)和Content-Length。
3. Web服务器通过Gzip,来对Response 进行编码,编码后header中有Content-Type和Content-Length(压缩后的大小),并且增加了Content-Encoding:gzip. 然后把Response发送给浏览器。
4. 浏览器接到Response后,根据Content-Encoding:gzip来对Response 进行解码。获取到原始response后,再显示出网页。
如下图所示:

HTTP压缩对纯文本(text,js或css等)可以压缩至原内容的40%, 但对已经压缩过的图片没有什么效果。
HTTP压缩的过程的更多相关文章
- java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 使用过程 和servlet差不多
java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 也仿照着 netty处理了NIO的空轮询BUG 本项目并不复杂 代码不多 ...
- 使用雅虎YUI Compressor压缩JS过程心得记录
对待发布的项目进行测试时,发现js下载量比较大,从jquery的min版想到了压缩项目中的js文件.很简单的google之(在此,强调一下google的重要性),搜到一个叫做YUI Compresso ...
- web传输过程中的gzip压缩
最近在做项目的时候用到了gzip,发现它的压缩能力还是很强大的,基本能够压缩50%的文本文件大小.以前有所了解,但不够深入,现在详细了解下. 什么是gzip 在哪里使用gzip gzip对于不同类型文 ...
- linux中tar之解压和压缩常用
我们知道在windows中解压和压缩有两个非常强大的工具winRar和国产的好压工具,在linux中也有一款强大的解压和压缩工具.那就是大名鼎鼎的tar.我们首先看看tar命令的使用格式 语法:tar ...
- Linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
打包举例:将 /usr/local/src/zlib-1.2.5目录下的文件打包成 zlib-1.2.5.tar.gz cd /usr/local/src tar -czvf ./zlib-1.2.5 ...
- IIS7配置Gzip压缩 JS压强失败的原因
开启配置HTTP压缩(GZip) 在IIS7中配置Gzip压缩相比IIS6来说实在容易了许多,而且默认情况下就是启用GZip压缩的.如果没有,则可以再功能视图下找到“压缩”项,进入之后就会看到“静态内 ...
- HTTP协议 (三) 压缩
之前写过一个篇 [HTTP协议详解] ,这次继续介绍HTTP协议中的压缩. 本文会使用Fiddler来查看HTTP request和Response, 如果不熟悉这个工具,可以先参考[Fiddler教 ...
- Linux 压缩和解压缩常用命令
主要记录tar,zip,gzip,bzip2,rar等常用命令,对.tar..gz..tar.gz..tgz..bz2..tar.bz2..zip..rar这8种压缩文件的操作. 1. tar 命令 ...
- Linux压缩打包命令
tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 .... 参数 -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数 ...
- iis7 压缩js文件和启用gzip压缩
压缩js文件 打开IIS 7的配置文件:c:\windows\system32\inetsrv\config\applicationhost.config 在<staticContent loc ...
随机推荐
- 开源即时通讯IM框架 MobileIMSDK v6.4 发布
一.更新内容简介 本次更新为次要版本更新,进行了若干优化(更新历史详见:码云 Release Notes.Github Release Notes).MobileIMSDK 可能是市面上唯一同时支持 ...
- 探探的IM长连接技术实践:技术选型、架构设计、性能优化
本文由探探服务端高级技术专家张凯宏分享,原题"探探长链接项目的Go语言实践",因原文内容有较多错误,有修订和改动. 1.引言 即时通信长连接服务处于网络接入层,这个领域非常适合用G ...
- svtools lmerge具体算法
svtools具有不同的子命令以实现不同的功能,其中一个就是lmerge.根据其帮助文档(merge LUMPY calls inside a single file from svtools lso ...
- 高通MSM8909 Mutil-HAL Sensor 调试
Mutil-HAL的介绍: Sensors Multi-HAL 是一个框架,允许传感器 HAL 与其他传感器 HAL 一起运行. Sensors Multi-HAL 动态加载作为动态库存储在供应商分区 ...
- Solution Set - “谁将重力悬空,坠入一场蔚蓝的梦”
目录 0.「NOI Simu.」皮配 1.「BZOJ #4671」异或图 2.「CF 1158F」Density of subarrays 3.「CF 794G」Replace All 4.「UR # ...
- c# get all Blackfish match source file path list use API
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- uwp 下载文件显示进度并解压文件
uwp 下载文件显示进度并解压文件. <Page x:Class="App4.MainPage" xmlns="http://schemas.microsoft.c ...
- Sharding-JDBC分库分表
https://blog.csdn.net/bochuangli/article/details/123029392 https://blog.csdn.net/bochuangli/article/ ...
- KafKa动态分组ID
背景说明:做这个的原因主要是因为懒,KafKa监听没有独立项目出去,由于KafKa没有组内广播模式,这就造成了一个问题:项目多处启动的时候,就只有一个地方能接收信息.这个时候就要手懂修改分组ID了. ...
- Paillier算法
介绍 1999年欧密会上,首次提出Paillier算法,2001年,Damgard等人对该方案简化,推出当前最优的Paillier方案. 加密方案 Carmichael函数 困难问题 合数剩余类问题( ...