婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

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

什么是HTTP壓縮

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

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壓縮的介紹可以看出,這種技術是一種優化技術,常常用于壓縮服務器端返回的報文以達到節省帶寬加速響應的目的。

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

  • 瀏覽器發送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發送給瀏覽器。
  • 瀏覽器接到Response后,根據Content-Encoding:gzip來對Response進行解碼。 獲取到原始response后, 然后顯示出網頁。

客戶端也可以發送壓縮數據給服務端,通過代碼將請求數據解壓即可,規范起見同樣要在請求中加入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

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

# 該設置使用了正則表達式,其可以匹配UC字符串中包含MSIE 4、MSIE 5和MSIE6的所有瀏覽器。
# 響應這些瀏覽器發出的請求時,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;

# 該指令設置頁面的字節數,當響應頁面的大小大于該值時,才啟用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模塊主要負責搜索和發送經過Gzip功能預壓縮的數據。這些數據以“.gz”作為后綴名存儲在服務器上。如果客戶端請求的數據在之前被壓縮過,并且客戶端瀏覽器支持Gzip壓縮,就直接返回壓縮后的數據。

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

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

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

ngx_http_gunzip_module模塊

Nginx服務器支持對響應輸出數據流進行Gzip壓縮,這對客戶端瀏覽器來說,需要有能力解壓和處理Gzip壓縮數據,但如果客戶端本身不支持該功能,就需要Nginx服務器在向其發送數據之前先將該數據解壓。這些壓縮數據可能來自于后端服務器壓縮產生或者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配置指令;

閱讀延伸

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

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

Tomcat作為servet容器+http server,也是支持gzip壓縮的。使用傳統的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功能內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

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

巨人網絡通訊聲明:本文標題《Nginx使用Gzip算法對報文進行壓縮詳解》,本文關鍵詞  Nginx,使用,Gzip,算法,對,報文,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Nginx使用Gzip算法對報文進行壓縮詳解》相關的同類信息!
  • 本頁收集關于Nginx使用Gzip算法對報文進行壓縮詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美国产精品一区二区| 欧美日韩成人激情| 欧美日韩精品专区| 18涩涩午夜精品.www| 成人激情动漫在线观看| 国产精品白丝在线| 欧美性大战久久| 欧美极品美女视频| 懂色av一区二区夜夜嗨| 国产成人精品免费| 精品视频色一区| 色婷婷久久一区二区三区麻豆| 成人综合日日夜夜| 亚洲一区二区三区四区在线免费观看| 亚洲乱码日产精品bd| 午夜伊人狠狠久久| 欧美性大战久久久| 亚洲欧美日韩电影| 六月丁香婷婷色狠狠久久| 久久精品国产亚洲5555| 国产精品一区二区在线观看网站| 在线观看日韩一区| 国产精品视频观看| 精品一区二区三区不卡| 精品久久久久久最新网址| 国产永久精品大片wwwapp| 国产精品国产精品国产专区不蜜| 欧美在线观看视频一区二区三区| 日韩中文字幕1| 中文字幕免费不卡在线| 欧美做爰猛烈大尺度电影无法无天| 日欧美一区二区| 国产精品国产精品国产专区不片| 欧美日韩dvd在线观看| 国产精品一区二区久久不卡| 亚洲激情综合网| 亚洲精品一区二区三区蜜桃下载| 色狠狠桃花综合| 韩国v欧美v亚洲v日本v| 亚洲一区二区三区三| 国产午夜精品理论片a级大结局 | 樱桃视频在线观看一区| 日韩欧美一区二区不卡| 色综合网色综合| 国产一区二区在线观看视频| 亚洲一区av在线| 中文字幕精品三区| 日韩欧美www| 欧美美女网站色| 成人影视亚洲图片在线| 久久成人麻豆午夜电影| 亚洲一区免费观看| 自拍偷拍国产精品| 国产精品萝li| 欧美国产日韩精品免费观看| 日韩三区在线观看| 8x8x8国产精品| 欧美精品黑人性xxxx| 欧美三级韩国三级日本一级| 不卡区在线中文字幕| 成人黄色软件下载| 成人sese在线| www.亚洲精品| 一本色道综合亚洲| 色婷婷av一区二区三区软件| 99精品久久久久久| 91蝌蚪porny九色| 欧美综合一区二区三区| 欧美自拍偷拍一区| 欧美一级片免费看| 久久精品亚洲乱码伦伦中文| 国产区在线观看成人精品 | 91久久免费观看| 成人丝袜视频网| 丁香六月综合激情| 色妹子一区二区| 欧美男同性恋视频网站| 欧美日韩精品欧美日韩精品| 69堂国产成人免费视频| 精品日韩一区二区三区| 日本一区二区视频在线| 国产精品国产自产拍高清av | 香蕉久久夜色精品国产使用方法 | 韩国成人精品a∨在线观看| 国产乱码精品一区二区三| 成人av网在线| 欧美精品在线一区二区三区| 欧美一区二区播放| 自拍偷拍国产精品| 免费观看日韩av| 成人一区二区三区| 欧美日韩另类国产亚洲欧美一级| 欧美电影免费观看完整版 | 国产亚洲综合av| 日韩一区欧美小说| 日韩电影在线免费观看| 国产精品亚洲专一区二区三区| 91小视频免费观看| 欧美一级电影网站| 亚洲免费观看高清完整版在线 | www.亚洲免费av| 欧美日韩免费一区二区三区视频| 日韩你懂的在线观看| 成人免费在线播放视频| 麻豆免费精品视频| 欧美性猛片xxxx免费看久爱| 久久这里都是精品| 亚洲一卡二卡三卡四卡无卡久久 | 爽爽淫人综合网网站| 国产成人精品免费看| 欧美一区二区福利视频| 亚洲另类中文字| 国产精品亚洲专一区二区三区| 欧美精品日韩一本| 亚洲综合小说图片| 97aⅴ精品视频一二三区| 久久综合丝袜日本网| 蜜桃视频一区二区三区| 欧美三级在线播放| 亚州成人在线电影| 亚洲电影视频在线| 欧美一级xxx| 国产午夜亚洲精品不卡| 日本中文字幕一区二区有限公司| 91丝袜呻吟高潮美腿白嫩在线观看| 538prom精品视频线放| 亚洲一区二区三区美女| 91久久精品一区二区三区| 欧美极品美女视频| 国产91丝袜在线18| 欧美国产综合一区二区| 国产成人免费在线| 国产精品网友自拍| 99久久婷婷国产综合精品| 国产精品卡一卡二卡三| 成人永久免费视频| 亚洲欧美偷拍卡通变态| 五月天亚洲精品| 免费人成网站在线观看欧美高清| 亚洲精品久久久蜜桃| 久久久久久麻豆| 成人免费观看男女羞羞视频| 日韩欧美国产小视频| 国内精品伊人久久久久影院对白| 麻豆成人久久精品二区三区小说| 视频一区视频二区中文| 精品成人私密视频| 91网站在线观看视频| 一本色道久久综合亚洲aⅴ蜜桃| 国产视频911| 亚洲少妇最新在线视频| 91精品国产综合久久香蕉麻豆| 麻豆国产精品官网| 久久久美女毛片| 日日噜噜夜夜狠狠视频欧美人| 成人黄色一级视频| 日韩视频一区二区三区在线播放 | 欧美在线观看一二区| 欧美不卡视频一区| 亚洲国产综合视频在线观看| 肉丝袜脚交视频一区二区| 欧美伦理影视网| 亚洲高清视频的网址| 亚洲成人免费在线| 国产精品77777竹菊影视小说| 久久久精品天堂| av激情亚洲男人天堂| 日韩精品中文字幕一区二区三区| 91精品一区二区三区在线观看| 欧美精品一区视频| 国产98色在线|日韩| 欧美不卡一区二区三区| 国产精品麻豆久久久| 亚洲成av人影院| 欧美中文字幕一区二区三区亚洲| 欧美大黄免费观看| 亚洲成av人片在线| 国产成人av一区二区三区在线| 亚洲成人黄色影院| 色狠狠一区二区三区香蕉| 欧美午夜在线一二页| 久久99精品久久久| 亚洲精品写真福利| 久久久亚洲国产美女国产盗摄| 精品在线你懂的| 久久精品视频免费| 91麻豆精品91久久久久久清纯| 99re8在线精品视频免费播放| 精品影视av免费| 国产精品国产三级国产普通话99| 欧美亚洲高清一区二区三区不卡| 久久国产日韩欧美精品| 国产欧美日韩久久| 51午夜精品国产| 一本大道久久a久久综合婷婷 | 色av成人天堂桃色av| 色综合天天综合网天天看片 | |精品福利一区二区三区| 免费高清视频精品| 91视频国产观看|