티스토리 뷰

HTTP 통신상에서 오고가는 데이터들을 Gzip 방식을 적용해서 데이터의 크기를 압축하여 주고받을 수 잇습니다. 

전송되는 스크립트파일, API메소드들 모두 용량이 확 줄어 들겠죠?


Gzip 이란 국제표준으로 등록된 압축표준으로서 HTTP 헤더에 Acceept-Encoding 속성을 이용하여 전달합니다.



기본적으로 IIS는 Gzip 압축을 적용하지 않기때문에 직접 수정해줘야 합니다.

물론 IIS 속성에 들어가서 이것 저것 바꾸지 않고 코드만으로!! 적용하는 방법에 대해서 알아보겠습니다.


적용대상 : HTML / Javascript /  WebAPI Method


1. HTML / Javascript 파일에 GZIP 압축적용

Web.Config 에 configuration 엘리먼트 안에 아래 staticContent 속성을 추가합니다.

   1:  <system.webServer>
   2:      <staticContent>
   3:        <remove fileExtension=".js" />
   4:        <mimeMap fileExtension=".js" mimeType="text/javascript" />
   5:      </staticContent>
   6:  </system.webServer>

 - Gzip 압축 적용전

jquery 스크립트 파일의 크기가 84,245 byte의 크기로 전달됨



 - Gzip 압축 적용후

jquery 스크립트 파일의 크기가 37,695 byte의 크기로 전달됨


파일의 크기가 크고 갯수가 많아지면 압축을 하고,안하고의 차이가 웹페이지 성능에 영향을 줄 수 있습니다.


2. WebAPI Method 에 Gzip 적용

Global.asax 파일의 Application_BeginRequest 함수에 아래 내용을 추가합니다.

 1:     protected void Application_BeginRequest(object sender, EventArgs e)
   2:          {
   3:              HttpContext context = HttpContext.Current;
   4:              context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
   5:              HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip");
   6:              HttpContext.Current.Response.Cache.VaryByHeaders["Accept-encoding"] = true;
   7:          }


- Gzip 압축 적용전

1,962 Byte 의 데이터를를 전달합니다.



- Gzip 압축 적용후

1,962 Byte 의 데이터가 496 byte로 압축되어 전달됩니다..




Response Headers 의 Transport 속성을 보면 gzip 형식으로 압축된것을 볼수 있습니다.


웹사이트의 성능을 조금더 높이기위해서 gzip 형식의 압축방식을 사용하여 데이터를 전달해보세요~~


웹API, WebAPI, gzip, 성능, 웹사이트 성능, perfomence, 웹사이트튜닝, ASP.NET


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함