校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Nginx使用Gzip算法對報文進行壓縮詳解

Nginx使用Gzip算法對報文進行壓縮詳解

熱門標簽:蘭州語音電銷機器人軟件 宿州防封外呼系統(tǒng)廠家 電銷機器人對公司貢獻 山東400電話如何辦理 智能外呼系統(tǒng)如何部署 高德地圖標注在建線路 濟源電話外呼系統(tǒng)怎么樣 電話機器人服務差 ai電銷機器人 如何開發(fā)

什么是HTTP壓縮

有時候客戶端和服務器之間會傳輸比較大的報文數據,這時候就占用較大的網絡帶寬和時長。為了節(jié)省帶寬,加速報文的響應速速,可以將傳輸的報文數據先進行壓縮,然后再進行傳輸。

HTTP支持多種報文壓縮算法,下面是一個普通的請求頭,從Accept-Encoding字段可以看出支持gzip、deflate和br壓縮算法。本文我們重點講使用Gzip算法對報文進行壓縮,比如Gzip來壓縮HTML,Javascript, CSS文件,壓縮完后能大大減少網絡傳輸的數據量,提高了用戶顯示網頁的速度。

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
Host: localhost:8000
If-Modified-Since: Tue, 21 Apr 2020 14:09:01 GMT
If-None-Match: "5e9efe7d-264"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

任何技術都是雙面的,HTTP壓縮雖然能減少帶寬占用加快響應速度,但是因為需要額外的壓縮和解壓的過程,所以會占用些客戶端或服務器端的計算資源。

了解HTTP的讀者知道,可以對HTTP的報文體進行編碼加密。其實HTTP壓縮是一種特殊的編碼方式,使用這種編碼方式可以將報文大大減少,使用對應的解法方式又能還原最初的報文。(我們可以看出,其實壓縮技術的本質就是一種編碼方式)

HTTP壓縮的使用場景

從上面對于HTTP壓縮的介紹可以看出,這種技術是一種優(yōu)化技術,常常用于壓縮服務器端返回的報文以達到節(jié)省帶寬加速響應的目的。

下面簡單介紹一個HTTP使用Gzip壓縮的過程。

  • 瀏覽器發(fā)送Http request 給Web服務器, request 中有Accept-Encoding: gzip, deflate, br。 (告訴服務器,瀏覽器支持gzip壓縮)
  • Web服務器接到request后, 先生成原始的Response, 其中有原始的Content-Type和Content-Length。
  • Web服務器通過Gzip,來對Response進行編碼, 編碼后header中有Content-Type和Content-Length(壓縮后的大小), 并且增加了Content-Encoding:gzip. 然后把Response發(fā)送給瀏覽器。
  • 瀏覽器接到Response后,根據Content-Encoding:gzip來對Response進行解碼。 獲取到原始response后, 然后顯示出網頁。

客戶端也可以發(fā)送壓縮數據給服務端,通過代碼將請求數據解壓即可,規(guī)范起見同樣要在請求中加入Content-Encoding:gzip

用Nginx實現HTTP壓縮

Nginx提供了對HTTP Gzip壓縮的支持,這邊我們就來看看適應Nginx怎么對返回報文進行壓縮。

Nginx中通過ngx_http_gzip_module模塊、ngx_http_gzip_static_module模塊和ngx_http_gunzip_module模塊來對Gzip功能進行支持。一般情況下Nginx默認會編譯
這些模塊,可以通過nginx -V命令看下你安裝的nginx是否包含了這些模塊。

Gzip相關的指令可以在配置文件的http塊、server塊或者location塊中。

ngx_http_gzip_module模塊

ngx_http_gzip_module模塊主要負責Gzip功能的開啟和設置,對響應數據進行在線實時壓縮。該模塊包含以下主要指令。

# 開啟或者關閉Gzip功能,默認情況下,該指令設置為off,即不啟用Gzip功能。只有將該指令設置為on時,其他指令設置才有效
gzip on | off

# 設置Gzip壓縮文件使用緩存空間的大小
# 默認值是:gzip_buffers 32 4k|16 8k
gzip_buffers number size;

# 該指令用于設定Gzip壓縮程度,包括級別1到級別9。
# 級別1表示壓縮程度最低,壓縮效率最高;級別9表示壓縮程度最高,壓縮效率最低,最費時間。
# 默認是1
gzip_comp_level level

# 針對不同種類客戶端發(fā)起的請求,可以選擇性地開啟和關閉Gzip功能。
# 支持正則表達式,其中,regex 根據客戶端的瀏覽器標志(User-Agent,UA)進行設置。
gzip_disable regex ...;

# 該設置使用了正則表達式,其可以匹配UC字符串中包含MSIE 4、MSIE 5和MSIE6的所有瀏覽器。
# 響應這些瀏覽器發(fā)出的請求時,Nginx服務器不進行Gzip壓縮。
gzip_disable MSIE [4-6]\.;

# 早期的一些瀏覽器或者HTTP客戶端,可能不支持Gzip自解壓,因此用戶有時會看到亂碼,所以針
# 對不同的HTTP協議版本,需要選擇性地開啟或者關閉Gzip功能。該指令用于設置開啟Gzip功能的最低HTTP協議版本。
# 默認設置為1.1版本,即只有客戶端使用1.1及以上版本的HTTP協議時,才使用Gzip功能對響應輸出數據進行壓縮。
# 從目前來看,絕大多數的瀏覽器都支持Gzip自解壓,一般采用默認值即可.
zip_http_version 1.0 | 1.1;

# 該指令設置頁面的字節(jié)數,當響應頁面的大小大于該值時,才啟用Gzip功能。
# 建議設置成gzip_min_length 1024;
gzip_min_length length;

# 用于設置Nginx服務器是否對后端服務器返回的結果進行Gzip壓縮;
# 一般情況下,后端都是用來做restAPI接口,返回的數據量不會太大,不建議進行壓縮
# 真的需要對后端返回的數據進行壓縮是可以再看下這塊的內容
gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;

# 設置MIME類型,被設置的類型將被壓縮,默認值是:text/html
# 該變量還可以取“*”,表示對所有MIME類型的頁面數據進行Gzip壓縮
# 一般可以設置成:gzip_types text/plain application/javascript text/css text/xml
gzip_types mime-type ...;

# 開啟后的效果是在響應頭部添加了Accept-Encoding: gzip
gzip_vary on | off;

ngx_http_gzip_static_module模塊

ngx_http_gzip_static_module模塊主要負責搜索和發(fā)送經過Gzip功能預壓縮的數據。這些數據以“.gz”作為后綴名存儲在服務器上。如果客戶端請求的數據在之前被壓縮過,并且客戶端瀏覽器支持Gzip壓縮,就直接返回壓縮后的數據。

該模塊與ngx_http_gzip_module模塊的不同之處主要在于,該模塊使用的是靜態(tài)壓縮,在HTTP響應頭部包含Content-Length頭域來指明報文體的長度,用于服務器可確定響應數據長度的情況;而后者默認使用Chunked編碼的動態(tài)壓縮,其主要適用于服務器無法確定響應數據長度的情況,比如大文件下載的情形,這時需要實時生成數據長度。

該模塊指令的使用和ngx_http_gzip_static_module模塊類似,這邊就不再具體展開了。大家可以參考官方文檔

該模塊是Nginx服務器的可選HTTP模塊,如果要使用,必須在Nginx程序配置時添加--with-http_gzip_static_module指令。

ngx_http_gunzip_module模塊

Nginx服務器支持對響應輸出數據流進行Gzip壓縮,這對客戶端瀏覽器來說,需要有能力解壓和處理Gzip壓縮數據,但如果客戶端本身不支持該功能,就需要Nginx服務器在向其發(fā)送數據之前先將該數據解壓。這些壓縮數據可能來自于后端服務器壓縮產生或者Nginx服務器預壓縮產生。ngx_http_gunzip_module模塊便是用來針對不支持Gzip壓縮數據處理的客戶端瀏覽器,對壓縮數據進行解壓處理的.

同樣,對這個模塊的指令使用就不具體展開了,大家可以參考官方文檔

現代的瀏覽器一般都支持壓縮功能,所以這個模塊使用到的幾率較小。

配置列子

gzip   on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types  text/plain application/xml;

為了使得Nginx服務器能夠在全局范圍內應用Gzip壓縮功能,可以將Gzip配置放在了http全局塊中。如果要對各個虛擬主機差別性對待,我們可以在對應的server
塊中添加各自的Gzip配置指令;

閱讀延伸

平時開發(fā)的應用中可能不是所有的應用都使用了Nginx,看看其他Web服務器怎么開啟對HTTP壓縮的支持。

1. Spring Boot中內嵌的Tomcat開啟壓縮功能

Tomcat作為servet容器+http server,也是支持gzip壓縮的。使用傳統(tǒng)的Tomcat的話,我們只需要在server.xml配置開啟HTTP壓縮即可。
在embed版本下需要通過代碼來配置。spring-boot內置的tomcat是embed版本,通過內置的autoconfig機制已經做了一些默認tomcat配置,但是對于一些不常用/高級的配置,spring-boot并沒有提供入口。

不過由于spring bean的特性,可以覆蓋默認裝配的bean,包括tomcat相關的配置。使用TomcatConnectorCustomizer接口可以開啟壓縮配置。

public class ConnC1 implements TomcatConnectorCustomizer{

 @Override
 public void customize(Connector connector) {
  ProtocolHandler protocolHandler = connector.getProtocolHandler();
  if(protocolHandler instanceof Http11NioProtocol){
   Http11NioProtocol http11NioProtocol = (Http11NioProtocol)protocolHandler;
   http11NioProtocol.setCompression("on");//default off
   http11NioProtocol.setCompressibleMimeType();
   http11NioProtocol.setCompressionMinSize(2048);//default 2048(B)
   http11NioProtocol.setMaxKeepAliveRequests(1);//default 200
  }
 }
}

關于Tomcat對于HTTP壓縮的支持,大家可以從Tomcat的CompressionConfig這個類開始尋找線索。

其實如果只是簡單開啟對壓縮功能的支持的話,只要在Spring Boot做下面的配置即可:

server:
 compression:
 enabled: true
 min-response-size: 1024
 mime-types:
  application/json

總結

到此這篇關于Nginx的Gzip功能的文章就介紹到這了,更多相關Nginx的Gzip功能內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:巴中 畢節(jié) 南寧 佛山 云南 晉中 衡水 安陽

巨人網絡通訊聲明:本文標題《Nginx使用Gzip算法對報文進行壓縮詳解》,本文關鍵詞  Nginx,使用,Gzip,算法,對,報文,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Nginx使用Gzip算法對報文進行壓縮詳解》相關的同類信息!
  • 本頁收集關于Nginx使用Gzip算法對報文進行壓縮詳解的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    91精品国产综合久久久久久久久久 | 日韩欧美国产三级| 午夜精品久久久久久久99水蜜桃| 97se狠狠狠综合亚洲狠狠| 亚洲欧洲99久久| 精品视频资源站| 日产欧产美韩系列久久99| 精品国产乱码久久久久久久| 粉嫩一区二区三区性色av| 日韩理论片一区二区| 欧美老肥妇做.爰bbww| 国产一区999| 亚洲欧美另类久久久精品 | 91成人国产精品| 免费成人av资源网| 国产精品二三区| 欧美日韩亚洲不卡| 高潮精品一区videoshd| 亚洲国产中文字幕| 国产精品网友自拍| 日韩一区二区三区免费看 | 国产精品传媒视频| 欧美mv和日韩mv国产网站| 91在线观看成人| 老司机精品视频导航| 一区二区三区四区不卡在线 | 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产精品电影院| 欧美老肥妇做.爰bbww视频| 国产精品一区二区不卡| 亚洲成人综合网站| 中文字幕一区二区在线观看 | 日韩欧美一二三| 91久久久免费一区二区| 国产一区欧美日韩| 日本亚洲三级在线| 亚洲成人激情综合网| 日韩理论在线观看| 国产精品国产精品国产专区不蜜 | 一区二区三区日韩在线观看| 久久久噜噜噜久久中文字幕色伊伊| 欧美日韩精品一区视频| 91国偷自产一区二区三区成为亚洲经典| 精品一区二区三区蜜桃| 五月天久久比比资源色| 一区二区三区四区视频精品免费| 国产精品国产三级国产普通话蜜臀 | 91精品国产综合久久小美女| 欧美三级电影网| 欧美日韩三级在线| 欧美色网站导航| 欧美日韩另类国产亚洲欧美一级| 欧美三级视频在线播放| 9191精品国产综合久久久久久| 欧美写真视频网站| 欧美色窝79yyyycom| 91精品国产高清一区二区三区| 欧美色网站导航| 67194成人在线观看| 欧美哺乳videos| 国产亚洲欧美色| 国产精品天美传媒沈樵| 最新国产精品久久精品| 中文字幕欧美日韩一区| 久久精品亚洲国产奇米99| 亚洲国产激情av| 亚洲在线成人精品| 日韩和欧美一区二区三区| 久久er99热精品一区二区| 国产成人综合亚洲网站| 成人高清免费在线播放| 色琪琪一区二区三区亚洲区| 欧美日韩一区二区在线观看| 日韩欧美一级精品久久| 国产女人水真多18毛片18精品视频| 亚洲国产精品av| 亚洲国产精品久久久男人的天堂 | 91黄色激情网站| 日韩欧美第一区| 椎名由奈av一区二区三区| 亚洲成av人片在线观看无码| 麻豆国产欧美一区二区三区| 成人影视亚洲图片在线| 欧美色国产精品| 久久美女艺术照精彩视频福利播放| 国产精品萝li| 青草av.久久免费一区| gogo大胆日本视频一区| 91精品国产91久久久久久一区二区| 久久精品夜夜夜夜久久| 亚洲午夜一区二区三区| 国产成人在线影院 | 久久精品国产第一区二区三区| 成人免费观看av| 欧美一级搡bbbb搡bbbb| 亚洲天堂av老司机| 国产麻豆视频精品| 7777女厕盗摄久久久| 中文字幕字幕中文在线中不卡视频| 久久精品国产精品青草| 欧美日韩精品福利| **网站欧美大片在线观看| 国产一区二区不卡老阿姨| 欧美日产在线观看| 亚洲精品日日夜夜| 成人精品鲁一区一区二区| 91精选在线观看| 亚洲精品国产无天堂网2021| 国产iv一区二区三区| 日韩免费观看高清完整版| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲视频在线一区观看| 国内成+人亚洲+欧美+综合在线| 欧美三级日本三级少妇99| 成人欧美一区二区三区白人| 国产xxx精品视频大全| 国产午夜精品一区二区| 久久精品国产一区二区| 日韩欧美另类在线| 免费欧美在线视频| 日韩一区二区免费电影| 日韩黄色免费电影| 欧美一二三区精品| 日本欧美一区二区| 欧美一区二区三区视频免费| 婷婷中文字幕一区三区| 欧美日产国产精品| 免费高清在线视频一区·| 日韩视频123| 激情综合一区二区三区| 久久嫩草精品久久久精品| 久久99精品国产.久久久久久| 日韩视频免费观看高清完整版在线观看 | 亚洲综合视频网| 欧美丝袜丝交足nylons图片| 亚洲国产精品久久久久婷婷884| 一本色道久久综合亚洲精品按摩 | 国产自产v一区二区三区c| 亚洲精品一区二区三区四区高清| 激情深爱一区二区| 国产亚洲成av人在线观看导航| 国产精品羞羞答答xxdd| 国产精品美女久久久久久| 91浏览器打开| 青青草原综合久久大伊人精品优势| 日韩一级免费观看| 国产精品系列在线观看| 亚洲人成在线播放网站岛国| 91高清视频在线| 免费不卡在线观看| 亚洲狠狠丁香婷婷综合久久久| 99在线热播精品免费| 亚洲精品va在线观看| 日韩欧美色综合网站| 97精品久久久久中文字幕 | 日本中文字幕一区二区有限公司| 欧美成人精品高清在线播放| 国产xxx精品视频大全| 亚洲一区在线观看网站| 亚洲精品一区二区三区99| 成人理论电影网| 婷婷激情综合网| 中文字幕精品综合| 91精品在线免费| jlzzjlzz国产精品久久| 男女性色大片免费观看一区二区| 国产欧美中文在线| 欧美一区在线视频| 91浏览器打开| 国产精品18久久久久久久网站| 亚洲最色的网站| 久久久久九九视频| 91麻豆精品91久久久久同性| 不卡视频在线看| 极品少妇xxxx精品少妇偷拍| 性做久久久久久免费观看 | 国产精品妹子av| 日韩免费福利电影在线观看| 色综合天天综合给合国产| 老司机精品视频在线| 亚洲福中文字幕伊人影院| 国产精品乱码人人做人人爱| 精品少妇一区二区三区免费观看 | 亚洲一区二区三区四区在线| 久久久国产精品麻豆| 91麻豆精品国产| 欧美三级视频在线| 色婷婷综合视频在线观看| 国产成人av一区二区三区在线| 婷婷久久综合九色综合绿巨人 | **网站欧美大片在线观看| 久久婷婷一区二区三区| 欧美一级片免费看| 欧美性猛交xxxx黑人交| 91天堂素人约啪| 国产精品正在播放| 久久99精品久久久久久久久久久久| 日韩一区欧美二区| 视频在线在亚洲| 青椒成人免费视频|