在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深入淺出了解華為云 API 網關的 Gzip 功能

jf_94205927 ? 來源:jf_94205927 ? 作者:jf_94205927 ? 2023-11-12 17:36 ? 次閱讀

Gzip 是什么

Gzip 是一種用于數據壓縮的編碼格式,經常被使用在基于 HTTP 協議的網絡傳輸中。Gzip 功能允許服務器在傳輸數據是對其進行壓縮,從而減小傳輸的數據量,加快頁面加載速度,這對于節省帶寬和提高用戶體驗非常有用。本文將從 Gzip 使用場景、Gzip 原理、Gzip 在 nginx 中的應用以及華為云 API網關的 Gzip 功能實現幾個方面介紹 Gzip。

Gzip 使用場景

Gzip 能夠提升傳輸速度和降低帶寬消耗,因此適合應用 Gzip 的場景有很多。

網頁傳輸:在 web 開發中,使用 Gzip 可以減小文件大小,從而加快頁面加載速度。

移動應用通信:在移動應用中,使用 Gzip 可以降低移動網絡的數據消耗,加快數據傳輸速度,提升用戶體驗。

文件備份和傳輸:在進行文件備份或者文件傳輸時,使用 Gzip 可以減小備份文件的大小,節省存儲空間和傳輸帶寬。

網絡傳輸限制:在網絡帶寬受限的環境下,使用Gzip可以減小數據傳輸量,提升網絡性能。

API 通信:對于RESTfulAPI或其他數據接口的傳輸,使用Gzip可以降低傳輸的數據量,減少對網絡帶寬的占用,提升響應速度。

Gzip 原理

gzip 使用 deflate 算法進行壓縮。其原理主要包括 LZ77 算法以及 Huffman 編碼(哈夫曼編碼)。

LZ77 算法

LZ77 算法是將重復字符串替換為長度距離對來達到壓縮的目的。長度是重復字符串的長度,距離是重復字符串與第一個出現該字符串的距離,下圖是一個簡單的示例:

wKgaomVOOJiAUGSzAAAUUXecyug847.png

在 LZ77 算法中,主要運用了基于滑動窗口的字典壓縮算法。首先是滑動窗口:

wKgZomVOOJmAYqfRAAALlE0EfZw289.png

以上圖為例,一開始,查找區是沒有字符的。滑動窗口從 K 開始移動,依次在查找區嘗試查找當前指向字符及之后字符的最長匹配,直到滑動窗口區不再有字符為止。這里就涉及到另外一個問題了,如何在查找區中快速的找到與滑動窗口中匹配的字符,LZ77 顯然不會采取暴力遍歷查找的方法,通常使用哈希數組來實現字典的快速搜索。在哈希數組中有兩個數組,一個數組用來存放最新重復字符串的哈希地址,一個數組用來解決哈希沖突。具體以下圖為例進行說明:

wKgaomVOOJqAUpPkAAKB7z4YWsI895.png

當第一次掃描 ABC 時,對應數組 1 中 4 號位置為空,因此不用轉化為長度距離對。當第二次掃描到 ABC 時,對應數組 1 中 4 號位置存放的是 1,于是將 4 號位置替換為 6,再將 1 放置在數組 2 中的 6 號位置,此時數組 2 的 6 號位置存放的是 1,對當前字符串后的字符繼續和 1 位置對應字符后的字符繼續進行匹配,記錄最長匹配字符長度。然后在數組 2 中查找 1 號位置,如果為空則結束匹配,最后將匹配到的最長字符替換為長度距離對。

Huffman 編碼

Huffman 編碼的原理是基于哈夫曼樹。哈夫曼樹是一種最優二叉樹,是一種帶權路徑長度最短的二叉樹。

以下是哈夫曼樹的構造過程:

假設有 A、B、C、D、E 五個字母,他們對應出現的次數分別為 5,6,8,12,20

wKgZomVOOJqACtcXAAK-fbZiow4958.png

構造哈夫曼樹的基本流程:將 A、B、C、D、E 看作是只有一個結點的樹,其中出現的次數作為他們的權值。將權值和最小的兩個數進行合并稱為一個新樹,權值較小的樹作為左子樹,權值較大的樹作為右子樹,新樹的根結點權值為兩子樹之和,然后將新樹也加入到樹的集合中,重復上述流程知道又有一棵樹為止。

針對哈夫曼樹編碼,左分支為 0,右分支為 1。可得出 A、B、C、D、E 的編碼如下:

wKgaomVOOJuAVdo9AAAVH5PPyR8818.png

從最后的編碼來看,出現次數最多的 E 的編碼長度比出現次數較少的 A 或 B 要少。最終頻率高的字符會使用較短的編碼,頻率低的字符會使用較長的編碼,總體的編碼長度就會變小,從而達到壓縮的結果。

Gzip 在 Nginx 中的應用

Nginx 作為當下很流行的開源網頁服務器和反向代理服務器,原生支持了 Gzip 的功能。但是在 Nginx 中 Gzip 功能默認是不開啟,需要在配置文件中配置相關指令才可以開啟 Gzip 功能。常見的配置項如下:

wKgZomVOOJuAbgeLAAQ0_ftpfAo173.png

華為云 API網關的 Gzip 功能

華為云API網關(APIG)為企業和開發者提供的高性能、高可用、高安全的云原生網關服務,融合安全、負載均衡、流量入口治理、微服務流量治理、運維等多項能力,也支持 Gzip 壓縮功能。用戶可以通過一鍵式開關控制 Gzip 功能的開啟。同時 APIG 還開放了壓縮等級,用戶可以通過配置不同的壓縮等級,根據自己的需求對 Gzip 功能進行性能調優。當一個客戶端發送一個 HTTP 請求時,需要包含一個 Accept-Encoding 頭部用來指示客戶端支持的壓縮算法。

APIG 會根據 GZIP 開關來判斷是否進行壓縮。在開關開啟的狀態下,APIG 會將響應內容壓縮,然后將壓縮后的響應發送給客戶端(如果客戶端已經進行 Gzip 壓縮,那么 APIG 將不會進行二次壓縮)。客戶端收到響應后,會根據響應頭部的 Content-Encoding 字段判斷是否經過了壓縮。如果響應被壓縮了,客戶端會進行解壓縮,以獲取原始的內容。

可以參考以下步驟打開 Gzip 開關及設置壓縮等級:

打開華為云 APIG 控制臺,依次進入實例管理-->配置參數,在頁面列表中找到參數 gzip 如下:

wKgaomVOOJyAGw8LAABXZy_ZJIc295.png

如上圖,gzip 功能為開啟狀態,且壓縮等級為 6。

此外,APIG 還提供了 Debug 功能用以調試 Gzip 功能。首先依次打開 API 列表,然后點擊創建 API。

wKgZomVOOJyAeoX2AAGQXfX0NVE360.png

在填寫好 API 詳細信息后,在后端配置選項頁面選擇 Mock 后端,并且增加 header 參數-content-length(參數值需要大于等于 1028,否則 gzip 功能將不生效。)

wKgaomVOOJ2ADw3AAAGLWE-ayl0835.png

然后進入 API 的調試界面,在 Headers 中添加參數:Accept-Encoding,對應參數值為 gzip。在響應結果中,如果有 Content-Encoding:gzip出現,即代表 Gzip 功能生效。

wKgZomVOOJ6AWV9wAAMtoVN6byQ970.png

Gzip 自首次發布以來,已經成為互聯網上常用的壓縮格式之一。各種高性能的開源代理如 Nginx、Envoy 等都原生支持 Gzip 的功能。在傳輸速度和降低帶寬消耗方面,Gzip 有著十分強大的優勢,希望本文能幫助到想要了解 Gzip 背后原理及其應用的人。

另外,如果你有更多關于華為云產品的疑問,可掃碼添加華為云專家的聯系方式,咨詢相關問題。

審核編輯 黃宇


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 網關
    +關注

    關注

    9

    文章

    4469

    瀏覽量

    51109
  • API
    API
    +關注

    關注

    2

    文章

    1501

    瀏覽量

    62025
  • 華為云
    +關注

    關注

    3

    文章

    2491

    瀏覽量

    17429
收藏 人收藏

    評論

    相關推薦

    api驅動的服務是什么意思?

    API驅動的服務是指利用API技術來驅動和提供服務的模式。在這種模式下,服務提供商會公開一系列的A
    的頭像 發表于 11-14 10:06 ?192次閱讀

    華為CodeArts API助力企業數字化轉型

    工具顯得尤為重要,它能夠顯著幫助企業提升API的研發與管理效率,華為CodeArts API正是這樣一位助力企業數字化轉型的好幫手。
    的頭像 發表于 11-09 16:07 ?484次閱讀

    工業網關有什么功能和優勢

    的重要工具。 功能 設備連接與通信 工業網關支持多種網絡協議和連接方式,如5G/4G/Wi-Fi/以太網等,能夠將各種工業設備(如PLC、儀器儀表、CNC機床、傳感器等)與平臺無縫
    的頭像 發表于 10-25 14:33 ?155次閱讀

    深入淺出系列之代碼可讀性

    原創聲明:該文章是個人在項目中親歷后的經驗總結和分享,如有搬運需求請注明出處。 這是“深入淺出系列”文章的第一篇,主要記錄和分享程序設計的一些思想和方法論,如果讀者覺得所有受用,還請“一鍵三連
    的頭像 發表于 08-09 16:00 ?265次閱讀

    鋇錸技術BL102 PLC轉MQTT網關:三菱PLC數據高效上傳至華為平臺

    鋇錸技術推出了PLC轉MQTT網關來實現三菱PLC數據的高效采集與上傳至華為平臺,一起來看看。
    的頭像 發表于 07-31 14:48 ?538次閱讀
    鋇錸技術BL102 PLC轉MQTT<b class='flag-5'>網關</b>:三菱PLC數據高效上傳至<b class='flag-5'>華為</b><b class='flag-5'>云</b>平臺

    利用鋇錸Modbus轉MQTT網關實現數據高效上傳至華為平臺

    西門子PLC通常通過Modbus協議進行數據傳輸,但平臺更傾向于使用MQTT等輕量級、高效的數據傳輸協議。為此,鋇錸技術推出了 Modbus轉MQTT網關實現西門子PLC數據的高效采集與上傳至
    的頭像 發表于 07-30 13:53 ?352次閱讀
    利用鋇錸Modbus轉MQTT<b class='flag-5'>網關</b>實現數據高效上傳至<b class='flag-5'>華為</b><b class='flag-5'>云</b>平臺

    鋇錸Modbus轉MQTT網關支持一鍵接入華為

    網關BL100,作為一款高性能、高性價比的物聯網網關,支持Modbus設備接入華為平臺,為工業設備的智能化升級提供了有力支持。 一、BL100網關
    的頭像 發表于 07-29 13:47 ?240次閱讀
    鋇錸Modbus轉MQTT<b class='flag-5'>網關</b>支持一鍵接入<b class='flag-5'>華為</b><b class='flag-5'>云</b>

    IEC104轉MQTT網關支持Zabbix、阿里華為、亞馬遜AWS、ThingsBoard、Ignition

    網關BE113作為這一融合過程中的關鍵設備,其能夠將IEC 104協議的數據轉換為MQTT消息,從而輕松接入Zabbix、阿里華為、亞馬遜AWS、ThingsBoard、Igni
    的頭像 發表于 07-25 16:55 ?599次閱讀
    IEC104轉MQTT<b class='flag-5'>網關</b>支持Zabbix、阿里<b class='flag-5'>云</b>、<b class='flag-5'>華為</b><b class='flag-5'>云</b>、亞馬遜AWS、ThingsBoard、Ignition

    請問ESP是否支持LiteOS+華為IOT+AT的方式?

    我們想使用ESP32 AT模式連接華為IOT平臺,并且ESP32要運行LiteOS,請問現在ESP32支持這個功能
    發表于 07-19 07:32

    是否可以擴展esp_iot_rtos_sdk以具有api功能來進行更新?

    是否可以擴展esp_iot_rtos_sdk以具有 api 功能來進行更新?SDK 編程指南(盡管我認為它不適用于 rtos sdk)表明存在
    發表于 07-15 08:19

    工業網關的作用與功能分享

    一、引言 隨著工業4.0和物聯網(IoT)技術的快速發展,工業網關作為連接工業現場設備與網絡的重要節點,其作用與功能日益凸顯。本文將對工業網關的作用與功能進行詳細的闡述,以期為讀者提供
    的頭像 發表于 06-20 16:05 ?610次閱讀

    深入淺出談TDR阻抗測試

    、脈寬、時序、抖動或噪聲內容的任何事物都會影響整個系統的性能和可靠性。為保證信號完整性,必須了解和控制信號經過的傳輸環境的阻抗。阻抗不匹配和不連續會導致反射,增加系
    的頭像 發表于 06-06 08:28 ?5789次閱讀
    <b class='flag-5'>深入淺出</b>談TDR阻抗測試

    華為發布 CodeArts API,為 API 護航

    華為 CodeArts API 保證了 API 各階段數據高度一致,為開發者提供友好易用的 API 全流程端到端解決方案。
    的頭像 發表于 05-09 23:17 ?537次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>云</b>發布 CodeArts <b class='flag-5'>API</b>,為 <b class='flag-5'>API</b> 護航

    深入淺出了解高邊驅動在汽車應用中的挑戰

    隨著汽車電子技術發展,電動化,輕量化與智能化需求帶動了車規級高邊驅動(High-side Driver, HSD)在車身負載驅動中的大規模應用。
    的頭像 發表于 01-23 10:05 ?5406次閱讀
    <b class='flag-5'>深入淺出了解</b>高邊驅動在汽車應用中的挑戰

    藍牙網關是什么?具有哪些功能

    遠程管理和監控,通過平臺,用戶可以通過手機或網頁界面進行遠程控制和管理,實現智能化管理。 路由功能:藍牙網關具有強大的路由功能,能夠在多個設備之間建立穩定的連接,確保數據的可靠傳輸。
    發表于 01-19 15:05
    主站蜘蛛池模板: 黄色一级片毛片 | 爆操欧美 | www.亚洲天堂 | 午夜久久免影院欧洲 | 久久狠狠色噜噜狠狠狠狠97 | 免费观看色视频 | 欧美黄色一级片视频 | 国产色婷婷精品综合在线观看 | 性欧美性 | 视频高清正版在线观看 | 四虎影库永久在线 | 天天射天天爱天天干 | 777色淫网站女女免费 | 天天爽夜夜爽精品视频一 | 国产精品一区二区三 | 日本在线黄 | 99久久精品久久久久久婷婷 | 亚洲一区二区三区免费观看 | 人人艹人人草 | 中国黄色一级毛片 | 2022第二三四天堂网 | 亚洲阿v天堂2018在线观看 | 伊人小婷婷色香综合缴缴情 | 天天搞天天操 | 午夜高清在线观看免费6 | 美女拍拍拍黄色 | 男女午夜剧场 | 欧美三级一区二区三区 | 国产精品漂亮美女在线观看 | 国产h在线观看 | 久久香蕉国产线看观看精品yw | 色狠狠成人综合网 | 人人干免费| 亚洲狠狠网站色噜噜 | 日韩毛片免费看 | 久久综合九九亚洲一区 | 伊人久久成人 | 欧美天天视频 | 国产成人精品免费视频大全可播放的 | 94在线 | 亚洲欧美精品一区二区 |