婷婷综合国产,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
    久久久噜噜噜久久人人看| 天天综合网 天天综合色| 欧美一区二区视频观看视频| 99精品久久99久久久久| 国产成人亚洲综合色影视 | 成人av在线资源| 国产精品77777| 国产一区二区三区免费| 国产在线播放一区| 国产jizzjizz一区二区| 国产91在线|亚洲| 成人午夜看片网址| 色老汉av一区二区三区| 91麻豆精品秘密| 欧美日韩国产免费一区二区| 欧美精品国产精品| 欧美va亚洲va在线观看蝴蝶网| 久久精品亚洲国产奇米99| 国产欧美一区二区精品忘忧草| 国产欧美精品一区aⅴ影院| 国产精品第五页| 一区二区视频在线看| 亚洲成人自拍网| 狠狠色狠狠色合久久伊人| 粉嫩aⅴ一区二区三区四区五区 | 亚洲欧美国产高清| 亚洲成av人片| 国产在线播放一区三区四| www.av精品| 这里只有精品免费| 亚洲欧洲精品成人久久奇米网| 一区二区免费在线播放| 美脚の诱脚舐め脚责91 | 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产亚洲成年网址在线观看| 中文av一区特黄| 五月婷婷综合网| 国产宾馆实践打屁股91| 欧美男人的天堂一二区| 国产拍揄自揄精品视频麻豆| 亚洲精品成人精品456| 韩国v欧美v亚洲v日本v| 91成人免费在线| 国产亚洲成av人在线观看导航| 亚洲国产中文字幕在线视频综合| 激情丁香综合五月| 精品视频在线免费| 一区视频在线播放| 久久精品国产第一区二区三区| 91同城在线观看| 久久日韩精品一区二区五区| 午夜电影一区二区| 色婷婷久久99综合精品jk白丝| 久久精品亚洲国产奇米99| 日本网站在线观看一区二区三区| 91在线观看美女| 亚洲国产精品传媒在线观看| 毛片av一区二区| 7777精品久久久大香线蕉| 亚洲女性喷水在线观看一区| 国产99久久久国产精品潘金网站| 日韩精品一区国产麻豆| 日韩av中文在线观看| 欧美亚洲另类激情小说| 一区二区三区中文字幕精品精品 | 国产一区二区精品在线观看| 欧美私人免费视频| 亚洲同性同志一二三专区| 波多野结衣中文一区| 久久精品男人的天堂| 精品亚洲porn| 久久久久久电影| 国产精品综合二区| 2023国产精品| 国产做a爰片久久毛片| 久久中文字幕电影| 国产中文一区二区三区| 久久九九99视频| 日韩在线一区二区| 一区二区三区视频在线看| 亚洲激情第一区| 日本韩国一区二区三区| 亚洲欧美激情小说另类| 色综合久久中文综合久久97 | 中文字幕+乱码+中文字幕一区| 精品无码三级在线观看视频| 精品国内片67194| 国产麻豆欧美日韩一区| 国产精品久久久久久久久图文区| 成人中文字幕合集| 亚洲综合色丁香婷婷六月图片| 欧美日韩一区二区三区在线| 日日欢夜夜爽一区| 精品久久国产老人久久综合| 国产精品综合二区| 亚洲欧美色综合| 884aa四虎影成人精品一区| 久久国产精品99久久久久久老狼| 国产91丝袜在线播放0| 久久99国产精品麻豆| 亚洲欧洲日韩在线| 日精品一区二区| 欧美成人性战久久| 亚洲欧洲精品一区二区三区| 欧洲精品视频在线观看| 免费看日韩精品| 国产女人18毛片水真多成人如厕 | 亚洲黄色录像片| 日韩成人免费电影| 国产欧美一区二区三区在线老狼| 成人app在线| 亚洲欧美一区二区三区孕妇| 国产日韩精品视频一区| 欧美亚洲精品一区| 麻豆精品在线观看| 国产精品九色蝌蚪自拍| 欧美男同性恋视频网站| 国产91在线观看| 日本美女一区二区三区视频| 国产精品毛片a∨一区二区三区| 欧美性猛交xxxx乱大交退制版| 奇米777欧美一区二区| 国产精品福利影院| 91精品国产黑色紧身裤美女| 色婷婷综合久久久久中文| 久久成人麻豆午夜电影| 亚洲一区二区三区美女| 国产亚洲综合在线| 欧美成va人片在线观看| 欧美中文字幕不卡| av电影在线观看一区| 精品一区二区在线免费观看| 天堂在线一区二区| 亚洲午夜久久久久久久久电影院 | 亚洲不卡一区二区三区| 亚洲品质自拍视频| 日本一区二区动态图| 欧美成人国产一区二区| 欧美一区二区视频观看视频| 欧美三级乱人伦电影| 91电影在线观看| 99re视频这里只有精品| 成人免费视频播放| 国产成人精品aa毛片| 国产激情一区二区三区| 色一情一乱一乱一91av| 成人国产精品视频| 国产成人免费视频| 国产99久久久国产精品潘金 | 欧美午夜精品一区| 一本久道久久综合中文字幕| 91丨九色丨国产丨porny| 99国产欧美久久久精品| bt欧美亚洲午夜电影天堂| 国产91精品精华液一区二区三区| 韩国v欧美v日本v亚洲v| 国产精品911| jizzjizzjizz欧美| 日本道精品一区二区三区| 色婷婷综合久久久中文字幕| 色天使久久综合网天天| 欧美日韩国产综合视频在线观看| 欧美精品亚洲二区| 亚洲精品一区二区三区精华液 | 国产综合色产在线精品| 国产一区二区三区观看| 国产·精品毛片| bt欧美亚洲午夜电影天堂| 在线视频一区二区免费| 正在播放亚洲一区| 久久精品夜色噜噜亚洲aⅴ| 亚洲欧洲在线观看av| 亚洲精品五月天| 精品综合久久久久久8888| 不卡欧美aaaaa| 欧美性一级生活| 日韩欧美国产1| 亚洲欧洲精品一区二区三区 | 久久综合色播五月| 中文字幕一区二区三区色视频| 一区二区三区久久久| 久久99热这里只有精品| 国产mv日韩mv欧美| 欧美日韩精品三区| 国产欧美视频一区二区三区| 亚洲最大色网站| 国精品**一区二区三区在线蜜桃| 91首页免费视频| 欧美zozozo| 亚洲国产另类av| 高清不卡在线观看av| 制服丝袜av成人在线看| 国产精品的网站| 国内精品国产成人国产三级粉色| 91久久一区二区| 国产精品久久久久久久久果冻传媒| 日本中文一区二区三区| 97成人超碰视| 国产免费久久精品| 久久国产生活片100|