<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          .NET Core 系列之 WebAPI 響應(yīng)壓縮

          共 1681字,需瀏覽 4分鐘

           ·

          2022-06-28 16:27


          一、介紹

          背景目前在開發(fā)一個(gè)爬蟲框架,使用了.NET Core WebAPI接口作為爬蟲調(diào)用入口,在調(diào)用 WebAPI時(shí)發(fā)現(xiàn)爬蟲耗時(shí)很短(1秒左右),但客戶端獲取響應(yīng)時(shí)間卻在3~4秒。對(duì)于這個(gè)問題考慮使用響應(yīng)壓縮技術(shù)。

          網(wǎng)絡(luò)帶寬是一種有限資源。減小響應(yīng)大小通常可顯著提高應(yīng)用的響應(yīng)速度。減小有效負(fù)載大小的一種方式是壓縮應(yīng)用的響應(yīng)。

          在 IIS、Apache 或 Nginx 中是使用基于服務(wù)器的響應(yīng)壓縮技術(shù)??紤]到動(dòng)態(tài)壓縮以及減少服務(wù)器的配置,這里介紹.NET Core中間件來實(shí)現(xiàn)響應(yīng)壓縮。

          壓縮的事項(xiàng):

          1、能夠壓縮的包括:CSS、JavaScript、HTML、XML 和 JSON。

          2、對(duì)圖片等資產(chǎn)不會(huì)壓縮,因?yàn)閴嚎s的字節(jié)只會(huì)小幅減少,而被處理壓縮所花費(fèi)的時(shí)間所掩蓋。

          3、不要壓縮小于約 150-1000 字節(jié)的文件。

          4、客戶端請(qǐng)求時(shí)通過Accept-Encoding來指定壓縮類型,中間件支持二種常用的壓縮類型如下:

          Accept-Encoding: br,gzip
          --br是指Brotli 壓縮格式,默認(rèn)的壓縮方式。
          --gzip是指Gzip壓縮格式。

          5、中間件為壓縮指定一組默認(rèn)的 MIME 類型:

          application/javascript application/json application/xml text/css text/html text/json text/plain text/xml

          具體介紹看官方文檔:https://docs.microsoft.com/zh-cn/aspnet/core/performance/response-compression?view=aspnetcore-5.0

          二、配置壓縮中間件

          使用壓縮中間件很簡(jiǎn)單,代碼如下:

          public class Startup
          {
              public void ConfigureServices(IServiceCollection services)
              {
                  services.AddResponseCompression();
              }

              public void Configure(IApplicationBuilder app, IHostingEnvironment env)
              {
                  app.UseResponseCompression();
              }
          }

          三、演示

          客戶端請(qǐng)求可以是Postman,Fiddler, RestSharp等,下面使用RestSharp來請(qǐng)求爬蟲接口獲取數(shù)據(jù),默認(rèn)RestSharp請(qǐng)求頭帶了Accept-Encoding: gzip, deflate

          3.1、未使用響應(yīng)壓縮技術(shù),請(qǐng)求使用fiddler監(jiān)聽

          1、請(qǐng)求頭statistics選項(xiàng)卡中,接口耗時(shí)4.822秒

          2、響應(yīng)Transformer選項(xiàng)卡中,響應(yīng)字節(jié)572,839

          3、響應(yīng)TextView能直接看到明文

          3.2、使用響應(yīng)壓縮技術(shù),請(qǐng)求使用fiddler監(jiān)聽

          1、請(qǐng)求頭statistics選項(xiàng)卡中,接口耗時(shí)1.182秒

          2、響應(yīng)Transformer選項(xiàng)卡中,響應(yīng)字節(jié)98,930

          3、響應(yīng)TextView選項(xiàng)卡中,不能直接看到明文

          4、響應(yīng)Headers選項(xiàng)卡中,Content-Encoding:gzip

          轉(zhuǎn)自:花陰偷移

          鏈接:cnblogs.com/MrHSR/p/16334266.html

          瀏覽 34
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人大骚逼网 | 女人精品在线 | 日韩黄色在线 | 能看的三级网站 | 成人黄片网站 |