亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 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麻豆精品国产自产在线| 黄色免费三级| 尤物视频网站在线| 一级女性全黄生活片免费| 精品视频一区二区| 日本免费区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 美国一区二区三区| 欧美激情伊人| 亚洲wwwwww| 国产伦久视频免费观看 视频| 99热精品在线| 高清一级毛片一本到免费观看| 成人免费观看男女羞羞视频| 四虎影视精品永久免费网站| 欧美激情一区二区三区中文字幕| 99久久精品国产高清一区二区| 成人高清视频在线观看| 欧美a级成人淫片免费看| 久久精品店| 精品视频在线观看免费 | 国产a视频| 91麻豆tv| 九九国产| 国产欧美精品| 免费一级片在线| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 天天做日日爱| 久久99中文字幕久久| 久久99这里只有精品国产| 美国一区二区三区| 九九久久国产精品大片| 久久精品免视看国产明星| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩男人天堂| 午夜激情视频在线播放| 国产麻豆精品| 国产麻豆精品高清在线播放| 国产美女在线一区二区三区| 日韩中文字幕在线亚洲一区| 99色视频| 国产原创视频在线| 四虎久久精品国产| 免费国产在线视频| 99久久精品国产高清一区二区| 美女免费精品视频在线观看| 欧美激情一区二区三区视频| 天天色成人网| 精品在线免费播放| 国产不卡在线播放| 亚洲爆爽| 亚欧成人毛片一区二区三区四区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产伦精品一区二区三区无广告| 国产伦久视频免费观看 视频| 精品视频免费看| 成人免费观看网欧美片| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日本特黄特色aaa大片免费| 日日夜夜婷婷| 国产一区二区精品| 国产视频一区二区在线观看| 一级女性全黄生活片免费| 四虎影视久久久免费| 国产91丝袜在线播放0| 日韩男人天堂| 日韩一级精品视频在线观看| 精品视频在线观看免费 | 精品国产香蕉伊思人在线又爽又黄| 亚洲女人国产香蕉久久精品| 国产视频一区在线| 精品久久久久久中文字幕2017| 国产不卡在线播放| 欧美国产日韩在线| 中文字幕97| 美女免费精品视频在线观看| 成人高清视频在线观看| 免费国产在线观看| 国产麻豆精品免费视频| 九九精品久久久久久久久| 韩国毛片| 青青久热| 精品美女| 九九九网站| 日韩中文字幕在线亚洲一区| 欧美激情一区二区三区视频| 天天色成人网| 国产91丝袜在线播放0| 精品在线免费播放| 午夜精品国产自在现线拍| 九九久久99| 欧美激情在线精品video| 亚洲第一页乱| 黄视频网站免费看| 日韩字幕在线| 国产精品免费久久| 青青久热| 亚洲第一页乱| 天天做人人爱夜夜爽2020| a级毛片免费观看网站| 青草国产在线观看| 黄视频网站免费看| 欧美一区二区三区在线观看| 亚洲天堂在线播放| 久草免费在线观看| 日韩在线观看网站| 成人高清免费| 沈樵在线观看福利| 国产麻豆精品| 日本免费乱理伦片在线观看2018| 青青久久精品| 中文字幕97| 日韩欧美一二三区| 天天做日日爱夜夜爽| 亚洲第一页乱| 国产极品白嫩美女在线观看看| 国产伦精品一区二区三区在线观看 | 日本在线不卡免费视频一区| 日韩av东京社区男人的天堂| 黄视频网站免费看| 欧美另类videosbestsex视频| 国产成a人片在线观看视频| 日韩专区亚洲综合久久| 国产麻豆精品| 国产不卡精品一区二区三区| 成人免费高清视频| 国产不卡在线观看视频| 国产视频网站在线观看| a级黄色毛片免费播放视频| 美国一区二区三区| 99久久精品国产麻豆| 99久久精品国产高清一区二区| 台湾美女古装一级毛片| 欧美激情在线精品video| 天天做日日爱| 99久久精品国产片| 天天做日日爱夜夜爽| 精品国产亚洲人成在线| 夜夜操网| 久久99青青久久99久久| 国产成a人片在线观看视频| a级黄色毛片免费播放视频| 亚洲精品永久一区| 国产a毛片| 日本特黄特色aaa大片免费| 成人免费网站久久久| 日韩欧美一二三区| 国产视频一区在线| 香蕉视频亚洲一级| 成人a大片高清在线观看| 91麻豆精品国产自产在线| 国产精品自拍一区| 午夜在线影院| 91麻豆精品国产高清在线| 天天做人人爱夜夜爽2020| 午夜在线影院| 超级乱淫伦动漫| 日韩在线观看免费| 久久99青青久久99久久| 99热热久久| 亚洲天堂免费| 青草国产在线观看| 国产伦精品一区二区三区在线观看 | 一级毛片视频在线观看| 国产成人精品影视| 欧美激情在线精品video| 日韩免费在线| 黄视频网站在线看| 九九精品在线播放| 天天做日日爱夜夜爽| 成人影院久久久久久影院| 国产伦久视频免费观看 视频| 九九热国产视频| 日本特黄特色aaa大片免费| 一级女性大黄生活片免费| 国产激情一区二区三区| 欧美1卡一卡二卡三新区| 韩国三级视频网站| 亚洲wwwwww| 日韩一级精品视频在线观看| 日韩中文字幕在线播放| 精品视频免费看| 免费国产在线观看| 欧美激情一区二区三区在线| 久久99这里只有精品国产| 黄色免费三级| 精品久久久久久影院免费| 黄视频网站免费看| 国产亚洲免费观看| 午夜在线影院| 四虎影视精品永久免费网站| 99热热久久| 国产不卡在线播放| 国产亚洲免费观看| 美女免费精品视频在线观看| 99久久精品国产片| 久久99中文字幕久久| 日韩在线观看免费|