이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하면 다음과 같다.
도 1은 본 발명에 의한 프록시 서버를 이용한 이동통신 단말기의 웹 브라우저 시스템의 블록도로서 이에 도시한 바와 같이, 이동통신 단말기(110), 프록시 서버(120) 및 웹 서버(130)로 구성된다.
먼저, 사용자가 이동통신 단말기(110)의 웹 브라우저 상에서 접근하고자 하는 웹 주소를 입력하면, 이는 무선 네트워크와 인터넷을 통해 프록시 서버(120)에 전달된다.
프록시 서버(120)는 상기 이동통신 단말기(110)로부터 웹 주소를 전달 받아 해당 주소의 웹 서버(130)에 해당 웹 페이지의 접근 명령을 전송한다. 상기 접근 명령은 HTTP 프로토콜을 따르는 명령이다.
웹 서버(130)는 상기 프록시 서버(120)로부터 전송받은 접근 명령에 대응하여 HTML, CSS(CSS: Cascading Style Sheet), 자바스크립트, 이미지 파일 등의 웹 페이지를 구성하는 파일을 그 프록시 서버(120)에 전송한다.
프록시 서버(120)는 상기 웹 서버(130)로부터 HTML, CSS, 자바스크립트, 이미지 파일 등을 전송받아 HTML 문법 인식 바이너리 인코딩, CSS 문법 인식 바이너리 인코딩, 자바스크립트 바이트코드 생성, 이미지 화질 변환 기능을 수행한다. 이후, 상기 프록시 서버(120)는 상기 변환된 내용을 무선 네트워크를 통해 상기 이동통신 단말기(110)에 전달한다.
이 때, 상기 HTML, CSS, 이미지 파일은 상기 프록시 서버(120)에서 변환되는 도중 연속적으로 상기 이동통신 단말기(110)에 전달될 수 있다. 따라서, 상기 이동통신 단말기(110)는 상기 HTML, CSS, 이미지 파일의 변환 도중의 데이터를 받아서 처리할 수 있으므로 그만큼 웹 브라우저의 처리시간이 줄어든다.
이동통신 단말기(110)의 웹 브라우저는 상기 프록시 서버(120)로부터 전송받은 HTML, CSS 바이너리 파일에 대해서는 디코딩, 파싱, 렌더링을 수행하고, 전송받은 이미지 파일에 대해서는 이미지 처리(엔진) 및 렌더링을 수행하며, 전송받은 자바스크립트 바이트 코드는 자바스크립트 바이트코드 실행 엔진을 통해 실행하며, 이미지 파일은 이미지 파일 디코딩 엔진을 통해 실행한다. 이와 같이 처리된 결과들이 이동통신 단말기(110)의 디스플레이장치에 디스플레이된다.
바람직하게, 상기 웹 서버(130)와 프록시 서버(120)를 연결하는 네트워크는 유선의 광대역폭을 가지는 전송속도가 매우 빠른 네트워크이고, 프록시 서버(120)와 이동통신 단말기(110)를 연결하는 네트워크는 상대적으로 전송속도가 느린 이동통신, 와이파이, 무선랜 등의 무선 네트워크이다.
그런데, 상기 프록시 서버(120)는 HTML, CSS, 이미지, 자바스크립트 파일 등의 웹 페이지 구성 요소들을 원래 보다 적은 용량의 파일로 변환하여 대역폭이 좁은 무선 네트워크를 통해 이동통신 단말기(110)에 전송한다. 이에 따라, 실질적으로 상기 무선 네트워크의 대역폭을 확장하는 것과 같은 효과를 얻을 수 있게 된다.
예를 들어, 한국에서 가장 많은 사람들이 접속하는 웹 사이트 중 하나인 네이버 웹 사이트 “http://www.naver.com”의 경우 웹 브라우저에서 가지고 오는 파일의 전체 용량은 약 1MB 정도이다. 상기 1MB의 파일은 약 200KB의 HTML, 약 50KB의 CSS, 약 250KB의 자바스크립트, 약 500KB의 이미지 파일들로 구성된다.
상기 프록시 서버(120)는 상기 HTML과 CSS 각각의 문법을 인식하여 바이너리 형태의 파일로 인코딩하게 되는데, 이에 의해 파일의 용량이 원래의 1/4 수준으로 줄어든다. 상기 프록시 서버(120)는 상기 자바스크립트를 해석하여 그에 따른 바이트코드를 생성하게 되는데, 이에 의해 원래 자바스크립트 파일의 용량이 1/4 수준으로 줄어든다. 상기 프록시 서버(120)는 상기 이미지 파일의 화질을 낮춰 이의 용량이 원래에 비하여 1/4 수준으로 줄어든다.
이렇게 함으로써, 상기 프록시 서버(120)에 전송된 1MB의 파일이 1/4 수준인 250KB로 변환되어 이동통신 단말기(110)에 전달된다.
상기 이동통신 단말기(110)가 1Mbps 무선 대역폭의 네트워크를 사용하는 경우, 1MB의 파일을 그 이동통신 단말기(110)에 전달하는데 종래에는 8초가 소요되었다.
이에 비하여 상기 프록시 서버(120) 및 상기 네트워크를 통해 상기 이동통신 단말기(110)에 상기 1MB의 파일을 전달하는 경우, 상기와 같은 과정을 통해 파일의 용량이 250KB로 줄어들고, 전달시간 또한 원래의 1/4인 2초로 줄어든다.
따라서, 실질적으로 무선 대역폭이 4배로 향상된 것과 동일한 효과를 얻게 된다. 이로 인하여, 상기 이동통신 단말기(110) 상의 웹 브라우저의 처리 속도가 그만큼 향상된다.
또한, 상기 이동통신 단말기(110)의 웹 브라우저는 상기 프록시 서버(120)에서 상기와 같이 처리된 웹 콘텐츠 파일들을 처리하게 되므로, 다음과 같은 이유로 인하여 처리속도가 향상된다.
상기 웹 브라우저는 HTML, CSS 파일에 대하여 문법 인식 기반의 바이너리 인코딩 방식을 사용하므로, 종래와 같이 HTML, CSS 파일의 문법을 인식하는 기능을 수행할 필요가 없다. 자바 스크립트 경우 이미 프록시 서버(120)에서 해석되어 바이트코드 형태로 그 웹 브라우저에 전달되므로, 이동통신 단말기(110)에서 해석할 필요없이 바로 실행할 수 있다. 이미지파일은 화질이 감소되어 이동통신 단말기(110)에 전달되므로 이미지 파일 디코딩 엔진의 처리속도가 향상된다.
일반적으로, 프록시 서버(120)는 이동통신 단말기(110)에 비하여 성능이 매우 우수한 중앙처리장치를 구비한다. 이를 감안하여 프록시 서버(120)에서 문법 해석 등의 기능을 수행하도록 함으로써, 이동통신 단말기(110)의 웹 브라우저가 부담해야 할 부하량이 그만큼 줄어들게 된다.
종래의 웹뷰(WebView)와 같은 정보 처리 방식에서는 웹 브라우저의 모든 내부 기능을 프록시 서버에서 수행하여 결과만 이동통신 단말기에 전송하게 되어 있다. 따라서, 동영상을 정상적인 속도로 재생하는데 어려움이 있고, AJAX(Asynchoronous JavaSrcipt and XML)를 사용한 웹 응용 프로그램에 접근시 반응 시간이 증가하는 등의 치명적인 결함을 가진다. 이에 비하여, 본 발명에 따른 문법 인식 바이너리 인코딩의 프록시 방식에서는 문법 해석 및 파일 변환만 프록시 서버(120)에서 수행하고 나머지 모든 브라우저 기능을 이동통신 단말기(110)에서 수행하므로, 동영생 재생 및 AJAX를 사용한 웹 응용 프로그램 접근의 문제를 가지지 않는다.
도 2는 상기 이동통신 단말기(110)에서의 웹 브라우저의 상세 블록도로서 이에 도시한 바와 같이, HTML 바이너리 디코더(211) 및 HTML 파싱부(212), CSS 바이너리 디코더(221) 및 CSS 파싱부(222), 자바스크립트 바이트코드 실행 엔진(231), 이미지 파일 디코딩 엔진(241), 렌더링부(251)로 구성된다.
상기 이동통신 단말기(110)가 무선 네트워크를 통해 상기 프록시 서버(120)로부터 전송받은 HTML 바이너리, CSS 바이너리, 자바스크립트 바이트코드, 이미지 파일 등은 해당 블록에 의해 아래의 설명에서와 같이 처리된다.
HTML 바이너리 디코더(211)는 문법 인식 인코딩된 HTML 바이너리를 디코딩하여 본래의 HTML로 복원한다. HTML 파싱부(212)는 상기 복원된 HTML을 렌더링 처리에 적당하도록 파싱한다.
CSS 바이너리 디코더(221)는 상기 문법 인식 인코딩된 CSS 바이너리를 디코딩하여 본래의 CSS로 복원한다. CSS 파싱부(222)는 상기 복원된 CSS를 렌더링 처리에 적당하도록 파싱한다.
자바스크립트 바이트코드 실행 엔진(231)은 상기 자바스크립트 바이트코드를 전달받아 이를 실행한다.
이미지 파일 디코딩 엔진(241)은 상기 이미지 파일을 전달받아 이를 실행한다.
렌더링부(251)는 상기와 같이 실행된 HTML, CSS, 자바스크립트, 이미지 파일을 렌더링하여 이동통신 단말기(110) 내의 표시장치에 출력한다.
여기서, 상기 HTML 바이너리 디코더(211)는 상기 프록시 서버(120)에서 수행된 HTML 문법 인식 바이너리 인코딩의 반대 기능을 수행하게 되는데, HTML에 대한 문법 해석이 이미 그 프록시 서버(120)에서 수행되었으므로 렉싱(Lexing)이라고 하는 문법 해석을 생략할 수 있다.
그러나, 통상적으로 문법 해석 및 파싱이 하나의 블럭에서 구현되므로 구현의 편이성을 고려하면, 본래의 HTML을 복원하여 렉싱을 파싱과 함께 수행할 수도 있다.
이와 마찬가지로, 상기 CSS 바이너리 디코더(221)는 상기 HTML 바이너리 디코더(211)와 같은 방식으로 렉싱을 수행할 것인지의 여부를 선택적으로 결정할 수 있다.
도 3은 상기 프록시 서버(120)에서 HTML 소스를 문법 인식 기반으로 바이너리 인코딩을 수행하는 것에 대한 블록도로서 이에 도시한 바와 같이, 데이터 타입 인식 인코더(311), 태그 인식 인코더(321), 유사 URI 수집부(331) 및 파일 압축기(332), 파일 압축기(341), 수집 및 스트리밍 출력부(351)로 구성된다.
프록시 서버(120)에 입력되는 HTML 소스는 데이터 타입, 태그, URI, 콘텐츠로 이루어지며, 이들 각각은 프록시 서버(120) 내부에서 각각의 특성에 맞게 인코딩되어 수집된다. 상기 수집된 데이터는 이동통신 단말기(110)로의 빠른 전달을 위해 스트리밍 방식으로 전송될 수 있다.
데이터 타입 인식 인코더(311)는 상기 입력되는 HTML 소스에서의 데이터 타입을 인식하여 바이너리 코드로 인코딩한다.
태그 인식 인코더(321)는 상기 입력되는 HTML 소스에서의 태그를 인식하여 바이너리 코드로 인코딩한다.
유사 URI 수집부(331)는 상기 입력되는 HTML 소스에서 유사한 URI(URI: Uniform Resource Identifier)를 수집한다. 파일 압축기(332)는 상기 유사 URI 수집부(331)에 의해 수집되어 전달된 URI를 압축율이 높은 GZip 등의 파일 압축기로 압축하여 바이너리 코드로 출력한다.
파일 압축기(341)는 상기 입력되는 HTML 소스 중 콘텐츠 데이터를 GZip 등의 일반 파일 압축기로 압축하여 바이너리 코드로 출력한다.
수집 및 스트리밍 출력부(351)는 상기 각부를 통해 바이너리 코드로 출력되는 각 정보들을 수집하여 스트리밍 형태의 HTML 바이너리 코드를 출력한다.
한편, 상기 프록시 서버(120)에서의 인코딩 알고리즘에 대해 예제를 통해 좀 더 자세히 설명하면 다음과 같다.
데이터 타입은 HTML 소스 내의 숫자, 색깔 정보 등을 나타내는 데이터이다. 상기 데이터 타입을 인코딩하여 바이너리로 압축하게 되는데, 이는 캐릭터로 표현된 숫자를 정수로 바꾸어 데이터의 양을 줄이기 위한 방법이다. 예를 들면, 이미지의 넓이를 나타내는 폭 width=”100”인 경우 “100”은 5개의 캐릭터를 가지므로 5Byte 정보이다. 그런데, 100은 정수로 표현하면 1Byte 정보로 변환 되므로 5Byte 데이터를 1Byte 데이터로 변환할 수 있게 된다. 이와 같은 경우, 상기 캐릭터로 표현된 숫자 크기에 맞추어 표현하기 위해 필요로 하는 바이트 양을 할당해 두어야 한다.
상기 HTML 태그에 대한 인코딩 방법으로써, 선행된 태그에 따라 후속되는 태그가 정해지는 것을 이용하여 인코딩 하는 방법을 사용한다. 예를 들면,
<ul>
<li>
경우 태그 <ul> 후속으로는 <li>, </li>, </ul> 세 개의 태그 만이 올 수 있다. 따라서 <ul> 후속에 대해 2bit만으로 코딩할 수 있으므로 <li>를 나타내기 위한 4byte를 2bit로 줄일 수 있다. 이와 달리 후속하는 태그가 많이 나올 수 있는 경우, 후속하는 태그가 나올 수 있는 확률은 여러 웹 페이지 분석을 통해 미리 어느 정도 알 수 있으므로 많이 나오는 태그에 대해 짧은 비트를 지정하고 많이 나오지 않는 태그에 대해서는 긴 비트를 지정하는 방식을 적용함으로써, 태그를 나타내기 위한 데이터양을 줄일 수 있게 된다.
URL/URN를 나타내는 URI는 주로 이미지 파일 등을 가지고 있는 외부 자원 주소를 나타낸다. 이동통신 단말기(110)가 웹 서버(130)로부터 이미지 파일을 가져올 때 주로 유사한 주소를 갖는 웹 서버들로부터 가져오게 된다. 예를 들어, “http:www.naver.com” 의 HTML 의 URI 정보를 살펴보면,
http://www.naver.com/image/a.jpg
http://www.naver.com/image/b.jpg
http://www.naver.com/image/c.jpg
와 같이 대부분의 주소 정보가 유사한 특성을 가지게 된다. 그런데, 상기 http://www.naver.com 같은 포털 사이트의 경우 외부 자원을 상당히 많이 가져 오므로 상기와 같은 URI 데이터양이 많다는 특징을 갖는다.
본 발명에서는 이를 감안하여 상기 설명에서와 같이, 유사 URI 수집부(331)로 하여금 유사한 URI를 수집하도록 하였다. 그리고, 파일 압축기(332)로 하여금 상기 유사 URI 수집부(331)에 의해 수집되어 전달된 URI를 Gzip 등의 압축율이 높은 파일 압축기(332)로 압축하여 바이너리 코드로 출력하도록 하였다. 이에 따라, URI에 대해 압축률이 높은 바이너리를 얻을 수 있게 된다. 특히, 유사한 URI가 많을수록 압축률이 높은 Gzip을 통해 압축율이 높은 바이너리를 얻을 수 있게 된다.
도 4는 상기 프록시 서버(120)에서 CSS 소스를 문법 인식 기반으로 바이너리 인코딩을 수행하는 것에 대한 블록도로서 이에 도시한 바와 같이, 데이터 타입 인식 인코더(411), 블록 인식 인코더(421), 유사 URI 수집부(431) 및 파일 압축기(432), 수집 및 스트리밍 출력부(441)로 구성된다.
데이터 타입 인식 인코더(411)는 상기 웹 서버(130)로부터 입력되는 CSS 내의 데이터타입을 인식하여 바이너리 코드로 인코딩한다.
블록 인식 인코더(421)는 상기 웹 서버(130)로부터 입력되는 CSS 내의 스크립트 블록을 인식하여 바이너리 코드로 인코딩한다.
유사 URI 수집부(431)는 상기 웹 서버(130)로부터 입력되는 CSS 내의 유사 URI를 수집한다. 파일 압축기(432)는 상기 유사 URI 수집부(431)에 의해 수집되어 전달된 URI를 일반 파일 압축기로 압축하여 바이너리 코드로 출력한다.
수집 및 스트리밍 출력부(441)는 상기 각부를 통해 바이너리 코드로 출력되는 각 정보들을 수집하여 스트리밍 형태의 CSS 바이너리 코드를 출력한다.
도 4의 CSS 문법 인식 바이너리 인코딩 구조는 상기 도 3의 HTML 소스를 문법 인식 기반으로 바이너리 인코딩하는 구조와 비교해 볼 때 문법이 다른점과 콘텐츠가 없는 점을 제외하면 서로 유사하다.
HTML, CSS, 자바스크립트, 이미지 파일 이외의 플래쉬 등의 파일은 상기 프록시 서버(120)에서 변형없이 그대로 상기 이동통신 단말기(110)에 전송하거나 통상의 파일 압축기를 통해 압축하여 전송한다. 이에 대하여, 상기 이동통신 단말기(110)의 웹 브라우저에서는 상기 전송된 해당 파일을 전달받아 처리한다.
한편, 도 5는 본 발명의 다른 실시예인 프록시 서버를 이용한 단말기 웹 브라우저의 프리페칭 블록도로서 이에 도시한 바와 같이, 이동통신 단말기(510), 프록시 서버(520), 웹 서버(530)로 구성된다.
이동통신 단말기(510)는 웹 브라우저(511)를 내장하고, 무선 네트워크를 통해 프록시 서버(520)와 연결된다.
프록시 서버(520)는 프리페칭 모듈(521)을 내장하고 광대역 유선 네트워크를 통해 웹 서버(530)와 연결된다.
웹 서버(530)는 웹 페이지 등의 콘텐츠를 내장한다.
프록시 서버(520)는 상기 이동통신 단말기(510)로부터 웹 주소를 전달 받아 해당 주소의 웹 서버(530)에 웹 페이지 접근 명령을 전송한다. 이에 대응하여, 상기 웹 서버(530)는 해당 웹 페이지의 메인 HTML 파일을 프록시 서버(520)에 전송한다. 이에 따라, 상기 프록시 서버(520)는 상기 메인 HTML 파일을 전송받아 이를 이동통신 단말기(510)의 웹 브라우저(511)에 전송한다. 또한, 상기 프록시 서버(520)는 상기 메인 HTML 파일을 분석하여 링크된 파일을 전송받을 수 있도록 웹 서버(530)에 해당 명령을 전송한다. 이에 대하여, 상기 웹 서버(530)는 상기 링크 된 파일을 프록시 서버(520)에 전송하고, 프록시 서버(520)는 즉시 그 파일을 이동통신 단말기(510)에 전달하여 웹 브라우저(511)가 처리할 수 있도록 한다.
상기 프록시 서버(520)에서의 프리페칭은 캐싱 및 압축과 연동된다. 상기 웹 서버(530)로부터 전송받은 파일들을 프록시 서버(520)에서 캐싱할 수 있다. 따라서, 웹 브라우저(511)가 프록시 서버(520)에 이전에 요청한 웹 페이지와 동일한 웹 페이지를 다시 요청하는 경우, 그 프록시 서버(520)에 캐싱되어 있는 파일을 바로 사용할 수 있다.
이때, 상기 프록시 서버(520)는 상기 프리페칭한 웹 페이지의 파일을 바이너리 인코딩 등으로 압축을 하여 무선 네트워크를 통해 웹 브라우저(511)에 전송하므로 전송되는 파일의 용량이 줄어든다. 이에 따라 웹 브라우저(511)의 처리 성능이 향상되고, 하드디스크 등의 저장 장치의 용량을 절감할 수 있다.
예를 들어, 한국에서 가장 많은 사람들이 접속하는 웹 사이트 중 하나인 네이버 웹 사이트 http://www.naver.com 의 경우 웹 브라우저(511)가 전송받아야 하는 전 체 파일의 갯수는 약 200개 정도이다.
사용자가 이동통신 단말기(511)의 웹 브라우저(511)에서 상기 http://www.naver.com 주소를 입력하면, 프록시 서버(520)가 그 주소를 전달 받아 웹 서버(530)에서 해당 웹 페이지 접근 명령을 전송한다. 이에 따라, 상기 웹 서버(530)는 해당 웹 페이지의 메인 HTML(main.html), 메인 JavaScript(main.js), 메인 CSS(main.css) 파일을 프록시 서버(520)에 전송한다.
이때, 상기 프록시 서버(520)는 mail.html, main.js, main.css 파일을 이동통신 단말기(510)에 전송함과 아울러, 그 파일들을 분석하여 링크된 파일들의 주소를 찾아내고 해당 주소의 웹 서버에 파일 접근 명령을 전송하여 링크된 파일 200개를 전송받는다. 상기 프록시 서버(520)는 상기 전송받은 파일을 이동통신 단말기(510)의 웹 브라우저(511)로 바로 전송하여 실행되도록 한다.
따라서, 상기 웹 브라우저(511)가 상기 프록시 서버(520)에 상기 파일들을 요청하여 전송받는 것에 비하여 대기시간이 현저히 줄어든다.
상기 프록시 서버(520)가 HTML 페이지 레이아웃에 영향을 미치지 않는 자바스크립트 코드가 HTML 뒤쪽에 위치하도록 분석, 변경하는 작업을 수행함으로써, 이동통신 단말기(510)에서의 페이지 초기 레이아웃 렌더링 시간을 줄일 수 있다. 이로 인해 사용자의 체감 반응성이 향상된다.
예를 들어, 상기 네이버 사이트의 로그인 시 상기 이동통신 단말기(510)에서 사용자 암호를 암호화하는데 약 4초의 시간이 걸리는데, 이를 처리하는 동안 웹 브라우저(511)에서는 다른 레이아웃 작업을 할 수 없다. 따라서 사용자가 페이지의 내 용을 처음 확인하는데 걸리는 시간이 4초 정도 늘어나게 된다. 이와 비슷한 경우로, 사용자의 입력을 받기 전에는 보이지 않는 HTML 요소에 작용하는 자바스크립트 코드나 모든 페이지에 공통으로 포함되나 현재 페이지에서는 사용되지 않는 코드들도 뒤쪽으로 위치하도록 변경할 수 있다. 이에 대한 예로써, 웹에디터 등의 컨트롤 구현에 사용되는 도구 함수들이 있으며, 사용자 로그인 시의 암호화 코드는 이 부류에도 포함된다.
이와 같은 종류의 코드가 페이지 레이아웃에 영향을 미치지 않는다는 것을 확인할 수 있다면, 그 코드를 뒤쪽으로 위치시켜 사용자가 좀 더 빨리 페이지 내용을 확인할 수 있도록 할 수 있다. 상기 확인은 HTML 태그의 클래스(class), 스타일(attribute) 속성과 이 HTML파일이 참조하는 CSS 파일 및 JS파일, HTML 파일 내의 자바스크립트 태그를 분석하는 것에 의해 가능하다.
페이지 레이아웃에 영향을 미치는 자바스크립트 코드의 경우, 크게 1) HTML 요소의 스타일(style) 속성에 하위 속성을 추가하거나 변경하는 코드, 2) HTML 요소의 클래스(class) 속성을 추가하거나 변경하는 코드, 3) 문서(document) 요소의 createElement 함수를 통하여 새로운 요소를 만들고 이를 다른 요소의 appendChild 함수를 이용하여 추가하거나, HTML 요소의 removeChild로 하위 항목을 제거하는 경우, 4) HTML요소의 innerHTML 속성을 변경하는 코드, 네 부류로 나눌 수 있다.
페이지 레이아웃에 영향을 주지 않으면서 많은 계산을 수행하는 코드를 식별하려면 상기 네 가지 부류에 속하지 않으면서 for 제어문이나 while 제어문, 배열, 문자열에 대하여 많은 작업을 수행하는 코드를 찾고, 이를 시작시키는 코드도 함께 찾아서 이 들이 상기 네 가지 부류에 속하지 않는지 체크하면 된다.
사이트의 HTML 페이지에 공통적으로 포함되지만 현재 HTML에서 사용되지 않는 코드는 주로 함수의 형태로 작성되는데, 이런 함수의 경우, 불려지는 부분이 없다면 뒤쪽으로 배치할 수 있다. 보이지 않는 부분에 대한 코드는 CSS의 visible 속성이나 display 속성이 숨김(hidden) / 없음(none)인 HTML요소를 우선 식별한 후 그들의 visible 속성이나 display 속성을 변경하지 않는 코드들을 식별하면 된다.
도 6은 본 발명에 의한 이동통신 단말기의 웹 브라우저에서의 로컬 프리페칭을 이용한 프리페칭 처리 블록도이다.
이동통신 단말기(510)의 웹 브라우저(511)는 로컬 프리페칭 모듈(511A)을 내장하고 이를 이용하여, 실행 전에 프록시 서버(520)에 프리페칭된 웹 페이지 파일을 전송 받기 위한 명령을 전송한다.
상기 웹 브라우저(511)에서의 로컬 프리페칭은 상기 프록시 서버(520)에서의 프리페칭과 유사하게 수행된다.
즉, 상기 웹 브라우저(511)의 로컬 프리페칭 모듈(511A)은 접근하고자 하는 웹 페이지의 메인 파일을 분석하여 전송받고자 하는 파일의 주소 링크 정보를 인식하고, 그 인식된 주소 링크 정보를 바탕으로 접근명령을 생성하여 상기 프록시 서버(520)에 전송한다.
이에 따라, 상기 프록시 서버(520)의 캐싱 모듈(523)로부터 해당 파일들이 상기 로컬 프리페칭 모듈(511A)로 전송되는데, 그 로컬 프리페칭 모듈(51A)은 전송받은 해당 파일들을 웹 프라우저(511)에 전달한다.
도 7은 프록시 서버를 이용하여 그림 파일을 내장 및 병합처리하는 것을 나타낸 블록도이다.
HTML은 여러 그림을 <img> 태그 혹은 CSS를 이용해 참조하며, 이동통신 단말기(710)의 웹 브라우저(711)는 HTML에서 참조하는 모든 그림을 별도의 HTTP 요청/응답을 통해 브라우저에서 받아와야 한다. 상기 이동통신 단말기(710)와 프록시 서버(720) 간의 무선 네트워크는 통신속도가 저속이므로 상기 웹 브라우저(711)에서의 HTTP 요청 횟수가 늘어나면 그만큼 로딩 속도가 느려진다.
프록시 서버(720)는 중복 없는 작은 그림(image)을 DATA URL 형태로 HTML 파일 내에 포함시키거나 여러 그림을 하나의 그림으로 통합한다. 이에 따라, 그림 표시에 필요한 HTTP 요청/응답 횟수가 줄어들고 이동통신 단말기(710)의 웹 브라우저(711)의 페이지 로딩 속도가 향상된다.
상기와 같이 여러 그림을 하나의 그림으로 통합할 때는 통합된 이미지를 참조하는 HTML, CSS 코드를 수정하여 원래 이미지에 해당되는 부분만 가져오도록 하는 것이 바람직하다.
도 8은 프록시 서버를 이용하여 HTML 인코딩을 자동으로 탐지하는 것을 나타낸 블록도이다.
일반적으로, 이동통신 단말기(810)에서의 웹 브라우저(811)는 보통 인코딩이 지정되지 않은 HTML 파일을 올바르게 표시하기 위하여 인코딩 자동 탐지기를 사용해야 한다. 그리고, 자동 탐지의 정확도를 높이기 위해서는 인코딩 탐지에 보다 많은 시간을 사용해야 하는데, 리소스가 제약된 무선 이동통신 단말기(810)의 웹 브라우 저(811)에서는 많은 시간을 사용하는데 한계가 있다.
이를 감안하여, 본 발명에서는 프록시 서버(820)에서 인코딩 자동 탐지기(821)를 이용하여 인코딩 자동 탐지를 수행하도록 하였다. 이렇게 함으로써, 상기 프록시 서버(820)의 풍부한 자원을 이용하여 보다 빠른 시간 내에 더욱 정확하게 인코딩을 탐지할 수 있다. 또한, 인코딩 탐지 기능을 이동통신 단말기(810)의 웹 브라우저(811)에서 수행하지 않기 때문에 배터리 전원의 사용시간이 그만큼 연장된다.
이상에서 실시 예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시 예로 국한되는 것이 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.