特許第6081846号(P6081846)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6081846
(24)【登録日】2017年1月27日
(45)【発行日】2017年2月15日
(54)【発明の名称】Webコンテンツの配信装置
(51)【国際特許分類】
   G06F 13/00 20060101AFI20170206BHJP
【FI】
   G06F13/00 540A
【請求項の数】4
【全頁数】17
(21)【出願番号】特願2013-74597(P2013-74597)
(22)【出願日】2013年3月29日
(65)【公開番号】特開2014-199563(P2014-199563A)
(43)【公開日】2014年10月23日
【審査請求日】2015年8月27日
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】渋谷 惠美
(72)【発明者】
【氏名】峯木 厳
【審査官】 宮田 繁仁
(56)【参考文献】
【文献】 特開2007−213397(JP,A)
【文献】 特開2006−216072(JP,A)
【文献】 Gen MINEKI, Satoshi UEMURA, AND Teruyuki HASEGAWA,‘SPDY accelerator for improving Web access speed’,ICACT 2013,IEEE,2013年 1月,P.540-P.544,ISBN: 978-89-968650-1-8
(58)【調査した分野】(Int.Cl.,DB名)
G06F13/00
(57)【特許請求の範囲】
【請求項1】
メインコンテンツおよびサブコンテンツの各ドメインが異なるマルチドメイン構成のWebページを、複数のHTTPセッションが多重化されたHTTPSセッションでクライアントへ送信するWebコンテンツの配信装置において、
クライアントから受信したWebページのHTTPリクエストを書き換えて、所定の共通パスを追加したリダイレクト用のHTTPSリクエストURLを生成するリダイレクト用URL生成手段と、
クライアントへ前記HTTPSリクエストURLを通知してHTTPSリクエストによるリダイレクトを要求するリダイレクト要求手段と、
前記HTTPSリクエストによるリダイレクトに応答して、複数のHTTPセッションが多重化されたHTTPSセッションをクライアントとの間に確立する多重化セッション確立手段と、
前記HTTPSリクエストに基づいて、サブコンテンツのリンク先のドメインが記述されたメインコンテンツを取得するメインコンテンツ取得手段と、
前記リンク先の各ドメインにアクセスして各サブコンテンツを取得するサブコンテンツ取得手段と、
前記メインおよびサブの各コンテンツを、前記多重化されたHTTPSセッションでクライアントへPush配信するPush配信手段とを具備したことを特徴とするWebコンテンツの配信装置。
【請求項2】
前記リダイレクト用URL生成手段は、HTTPリクエストのスキームをHTTPSに書き換えることを特徴とする請求項1に記載のWebコンテンツの配信装置。
【請求項3】
前記複数のHTTPセッションが多重化されたHTTPSセッションがSPDYであることを特徴とする請求項1または2に記載のWebコンテンツの配信装置。
【請求項4】
前記メインコンテンツがhtmlファイルであり、前記各サブコンテンツが、当該htmlファイルのページに出力されるコンテンツデータであることを特徴とする請求項1ないし3のいずれかに記載のWebコンテンツの配信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Webコンテンツの配信装置に係り、特に、Webページを構成するコンテンツデータが、そのインデックスファイル(htmlファイル)と共に複数のWebサーバに分散して配置されているマルチドメイン構成のWebページの配信に好適な配信装置に関する。
【背景技術】
【0002】
Webコンテンツの配信を高速化する技術が非特許文献1,2,3に開示されている。非特許文献1には、サーバがクライアントとのTCPコネクションを一定期間保持することで、一度確立されたTCPコネクション上で複数のWebコンテンツ配信を行う技術が開示されている。これにより、コンテンツデータ毎にTCPコネクションを確立・切断する必要が無くなるので、Webコンテンツ配信の高速化が実現される。
【0003】
非特許文献2には、TCPコネクションの統合、サーバからのPush配信、リクエストの多重送信化、冗長なヘッダの削除、および通信データの圧縮を必須化することで、既存のHTTPにおけるWebコンテンツ配信速度を向上させるSPDYが開示されている。このとき、HTTPを操作するセッション層にSPDYを実装することで、既存のTCP、SSL、HTTPに手を加えることなく、Webコンテンツ配信の高速化が実現される。
【0004】
非特許文献3には、エッジサーバと呼ばれるリバースプロキシをネットワーク上に設けて、Webコンテンツ等の配信に必要なコンテンツデータをキャッシュとして保持し、オリジナルのコンテンツデータを保持するサーバの代わりに、エッジサーバがクライアントと通信を行う技術が開示されている。これにより、オリジナルサーバ・クライアントで通信を行う場合に比べてRTTが短縮され、Webコンテンツ配信の高速化が実現される。
【0005】
一方、配信対象のWebページがマルチドメイン構成であって、そのインデックスファイル(htmlファイル)と少なくとも一つのコンテンツデータとが、ドメインの異なる複数のWebサーバに分散配置されていると、クライアントは、始めにWebサーバからインデックスファイルを取得する。このインデックスファイルには、Webページに出力される各コンテンツデータが分散配置されているWebサーバのドメインがリンク先として記述されている。クライアントは、このインデックスファイルの取得後、各ドメインへアクセスして各コンテンツデータを取得し、これらを結合することでWebページを再現する。したがって、クライアントはインデックスファイルの取得が完了しなければ、次の処理に進むことができない。
【0006】
ここで、既存のTCPではドメインの異なる複数のWebサーバと同時に接続できるものの、同時に確立されるセッション数が制限されているので、Webページを構成するコンテンツデータ数が多い場合には、これらを同時に取得することができない。また、非特許文献1,3は、サーバが主導的にクライアントへコンテンツを配信する、いわゆるサーバPush配信に対応していないので、クライアントは全てのWebサーバに自らアクセスしてコンテンツ配信をリクエストしなければならなかった。
【0007】
一方、非特許文献2のSPDYによれば、サーバとの間に同時に確立されるセッション数が制限されておらず、またクライアントがリクエストしたインデックスファイルと同一のWebサーバ上に蓄積されているコンテンツについてはサーバPush配信が可能である。
【0008】
しかしながら、ドメインの異なる他のWebサーバに蓄積されているコンテンツについてはクライアントからのリクエストが必要となる。したがって、図26に模式的に示したように、配信対象がマルチドメイン構成のWebページであると、クライアントはWebサーバWS1に自らアクセスしてインデックスファイルを取得するのみならず、他のコンテンツデータについても、WebサーバWS1,WS2,WS3…にそれぞれ自らアクセスして取得しなければならなかった。
【0009】
このような技術課題に対して、本発明の発明者等は、マルチドメイン構成のWebページがリクエストされると、当該Webページのインデックスファイルおよび関連するコンテンツデータを各Webサーバから取得してキャッシュサーバ上に記憶し、同一ドメインで管理することにより、クライアントは当該キャッシュサーバへアクセスするだけで、インデックスファイルのみならずそのコンテンツデータも、SPDYによるサーバPush配信により簡単に取得できるようにする技術を発明し、特許出願した(特許文献)。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特願2012−146859号
【非特許文献】
【0011】
【非特許文献1】R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee, " Hypertext Transfer Protocol -- HTTP/1.1", RFC2616,Jun 1999.
【非特許文献2】M. Belshe, R. Peon, "SPDY Protocol", InternetDraft mbelshe-spdy-00, Feb 2012.
【非特許文献3】Erik Nygren, Ramesh K. Sitaraman, Jennifer Sun, "The Akamai Network:A Platform for High-Performance Internet Applications", ACM SIGOPS Operating Systems Review, Vol. 44, No.3, Jul 2010.
【発明の概要】
【発明が解決しようとする課題】
【0012】
SPDYプロトコルはHTTPSリクエストに対して動作するので、SPDYを実装したサーバとクライアントとの間で、複数のHTTPセッションが多重化されたHTTPSセッション(リンクアグリゲーション)によるPush配信を実現するためには、クライアントがSPDYサーバに対してHTTPSでWebページをリクエストしなければならない。したがって、クライアントがWebサーバへHTTPでWebページをリクエストしてしまうと、SPDYサーバとクライアントとの間でリンクアグリケーションを実現できないという技術課題があった。
【0013】
本発明の目的は、上記した従来技術の課題を解決し、クライアントのHTTPリクエストに対してリンクアグリケーションによる高速なPush配信を実現できるWebコンテンツの配信装置を提供することにある。
【課題を解決するための手段】
【0014】
上記の目的を達成するために、本発明は、メインコンテンツおよびサブコンテンツの各ドメインが異なるマルチドメイン構成のWebページを、複数のHTTPセッションが多重化されたHTTPSセッションでクライアントへ送信するWebコンテンツの配信装置において、以下のような構成を具備した点に特徴がある。
【0015】
(1)クライアントから受信したWebページのHTTPリクエストを書き換えてリダイレクト用のHTTPSリクエストを生成するリダイレクト用URL生成手段と、クライアントへHTTPSリクエストによるリダイレクトを要求するリダイレクト要求手段と、前記HTTPSリクエストによるリダイレクトに応答して、複数のHTTPセッションが多重化されたHTTPSセッションをクライアントとの間に確立する多重化セッション確立手段と、HTTPSリクエストに基づいて、サブコンテンツのリンク先のドメインが記述されたメインコンテンツを取得するメインコンテンツ取得手段と、リンク先の各ドメインにアクセスして各サブコンテンツを取得するサブコンテンツ取得手段と、メインおよびサブの各コンテンツを、前記多重化されたHTTPSセッションでクライアントへPush配信するPush配信手段とを具備した。
【0016】
(2)リダイレクトURL生成手段は、HTTPリクエストがHTTPSリクエストに書き換えられる際に、所定の共通パスをURLに追加するようにした。
【発明の効果】
【0017】
本発明によれば、以下のような効果が達成される。
(1)クライアントからのHTTPリクエストに対してHTTPSリクエストのリダイレクトを要求するようにしたので、クライアントからのHTTPリクエストに対しても、リンクアグリケーションにより高速化されたSPDYによりコンテンツをPush配信できるようになる。
【0018】
(2)クライアントへリダイレクト用URLとして通知するHTTPSリクエスのURLに共通パスを追加したので、クライアントでは、リクエストURLの書き換えがフィッシング等による悪意に基づくものではなく、SPDYによるコンテンツのPush配信に必要な書き換えであることを認識できるようになる。
【図面の簡単な説明】
【0019】
図1】本発明の一実施形態に係るWebコンテンツ配信システムのネットワーク構成を示したブロック図である。
図2】マルチドメイン構成のWebページの一例を示した図である。
図3】SPDYアクセラレータの主要部の構成を示した機能ブロック図である。
図4】本発明の一実施形態の動作を示したシーケンスフロー(その1)である。
図5】本発明の一実施形態の動作を示したシーケンスフロー(その2)である。
図6】リンクURLの代表的な書き換え例を示した図である。
図7】HTMLコンテンツに記述されたリンクURLの分類方法を示した図である。
図8】Type1に分類されたリンクURLの書き換え手順を示したフローチャートである。
図9】省略URLの補完方法を示した図である。
図10】相対URLの補完方法を示した図である。
図11】Type2に分類されたリンクURLの書き換え条件を示した図である。
図12】Type2に分類されたリンクURLの書き換え手順を示したフローチャートである。
図13】リンクURLをType2書換規則で書き換える方法を示した図である。
図14】Type2書換規則による書き換え例を示した図である。
図15】Type3の基本的な書換規則を示した図である。
図16】Type4の基本的な書換規則を示した図である。
図17】CSSコンテンツにおけるリンクURLの書き換え例を示した図である。
図18】リンクURLの相対パスから絶対パスへの書き換え規則を示した図である。
図19】リンクURLの相対パスから絶対パスへの書き換え規則を示した図である。
図20】コンテンツ配信元のサーバがHTTPであり、オリジナルのhttpリクエストに対してHTTPSでのリダイレクトが求められた場合のWebページコンテンツの取得手順を示したシーケンスフローである。
図21】コンテンツ配信元のサーバがHTTPSである場合のオリジナルのhttpsリクエストによるWebページコンテンツの取得手順を示したシーケンスフローである。
図22】サブコンテンツのオリジナルURLを判定する方法を説明するための図である。
図23】cookieの具体的な書き換え例を示した図である。
図24】cookieの書き換え方法を模式的に示した機能ブロック図である。
図25】クライアントからのhttpsリクエストに対して、コンテンツと共に書き換えられたcookieが応答される手順を示したシーケンスフローである。
図26】SPDYによるWebページの配信方法を模式的に表現した図である。
【発明を実施するための形態】
【0020】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図1は、本発明の一実施形態に係るWebコンテンツ配信システムのネットワーク構成を示したブロック図であり、マルチドメイン構成のWebページについて、そのインデックスファイル(メインコンテンツ)や当該インデックスファイルに貼り付けられる画像ファイル(サブコンテンツ)が分散配置された複数のWebサーバと、クライアント1からのSPDY接続によるWebページコンテンツのリクエストを検知してオリジナルのWebサーバを判断し、当該Webサーバからコンテンツを取得するSPDYアクセラレータ(SPDA)2と、前記各WebサーバとSPDYアクセラレータ2との間に接続されてプロキシ機能を発揮するProxyサーバ3とを主要な構成とする。
【0021】
前記各Webサーバには、それぞれ異なるドメインが割り当てられ、本実施形態では、WebサーバWS1にメインドメイン(クライアントが要求するindex.htmlファイルが存在するドメイン)"site-a.com" が割り当てられ、WebサーバWS2にサブドメイン "site-b.com"が割り当てられている。配信対象のWebページはマルチドメイン構成であり、図2に一例を示したように、メインコンテンツとしてのインデックスファイルと、当該インデックスファイルのページに貼り付けられるサブコンテンツとしての2つの画像ファイルA,Bとから構成されている。
【0022】
図3は、前記SPDYアクセラレータ2の主要部の構成を示した機能ブロック図であり、ここでは本発明の説明に不要な構成は図示が省略されている。
【0023】
リクエスト受付部201は、クライアントからhttpリクエストやhttpsリクエストを受け付ける。リダイレクト制御部202において、ユーザエージェント識別部202aは、クライアント1の機能や能力を識別する。ホスト識別部202bは、要求されたWebページを管理するWebサーバを識別する。リダイレクト用URL生成部202cは、クライアント1から受信したWebページのHTTPリクエストを書き換えてリダイレクト用のHTTPSリクエストを生成する。本実施形態では、HTTPリクエストのスキームが"http"から"https"に書き換えら、さらに必要に応じて、共通パス追加部202dによりURLに共通パスが追加される。ダイレクト要求部202eは、クライアント1へ前記HTTPSリクエストによるリダイレクトを要求する。
【0024】
多重化セッション確立部203は、前記HTTPSリクエストによるリダイレクトに応答して、複数のHTTPセッションが多重化されたHTTPSセッションをクライアントとの間に確立する。コンテンツ記憶部204は、前記HTTPSリクエストに基づいて、サブコンテンツのリンク先のドメインが記述されたメインコンテンツを取得するメインコンテンツ取得部204aおよび前記リンク先の各ドメインにアクセスして各サブコンテンツを取得するサブコンテンツ取得部204bを含む。
【0025】
リンクURL書換部205は、クライアント1とSPDYアクセラレータ2との間でのリンクアグリケーションを、クロスドメイン問題を発生させることなく実現すべく、前記Webページのリクエストに対して応答されたインデックスファイルに記述されているサブコンテンツのリンクURLを書き換える。
【0026】
前記リンクURL書換部205は、後に詳述するように、各サブコンテンツのリンクURLを、リクエストURLおよび当該サブコンテンツのオリジナルのリンクURLに基づいて、リクエストURLのドメインに書き換える。リンクURLの書換要否は、コンテンツの種類、HTMLタグおよびリンクURLの記述形式の少なくとも一つに基づいて決定される。サブコンテンツのリンクURLの書き換えは、リクエストURLのアドレス部に当該サブコンテンツのオリジナルのリンクURLを結合することを基本的な書き換え規則とするが、サブコンテンツのリンクURLが省略URLであると、省略されているスキームがリクエストURLで補完される。また、サブコンテンツのリンクURLが相対パスであると、当該相対パスがリクエストURLで補完される。
【0027】
cookie書換部206は、リンクアグリケーションにより生じうるcookieの齟齬を解消すべく、クライアント1へ付与するcookieのdomainおよびpathを書き換える。Push配信部207は、前記メインおよびサブの各コンテンツを、前記多重化されたHTTPSセッションでクライアントへPush配信する。
【0028】
図4,5は、本発明の一実施形態の動作を示したシーケンスフローであり、ここでは、前記図2に示したマルチドメイン構成のWebページを取得する際の手順を、そのインデックスファイルがWebサーバWS1に配置され、2つの画像ファイルA,Bが、それぞれWebサーバWS1 (site-a.com),WS2 (site-b.com)に分散配置されている場合を例にして説明する。
【0029】
初めに図4を参照し、時刻t1では、クライアント1から第1DNSに対して、Webページのインデックスファイルを管理するドメイン"site-a.com"のアドレス解決が要求される。本実施形態では、第1DNSが当該システムの管理下にあるので、前記メインドメイン"site-a.com"とSPDYアクセラレータ2とが予め対応付けられている。したがって、時刻t2では、第1DNSからクライアント1に対して、SPDYアクセラレータ2のIPアドレス(ここでは、"10.10.10.10")が応答される。
【0030】
時刻t3では、クライアント1がSPDYアクセラレータ2のIPアドレスへアクセスすることでTCPコネクションが確立される。時刻t4では、クライアント1がインデックスファイルを前記ドメイン"site-a.com"から取得するためのhttpリクエスト "http://site-a.com/index.html" が送信される。
【0031】
時刻t5では、SPDYアクセラレータ2において、前記リクエストメッセージのスキーム、クライアント1の機能およびアクセス先のドメインが管理下にあるか否かが判定される。ここでは、リクエストメッセージのスキームが "http" と判定され、クライアント1がSPDY接続機能を備え、かつドメイン"site-a.com"が管理下にあると判断されるので、クライアント1に対してhttpsによるリダイレクトを要求するために、前記リダイレクト用URL生成部202cによりhttpsリダイレクト用URLが生成される。
【0032】
本実施形態では、前記httpリクエストのスキームが"https"に書き替えられ、かつドメイン部分の後に、前記共通パス追加部202dにより共通パスが追加されてリダイレクト用URL "https://site-a.com/共通パス/index.html" とされる。これは、クライアント1が前記書き換えられたURLで再要求(HTTPSリクエスト)する際に、クライアントのブラウザのアドレス表示部に前記書き換えられたURLが表示され、これがフィッシングによる書き換えと誤認されるおそれがあるため、本実施形態では、このような悪意による書き換えと区別するために共通パスが追加される。時刻t6では、前記リダイレクト用URLが、前記リダイレクト要求部202eによりクライアント1へ通知される。なお、当該時刻t5,t6の各処理は、時刻t4においてクライアントから送信されたメッセージがhttpsリクエストであれば省略される。
【0033】
時刻t7では、クライアント1とSPDYアクセラレータ2との間に、前記多重化セッション確立部203によりSSLセッションが確立される。時刻t8では、クライアント1から前記リダイレクトURLへhttpsリクエストが送信される。時刻t9では、SPDYアクセラレータ2において、前記リダイレクトURLに基づいてコンテンツサーバ(ここでは、WebサーバWS1)のオリジナルURLが判別される。本実施形態では、前記リダイレクトURLから共通パスを削除することでオリジナルURLが再現され、当該再現されたオリジナルURLに基づいてWebサーバWS1が判別される。
【0034】
時刻t10では、SPDYアクセラレータ2から前記オリジナルURLへhttp(s)リクエストが送信され、これがProxyサーバ3により受信される。本実施形態では、前記リダイレクトが発生していなければhttpsリクエストが送信され、前記リダイレクトが発生していればhttpリクエストが送信される。Proxyサーバ3は、リクエストされたコンテンツ(ここでは、インデックスファイル)をキャッシュしていれば当該コンテンツを代理応答する一方、キャッシュしていなければ、時刻t11において第2DNSへアドレス解決を要求する。時刻t12では、第2DNSからProxyサーバ3へ、前記WebサーバWS1のIPアドレス"203.178.143.xx"が応答される。時刻t13では、Proxyサーバ3からWebサーバWS1へ、インデックスファイルのリクエストメッセージが送信される。時刻t14では、WebサーバWS1からProxyサーバ3へ前記インデックスファイルが応答される。
【0035】
時刻t15では、Proxyサーバ3からSPDYアクセラレータ2へ、前記インデックスファイルが応答される。時刻t16では、SPDYアクセラレータ2において、前記インデックスファイルに各サブコンテンツ(画像A,B)の登録先として記述されているリンクURLが、クロスドメイン問題を発生させることなく、クライアント1とProxyサーバ3との間でのリンクアグリケーションを実現するために、前記proxyサーバ経由のリンクURLに書き換えられる。
【0036】
図6は、リンクURLの代表的な書き換え例を示した図であり、本実施形態では、リクエストURL "https://site-a.com/index.html" のアドレス部 "https://site-a.com" とリンクURL "https://site-b.com/b.jpg" とが結合されて書き換え後URL "https://site-a.com/https://site-b.com/b.jpg" とされる。以下、応答されたインデックスファイルに記述されているリンクURLの書き換え方法について詳細に説明する。
【0037】
本実施形態では、WebサーバWS1からの取得したインデックスファイルがHTMLコンテンツまたはCSS(スタイルシート)コンテンツであると、当該インデックスファイルに記述されているリンクURLが、同一ホスト(本実施形態では、SPDYアクセラレータ2)経由に書き換えられる。インデックスファイルがHTMLコンテンツおよびCSSコンテンツのいずれでもない場合、例えばJavaScript(登録商標)ファイルなどの場合には、書き換えが行われない。
【0038】
ここでは、初めに(1)HTMLコンテンツにおけるリンクURLの書き換えについて説明し、次いで(2)CSSコンテンツにおけるリンクURLの書き換えについて説明する。さらに、リンクURLの書き換え処理中に、相対パスから絶対パスへの書き換えを行う場合があるため、(3)相対パスから絶対パスへの書き換え規則(相対→絶対パス変換規則)についても説明する。
【0039】
(1)HTMLコンテンツにおけるリンクURLの書き換え
図7は、HTMLコンテンツに記述されたリンクURLの分類方法を示した図であり、本実施形態では各リンクURLが、そのタグおよび属性に基づいて、図示の通りType1からType4のいずれかに分類され、Typeごとに固有の書換規則が適用される。
【0040】
図8は、Type1に分類されたリンクURLの書き換え手順を示したフローチャートであり、ステップS11では、リンクURLの先頭文字が参照され、"#"(フラグメント)であれば「書き換えなし」と判定され、"#"でなければステップS12へ進む。ステップS12では、リンクURLが絶対URLであるか否かが判定され、絶対URLであれば「書き換えなし」と判定され、絶対URLでなければステップS13へ進む。
【0041】
ステップS13では、リンクURLが省略URLであるか否かが判定され、省略URLであれば、図9(a),(b)に一例を示したように、省略されているスキームをオリジナルURLで補完する書き換えが行われる。これに対して、省略URLでなければステップS14へ進み、リクエストURLのスキームがhttpsであれば「書き換えなし」と判定され、httpsでなければステップS15へ進む。
【0042】
ステップS15では、リンクURLが相対パスであるか否かが判定される。相対パスでなければステップS17へ進み、図10(a),(b)に示したように、相対URLをオリジナルURLのアドレスで補完する書き換えが行われる。これに対して、リンクURLが相対パスであればステップS16へ進み、相対パスを絶対パスに変更した後に前記ステップS17へ進む。
【0043】
図11は、Type2に分類されたリンクURLの書き換え条件を示した図であり、図12は、Type2に分類されたリンクURLの書き換え手順を示したフローチャートである。
【0044】
ここでは、リンクURLが相対URLであるか絶対URLであるかに応じて書換規則が異なり、基本的に、絶対URLの場合は全て書き換えが行われ、相対URLの場合は、リクエストURLのスキームがhttpの場合のみ書き換えが行われる。なお、オプション機能として、動的コンテンツに関する書き換え有無選択機能、ホストチェック有無判定機能および書き換え対象ホストチェック機能を使用することも可能とする。
【0045】
ここで、URLホストチェックの書き換え対象とは、SPDYアクセラレータ2を使用するよう管理されたサイト(ホスト)のことであり、動的リソースの書き換えは、オプション機能でONとした場合のみ有効で、URLのパス部に"?"を含むURLも書き換えを行うことが可能である。
【0046】
図12において、ステップS21では、リンクURLが省略URLであるか否かが判定される。省略URLであれば、ステップS22へ進んで絶対URLに書き換えられる。ステップS23では、リンクURLが絶対URLおよび相対URLのいずれであるかが判定される。相対URLであればステップS24へ進み、リクエストURLのスキームがhttpであるか否かが判定される。httpでなければ「書き換えなし」と判定され、httpであればステップS25へ進む。
【0047】
ステップS25では、リンクURLが動的リソースであるか否かが判定される。動的リソースであればステップ26へ進み、動的リソース書き換えのオプションを使用するか否かが判定される。使用しないと判定されれば、ステップS27へ進んで前記Type1の書換規則が適用される。これに対して、オプションを使用する場合は、ステップS28へ進んでリンクURLがType2書換規則で書き換えられる。
【0048】
図13は、前記ステップS28における書き換え方法の一例を示した図であり、リクエストURLからスキーム(https)およびFQDNが取得され、取得された項目がアグリゲートホストとされる。次いで、リンクURLが相対パスの場合、相対→絶対パス変換規則に従って絶対パスへ変換される。そして、リンクURLの前に前記アグリゲートホストを付加する書き換えが行われる。
【0049】
一方、前記ステップS23において、リンクURLが絶対URLと判断されるとステップS29へ進み、URLスキームがhttpおよびhttpsのいずれかであるかが判定される。httpおよびhttpsのいずれでもなければ「書き換えなし」とされ、httpおよびhttpsのいずれかであればステップS30へ進む。ステップS30では、URLホストチェックを使用するか否かが判定され、使用するのであればステップS31へ進む。ステップS31では、書き換え対象であるか否かが判定され、書き換え対象でなければ書き換えが行われず、書き換え対象であればステップS32へ進む。
【0050】
ステップS32では、リンクURLが動的リソースであるか否かが判定される。動的リソースであればステップ33へ進み、動的リソース書換のオプションを使用するか否かが判定される。使用しないと判定されれば「書き換えなし」とされる。これに対して、オプションを使用する場合はステップS34へ進み、前記ステップS28と同様の書き換えが行われる。
【0051】
図14は、Type2書換規則による書き換え例を示した図であり、同図(a)は、インデックスファイル(htmlコンテンツ)に記述されているリンクURLの一覧を示しており、同図(b)は、リクエストURLが "https://site-a.com/index.html" であって、オリジナルのWebサーバ(site-a.com)からhttpsでコンテンツを取得した場合の各リンクURLの書き換え例を示しており、同図(c)は、リクエストURLが共通パス"spda"を含む "https://site-a.com/spda/index.html" であって、オリジナルのWebサーバ(site-a.com)からhttpでコンテンツを取得した場合の各リンクURLの書き換え例を示している。
【0052】
図15は、Type3の基本的な書換規則を示した図であり、タグが図示の通りであると、前記TYPE2書換規則に従ってリンクURLが書き換えられる。図16は、Type4の基本的な書換規則を示した図であり、HTML内のタグがMETAタグであって、かつhttp-equiv属性の属性値がrefreshであると、content属性の属性値がType1書換規則に従って書き換えられる。
【0053】
(2)CSSコンテンツにおけるリンクURLの書き換え
図17は、CSSコンテンツにおけるリンクURLの書き換え例を示した図であり、各要素に対して、前記TYPE2書換規則と同一規則で書き換えが行われる。
【0054】
(3)相対パスから絶対パスへの書き換え規則(相対→絶対パス変換規則)
図18,19は、リンクURLの相対パスから絶対パスへの書き換え規則を示した図であり、HTMLファイル内のbaseタグの有無で処理が異なる。
【0055】
図18は、baseタグがない場合の書き換え方法を示した図であり、初めに、リクエストURLからオリジナルURLが取得され、オリジナルURLのPath部のベースディレクトリが取得される[同図(a)]。次いで、リンクURLの相対パスをベースディレクトリで補完することで絶対パスが作成される[同図(b)]。最後に、作成された絶対パス、オリジナルURLのスキームおよびFQDNに基づいて絶対URLが作成される。
【0056】
図19は、baseタグがある場合の書き換え方法を示した図であり、baseタグのhref属性値が取得されると、取得属性値の形式ごとにベースディレクトリが取得される。絶対URL形式の場合は、同図(a)に示したように、ベースディレクトリは取得URLのPath部のディレクトリとなる。また、絶対パス(先頭文字が"/"で始まる)の場合は、同図(b)に示したように、ベースディレクトリは属性値のディレクトリとなる。さらに、属性値が相対パス(先頭文字が"/"で始まらない)の場合は、同図(c)に示したように、ベースディレクトリはオリジナルURLのPath部のディレクトリ+属性値となる。
【0057】
次いで、同図(d)に示したように、リンクURLの相対パスをベースディレクトリで補完することにより絶対パスが作成される。最後に、同図(e)に示したように、作成された絶対パスおよびリクエストURLに基づいて絶対URLが作成される。
【0058】
図20は、コンテンツ配信元のWebサーバがHTTPであり、オリジナルのhttpリクエストに対してHTTPSでのリダイレクトが求められた場合のWebページコンテンツの取得手順を、特にリンクURLの書き換えに着目して示したシーケンスフローである。
【0059】
時刻t51において、共通パス"spda"の付されたリダイレクトURL "https://site-a.com/spda/index.html"でアクセスされたSPDYアクセラレータ2は、時刻t52において、当該リダイレクトURLから共通パス"spda" を削除し、かつスキームを"https"から"http"へ書き換えることでオリジナルURL "http://site-a.com/index.html"を再現して、時刻t53においてsite-a.comへアクセスする。
【0060】
このhttpリクエストに対して、時刻t54において応答されたhtmlファイル(メインコンテンツ)に、図示のとおり9個のリンクURL(オリジナル)が記述されていれば、各リンクURLがSPDYアクセラレータ2において図示の通りにtype分類され、各リンクURLに適用される書換規則が決定される。SPDYアクセラレータ2は、時刻t55において、各リンクURLを前記書換規則にしたがって書き換え、書き換え済みのインデックスhtmlファイルを、時刻t56においてクライアント1へ応答する。
【0061】
図21は、コンテンツ配信元のWebサーバがHTTPSである場合のオリジナルのhttpsリクエストによるWebページコンテンツの取得手順を、特にリンクURLの書き換えに着目して示したシーケンスフローである。
【0062】
図5へ戻り、時刻t17では、前記リンクURLの書き換えられたインデックスファイルがSPDYアクセラレータ2からクライアント1へ応答される。時刻t18-t30では、前記メインコンテンツに記述されているリンクURLが解釈されて各サブコンテンツの先読みが実施される。なお、当該先読みは選択機能であり、先読み機能が無効化されている場合には、後述する時刻t26,t27でのサブコンテンツのリクエストを待って実施される。
【0063】
時刻t18,t19では、SPDYアクセラレータ2において各サブコンテンツ(画像A,B)の先読みが実行され、前記インデックスファイルに記述されている各サブコンテンツのリンクURLへリクエストメッセージが送信される。Proxyサーバ3では、各リンクURLのサブコンテンツをキャッシュ済みであるか否かが判定される。ここでは、全てのサブコンテンツがキャッシュ済みではなく、したがって、オリジナルの各WebサーバWSから取得する必要があるものとして説明を続ける。
【0064】
時刻t20では、Proxyサーバ3からWebサーバWS1へ、画像Aのリクエストメッセージが送信される。本実施形態では、Proxyサーバ3にとってWebサーバWS1のアドレスは既知なので、WebサーバWS1に対してリクエストメッセージを直ちに送信できる。
【0065】
これに対してして、Proxyサーバ3にとってWebサーバWS2のアドレスは未知なので、時刻t21では、Proxyサーバ3から第2DNSへ、WebサーバWS2のアドレス解決が要求される。時刻t22では、第2DNSからProxyサーバ3へ、WebサーバWS2のIPアドレス "203.178,128.XX" が応答される。時刻t23では、Proxyサーバ3からWebサーバWS2へ、画像Bのリクエストメッセージが送信される。時刻t24では、WebサーバWS1からProxyサーバ3へ画像Aが応答される。時刻t25では、WebサーバWS2からProxyサーバ3へ画像Bが応答される。
【0066】
これと平行して、時刻t26では、クライアント1からSPDYアクセラレータ2へ、前記画像Aを要求するhttpsリクエストが送信される。時刻t27では、クライアント1からSPDYアクセラレータ2へ、前記画像Bを要求するhttpsリクエストが送信される。時刻t28では、前記httpsリクエストを受信したSPDYアクセラレータ2において各サブコンテンツの取得先サーバが判別される。
【0067】
図22は、サブコンテンツのオリジナルURLを判定する方法を説明するための図であり、本実施形態では、受信されたリクエストのPath部が絶対パス(https://)と判断され、当該絶対パス部がオリジナルURLと判断される。相対パスの場合は、受信されたリクエストがオリジナルのリクエストと判断される。リクエストのPath部の先頭が共通パスの場合はリクエストURLのhttpsがhttpに変更され、Path部から共通パスを削除することでオリジナルリクエストのURLが再現される。それ以外は、受信リクエストのURLがそのままオリジナルURLとされる。
【0068】
時刻t29では、Proxyサーバ3からSPDYアクセラレータ2へ前記画像Aが応答される。時刻t30では、Proxyサーバ3からSPDYアクセラレータ2へ前記画像Bが応答される。時刻t31では、SPDYアクセラレータ2のcookie書換部206においてcookieの書き換えが行われる。
【0069】
すなわち、アグリゲーション機能により書き換えられたURLのリソースにcookieが付加されている場合、そのままではクライアント1が取得しているサーバと実際のサーバとが一致しておらず、それに付随するcookieも一致しない。そこでSPDYアクセラレータ2は、アグリゲーションされたURLのリソース受信時にレスポンスヘッダ内のSet-Cookie情報のDomainおよびPathを書き換える。
【0070】
図23は、cookieの具体的な書き換え例を示した図であり、DomainがリクエストURLのFQDNに書き換えられ、PathがリクエストのPath情報に書き換えられる。SPDYアクセラレータ2でリンクアグリゲーションを行った場合、クライアント1からSPDYアクセラレータ2へのリクエストURLは、メインドメイン名およびオリジナルURLで構成されている。SPDYアクセラレータ2は、Webサーバから受信したcookieおよびリクエストURLより、cookieのdomainをメインドメイン名に、pathをオリジナルURLに書き換える。
【0071】
図24は、cookieの書き換え方法を模式的に示した機能ブロック図であり、クライアント1からのリクエストに対して、WebサーバWS1がコンテンツと共に応答するcookieには、domain[site-a],path[path1]およびvalue値[v1]が記述されている。同様に、WebサーバWS2がコンテンツと共に応答するcookieには、domain[site-b],path[path2]およびvalue値[v2]が記述されている。
【0072】
SPDYアクセラレータ2のcookie書換部206は、各WebサーバWSから受け取ったcookieのdomainを[メインドメイン]に書き換え、pathを[オリジナルURL+path]に書き換える。すなわち、WebサーバWS1から受け取ったcookieは、pathが[path1]から[site-a+path1]に書き換えられる。また、WebサーバWS2から受け取ったcookieは、domainが[site-b]から[site-a]に書き換えられ、pathが[path2]から[site-b+path2]に書き換えられる。なお、いずれのcookieでもvalue値は書き換えられない。
【0073】
図25は、クライアント1からのhttpsリクエストに対して、コンテンツと共に書き換えられたcookieが応答される手順を示したシーケンスフローであり、時刻t71では、クライアント1からSPDYアクセラレータ2へ、リンクアグリケーションしたURLでhttpsリクエストが送信される。
【0074】
時刻t72では、SPDYアクセラレータ2からWebサーバWS2へコンテンツがリクエストされる。時刻t73では、WebサーバWS2が、domain,pathおよびvalue値の設定されたcookieを、前記要求されたコンテンツと共にSPDYアクセラレータ2へ応答する。時刻t74では、SPDYアクセラレータ2において、前記cookieが、domainがメインドメインに書き換えられ、pathがオリジナルURL+pathに書き換えられる。時刻t75では、SPDYアクセラレータ2からクライアント1へ、前記コンテンツと共に前記domain,pathおよびvalue値の書き換えられたcookieが応答される。
【符号の説明】
【0075】
1…クライアント,2…SPDYアクセラレータ,3…Proxyサーバ,201…リクエスト受付部,202…リダイレクト制御部,202a…ユーザエージェント識別部,202b…ホスト識別部,202c…リダイレクト用URL生成部,202d…共通パス追加部,202e…ダイレクト要求部,203…多重化セッション確立部,204…コンテンツ記憶部,204a…メインコンテンツ取得部,204b…サブコンテンツ取得部,205…リンクURL書換部,206…cookie書換部,207…Push配信部
図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