91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

深入淺出了解華為云 API 網(wǎng)關的 Gzip 功能

jf_94205927 ? 來源:jf_94205927 ? 作者:jf_94205927 ? 2023-11-12 17:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Gzip 是什么

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

Gzip 使用場景

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

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

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

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

網(wǎng)絡傳輸限制:在網(wǎng)絡帶寬受限的環(huán)境下,使用Gzip可以減小數(shù)據(jù)傳輸量,提升網(wǎng)絡性能。

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

Gzip 原理

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

LZ77 算法

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

wKgaomVOOJiAUGSzAAAUUXecyug847.png

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

wKgZomVOOJmAYqfRAAALlE0EfZw289.png

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

wKgaomVOOJqAUpPkAAKB7z4YWsI895.png

當?shù)谝淮螔呙?ABC 時,對應數(shù)組 1 中 4 號位置為空,因此不用轉(zhuǎn)化為長度距離對。當?shù)诙螔呙璧?ABC 時,對應數(shù)組 1 中 4 號位置存放的是 1,于是將 4 號位置替換為 6,再將 1 放置在數(shù)組 2 中的 6 號位置,此時數(shù)組 2 的 6 號位置存放的是 1,對當前字符串后的字符繼續(xù)和 1 位置對應字符后的字符繼續(xù)進行匹配,記錄最長匹配字符長度。然后在數(shù)組 2 中查找 1 號位置,如果為空則結束匹配,最后將匹配到的最長字符替換為長度距離對。

Huffman 編碼

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

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

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

wKgZomVOOJqACtcXAAK-fbZiow4958.png

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

針對哈夫曼樹編碼,左分支為 0,右分支為 1??傻贸?A、B、C、D、E 的編碼如下:

wKgaomVOOJuAVdo9AAAVH5PPyR8818.png

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

Gzip 在 Nginx 中的應用

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

wKgZomVOOJuAbgeLAAQ0_ftpfAo173.png

華為云 API網(wǎng)關的 Gzip 功能

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

APIG 會根據(jù) GZIP 開關來判斷是否進行壓縮。在開關開啟的狀態(tài)下,APIG 會將響應內(nèi)容壓縮,然后將壓縮后的響應發(fā)送給客戶端(如果客戶端已經(jīng)進行 Gzip 壓縮,那么 APIG 將不會進行二次壓縮)??蛻舳耸盏巾憫螅瑫鶕?jù)響應頭部的 Content-Encoding 字段判斷是否經(jīng)過了壓縮。如果響應被壓縮了,客戶端會進行解壓縮,以獲取原始的內(nèi)容。

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

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

wKgaomVOOJyAGw8LAABXZy_ZJIc295.png

如上圖,gzip 功能為開啟狀態(tài),且壓縮等級為 6。

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

wKgZomVOOJyAeoX2AAGQXfX0NVE360.png

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

wKgaomVOOJ2ADw3AAAGLWE-ayl0835.png

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

wKgZomVOOJ6AWV9wAAMtoVN6byQ970.png

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

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

審核編輯 黃宇


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

    關注

    9

    文章

    6798

    瀏覽量

    56287
  • API
    API
    +關注

    關注

    2

    文章

    2376

    瀏覽量

    66806
  • 華為云
    +關注

    關注

    3

    文章

    2832

    瀏覽量

    19264
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Nginx Gzip壓縮配置指南

    說起Gzip壓縮,可能很多人覺得這是個老生常談的話題。但我在這幾年的運維工作中發(fā)現(xiàn),真正把Gzip配置到位的網(wǎng)站其實不多。去年幫一個客戶做性能優(yōu)化,他們的網(wǎng)站日均帶寬消耗在2TB左右,一看Nginx
    的頭像 發(fā)表于 01-30 16:03 ?280次閱讀

    深入淺出:SN65LVDSxxx高速差分線驅(qū)動與接收器解析

    深入淺出:SN65LVDSxxx高速差分線驅(qū)動與接收器解析 在高速數(shù)據(jù)傳輸?shù)念I域中,低電壓差分信號(LVDS)技術以其低功耗、高速度和抗干擾能力強等優(yōu)勢,成為了眾多電子工程師的首選。德州儀器(TI
    的頭像 發(fā)表于 01-15 15:30 ?231次閱讀

    1688價格API:批量報價功能,談判優(yōu)勢!

    。本文將深入解析該API的技術細節(jié)、功能實現(xiàn)及其在商業(yè)談判中的應用價值。 一、1688價格API概述 1688價格API是基于RESTful
    的頭像 發(fā)表于 01-09 15:04 ?286次閱讀
    1688價格<b class='flag-5'>API</b>:批量報價<b class='flag-5'>功能</b>,談判優(yōu)勢!

    工業(yè)MQTT上網(wǎng)關有哪些應用場景

    場景描述 :在智能制造、能源管理等領域,大量分散的工業(yè)設備(如PLC、傳感器、數(shù)控機床)需實時數(shù)據(jù)采集與遠程監(jiān)控。 網(wǎng)關作用 :通過MQTT協(xié)議,網(wǎng)關將設備數(shù)據(jù)高效上傳至平臺(如阿里
    的頭像 發(fā)表于 11-27 11:22 ?499次閱讀

    淘寶平臺 API功能及應用場景

    到營銷推廣、物流跟蹤等電商運營的核心環(huán)節(jié)。下面我們將深入探討淘寶平臺 API 的主要功能模塊及其典型的應用場景。 一、 核心功能模塊 商品 API
    的頭像 發(fā)表于 11-24 15:23 ?425次閱讀
    淘寶平臺 <b class='flag-5'>API</b> 的<b class='flag-5'>功能</b>及應用場景

    教你如何使用API

    一、了解API API(Application Programming Interface)即應用程序編程接口,是一種使不同的應用程序能共享數(shù)據(jù)和功能的軟件工具。
    的頭像 發(fā)表于 11-09 17:48 ?1324次閱讀

    深入了解API:詳解應用程序接口的作用和原理

    都是不可或缺的組成部分。本文將深入探討API的作用和原理,幫助讀者更好地理解和應用API。 淘寶/天貓獲得淘寶商品詳情 API 返回值說明 公共參數(shù) ??前往測試?? 名稱 類型 必須
    的頭像 發(fā)表于 11-03 09:37 ?366次閱讀

    教你如何使用API接口獲取數(shù)據(jù)!

    一、了解API API(Application Programming Interface)即應用程序編程接口,是一種使不同的應用程序能共享數(shù)據(jù)和功能的軟件工具。
    的頭像 發(fā)表于 11-03 09:14 ?602次閱讀

    深度解析淘寶API接口:功能、限制與最佳實踐

    在當今日益繁榮的電商領域,淘寶作為中國最大的電子商務平臺之一,其API接口為開發(fā)者提供了豐富的功能和數(shù)據(jù)資源。本文將深入解析淘寶API接口的功能
    的頭像 發(fā)表于 10-20 13:48 ?438次閱讀

    工業(yè)數(shù)據(jù)采集網(wǎng)關API接口能夠?qū)幽男┢脚_系統(tǒng)

    從數(shù)據(jù)匯聚、生產(chǎn)管理到?jīng)Q策分析的全鏈路需求,具體可分為以下幾大類別: 1.工業(yè)物聯(lián)網(wǎng)(IIoT)平臺 這類平臺是工業(yè)數(shù)據(jù)的核心匯聚與處理中心,網(wǎng)關通過標準API(如RESTfulAPI、MQTTAPI等)實現(xiàn)數(shù)據(jù)實時上傳與雙向
    的頭像 發(fā)表于 09-17 11:05 ?700次閱讀
    工業(yè)數(shù)據(jù)采集<b class='flag-5'>網(wǎng)關</b>的<b class='flag-5'>API</b>接口能夠?qū)幽男┢脚_系統(tǒng)

    SIP 廣播對講與華為視頻會議融合解決方案

    對講終端與視頻會議終端接入同一網(wǎng)絡,由統(tǒng)一的管理平臺進行管理,實現(xiàn)功能聯(lián)動。 系統(tǒng)架構 : 控制層 :可在阿里華為部署 SIP 集群
    發(fā)表于 07-12 10:57

    藍牙網(wǎng)關選擇的方法

    ? · 支持集中管理平臺(如AC Server)的網(wǎng)關可批量配置參數(shù),提升運維效率。 · 開放API接口(300+)和SDK支持二次開發(fā),便于與第三方系統(tǒng)(如阿里、AWS IoT)集成。 ?安全與過濾
    發(fā)表于 04-21 16:25

    潤和的Hi3861開發(fā)版如何連接華為

    剛入手了一套潤和的Hi3861開發(fā)套件,下載的是3.2Release版本的源碼,想連接華為但是潤和那邊的代碼倉中沒有相關的demo,,求大佬指點
    發(fā)表于 04-11 20:32

    潤和的Hi3861開發(fā)板如何連接華為

    剛入手了一套潤和的Hi3861開發(fā)套件,想連接華為但是潤和那邊的代碼倉中沒有相關的demo,求大佬指點
    發(fā)表于 04-11 20:30

    深入淺出解析低功耗藍牙協(xié)議棧

    深入Bluetooth LE協(xié)議棧各個組成部分之前,我們先看一下Bluetooth LE協(xié)議棧整體架構。 如上圖所述,要實現(xiàn)一個Bluetooth LE應用,首先需要一個支持Bluetooth
    的頭像 發(fā)表于 04-09 14:49 ?1312次閱讀
    <b class='flag-5'>深入淺出</b>解析低功耗藍牙協(xié)議棧