본문 바로가기

IT 살이/04. 기술 - 프로그래밍

HTTP1.1 압축 이해하기

■ 웹 어플리케이션 압축에 사용
ASP.NET2.0 어플리케이션을 개발할때 대용량 데이터에 대한 압축이 필요가 경우가 있다. 다음 링크는 이런 경우 참조할 수 있는 페이지이다.
Compression Support in ASP.NET2.0 (http://www.microsoft.com/belux/msdn/nl/community/columns/desmet/compression.mspx#Implementing%20a%20compression%20HttpModule)
압축은 IIS 웹 서버 설정을 통해서도 가능하지만 이렇게 하면 가상 디렉토리별로 압축 설정을 할 수 없다. IIS설정을 이용하면 해당 IIS에 설치된 전체 어플리케이션에 대해서 압축이 수행된다는 것이 단점이다.
디렉토리별로 압축이 가능하게 하려면 직접 압축 모듈을 작성해야 한다. 그러나 어렵지는 않다. HttpModule을 제작 방법을 이용하면 쉽게 압축 모듈을 추가할 수 있다. 이런 방식으로 작성한 압축 모듈은 클라이어언트 브라우저가 HTTP1.1을 지원하고 있어야 한다. 이런 자세한 이야기와 구현의 구체적인 방법은 링크 페이지를 보면 자세히 나와 있다.

■ 웹 서비스 압축에 사용
Web Service 어플리케이션에서 압축을 사용하려면 추가로 고려해야 하는 문제들이 있다. WSDL이 생성하는 프락시는 압축을 모른다는 것이다. 그래서 클라이언트가 압축 데이터를 받아들일 준비가 되었다는 적절한 헤더값을 서버로 보내지도 않고, 서버측으로부터 오는 압축 표시를 알아보지도 못한다는 것이다.  이런 문제들을 다음 링크 페이지에서 해결하고 있다.
Retrieving Data from Web Services using Standard HTTP 1.1 Compression
(http://dotnetjunkies.com/Tutorial/90D3B3E0-6544-4594-B3BA-E41D8F381324.dcik)

웹 서비스의 메세지 압축은 .NET 프레임워크에서 제공하는 압축 클래스와 SoapExtension을 이용해서도 간단히 구현할 수 있다. 이에 대해서는 추후 포스트가 있을 것이다.