JP2009140290A - コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム - Google Patents
コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム Download PDFInfo
- Publication number
- JP2009140290A JP2009140290A JP2007316722A JP2007316722A JP2009140290A JP 2009140290 A JP2009140290 A JP 2009140290A JP 2007316722 A JP2007316722 A JP 2007316722A JP 2007316722 A JP2007316722 A JP 2007316722A JP 2009140290 A JP2009140290 A JP 2009140290A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- content
- request
- server
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】セキュリティを維持しつつ、クライアント側のコンテンツのリクエストから該コンテンツ表示までの時間を短縮すること。
【解決手段】クライアント装置とサーバとの間でコンテンツを中継する中継装置に、サーバから送信されたコンテンツを保持する手段と、クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが保持されているかを判断し、該保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断する手段と、リクエストに対応するコンテンツが保持されていないと判断された場合に、該リクエストに追加情報が含まれるか否かを示す情報を格納する手段と、格納された追加情報が含まれるか否かを示す情報に基づいて、リクエストに対してサーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断する手段と、リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該レスポンスを格納する手段とを有することにより達成される。
【選択図】図2
【解決手段】クライアント装置とサーバとの間でコンテンツを中継する中継装置に、サーバから送信されたコンテンツを保持する手段と、クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが保持されているかを判断し、該保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断する手段と、リクエストに対応するコンテンツが保持されていないと判断された場合に、該リクエストに追加情報が含まれるか否かを示す情報を格納する手段と、格納された追加情報が含まれるか否かを示す情報に基づいて、リクエストに対してサーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断する手段と、リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該レスポンスを格納する手段とを有することにより達成される。
【選択図】図2
Description
本発明は、クライアントとサーバとの間に設置され、サーバからのコンテンツを一時的に蓄え、クライアントからの要求があった場合に本来のサーバに代わってコンテンツを中継する、コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラムに関する。
プロキシサーバ(proxy server)は、サーバとクライアントとの間で両装置間の通信を中継する。プロキシサーバは、中継したサーバからのコンテンツをキャッシュに保持する。その後、クライアントからの要求に応じて、該要求対象のコンテンツがキャッシュ内に保持されている場合にはそのコンテンツを応答する(例えば、特許文献1参照)。このようにすることで、クライアントに対する応答時間の高速化を実現する。
また、プロキシサーバは、サーバから送信されるコンテンツ中に含まれる、当該コンテンツの有効期限やキャッシュに格納するか否かを制御するためのキャッシュ制御コマンドの内容を確認し、該コンテンツをキャッシュに保持するか否かを判断する。
しかし、近年のインターネットトラフィックでは、プロキシサーバのキャッシュに保持することができ、キャッシュの機能を利用できるコンテンツが減少してきている。このため、キャッシュの利用効果が落ちてきている。例えば、一般的なニュースサイトやポータルサイトでは、プロキシサーバのキャッシュに保持することを禁止されたコンテンツ(キャッシュ禁止の指示があるコンテンツ)、もしくはキャッシュの有効期限がほぼゼロになるようにコンテンツの有効期限や最終更新日が設定されたコンテンツが多い。
このように、プロキシサーバのキャッシュに保持させないコンテンツが増加している理由は、大きく分けて2つある。1つ目は、キャッシュに保持されたコンテンツではなく、最新のコンテンツを常に表示させるためである。例えは、ニュースに関するコンテンツでは、最新のニュースを提供する観点からは、キャッシュに保持されたコンテンツを提供するよりも、サーバから提供されるニュースを提供する方が好ましい場合がある。2つ目は、セキュリティを目的にしたものである。ユーザ個別の情報がページに含まれる場合に、該ページがキャッシュに格納されることにより該ページに含まれる各ユーザの情報が他のユーザに表示される虞がある。このような問題を防ぐためである。
特開2001−282607号公報
しかし、上述した背景技術には以下に示すような問題点がある。
上記のようなプロキシサーバのキャッシュに保持させないコンテンツが一般化し、増加することにより、例えば特定の時間に該コンテンツのリクエストが大量に発生した場合に、該リクエストがプロキシサーバから外部ネットワーク、例えばサーバへの問い合わせとなる。このため、外部ネットワークのゲートウェイやバックボーンのネットワークのトラヒックが混雑し、タイムアウトやページ表示の大幅な遅延が発生する。
例えば、最新の情報をリアルタイムに表示しなくてもよいと考えるユーザによるリクエストに対して提供されるコンテンツであっても、キャッシュ禁止の指示があるコンテンツは常にキャッシュされない。
また、例えば、コンテンツ自体の更新頻度がキャッシュを禁止とするまで高くなく、キャッシュしても問題ない場合があるにも関わらず、キャッシュ禁止の指示があるコンテンツは常にキャッシュに保持されない。
以上のような場合に、キャッシュによる高速化の効果が全く得られないという問題がある。
また、コンテンツに設定された有効期限が短い場合でも、プロキシサーバ上のキャッシュに保持された該コンテンツが頻繁に消去されるため、該コンテンツへのリクエストがプロキシサーバから外部ネットワーク、例えばサーバへの問い合わせとなる。このため、上記の問題、すなわちタイムアウトやページ表示の大幅な遅延が発生する。
本発明は、上述した問題点を鑑みてなされたものであり、その目的は、セキュリティを維持しつつ、クライアント側のコンテンツのリクエストから該コンテンツ表示までの時間を短縮することができるコンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラムを提供することにある。
上記課題を解決するため、このコンテンツ中継装置は、
クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置であって、
前記サーバから送信されたコンテンツを保持するキャッシュ保持手段と、
前記クライアントにより送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
を有することを要件とする。
クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置であって、
前記サーバから送信されたコンテンツを保持するキャッシュ保持手段と、
前記クライアントにより送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
を有することを要件とする。
また、このコンテンツ中継システムでは、
前記コンテンツ中継装置は、
前記キャッシュ利用判断手段は、前記クライアントにより送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されている場合に、該コンテンツに含まれるキャッシュ禁止の有無及び/又は有効期限に基づいて、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断し、
該コンテンツがキャッシュ禁止及び/又は有効期限切れである場合に、該コンテンツに前記クライアント装置に表示させるコンテンツを差し替えるためのプログラムを埋め込む差し換え指示手段
を有し、
前記クライアント装置は、
受信したコンテンツに埋め込まれたコンテンツを取得するリクエストを送信し、表示中のコンテンツを前記リクエストに対するレスポンスに差し替えるコンテンツ取得手段
を有することを要件とする。
前記コンテンツ中継装置は、
前記キャッシュ利用判断手段は、前記クライアントにより送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されている場合に、該コンテンツに含まれるキャッシュ禁止の有無及び/又は有効期限に基づいて、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断し、
該コンテンツがキャッシュ禁止及び/又は有効期限切れである場合に、該コンテンツに前記クライアント装置に表示させるコンテンツを差し替えるためのプログラムを埋め込む差し換え指示手段
を有し、
前記クライアント装置は、
受信したコンテンツに埋め込まれたコンテンツを取得するリクエストを送信し、表示中のコンテンツを前記リクエストに対するレスポンスに差し替えるコンテンツ取得手段
を有することを要件とする。
また、このコンテンツ中継方法は、
クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置におけるコンテンツ中継方法であって、
前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記サーバから送信されたコンテンツを保持するキャッシュ保持手段に保持されているかを判断する保持判断ステップと、
前記保持判断ステップにおいて、前記キャッシュ保持手段に保持されていると判断された場合に、前記キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断ステップと、
前記キャッシュ利用判断ステップにおいて、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持ステップと、
前記リクエスト情報保持ステップにおいて格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択ステップと、
前記キャッシュ対象選択ステップにより、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新ステップと
を有することを要件とする。
クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置におけるコンテンツ中継方法であって、
前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記サーバから送信されたコンテンツを保持するキャッシュ保持手段に保持されているかを判断する保持判断ステップと、
前記保持判断ステップにおいて、前記キャッシュ保持手段に保持されていると判断された場合に、前記キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断ステップと、
前記キャッシュ利用判断ステップにおいて、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持ステップと、
前記リクエスト情報保持ステップにおいて格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択ステップと、
前記キャッシュ対象選択ステップにより、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新ステップと
を有することを要件とする。
また、このプログラムは、
コンピュータを、
クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツがサーバから送信されたコンテンツを保持するキャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
して機能させることを要件とする。
コンピュータを、
クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツがサーバから送信されたコンテンツを保持するキャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
して機能させることを要件とする。
開示のコンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラムは、セキュリティを維持しつつ、クライアント側のコンテンツのリクエストから該コンテンツ表示までの時間を短縮できる効果を奏する。
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
(第1の実施例)
本発明の実施例に係るコンテンツ中継システムとしての通信システムの構成の一例について、図1を参照して説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
(第1の実施例)
本発明の実施例に係るコンテンツ中継システムとしての通信システムの構成の一例について、図1を参照して説明する。
本実施例に係る通信システム1000は、クライアント装置100n(nは、n>0の整数)を有する。図1には、一例としてn=2の場合を示している。クライアント装置100nは、一台であってもよいし、複数であってもよい。クライアント装置100nは拠点側のネットワーク、言い換えればユーザ側のネットワークに存在する。クライアント装置100nは、例えばPCにより構成され、入力装置、演算装置、制御装置、記憶装置及び出力装置により構成される。クライアント装置100nは、プロキシサーバ200を介して通信網50を介した先にあるサーバ300に対してアクセスを行う。通信網50としては、インターネット、バックボーンネットワークが含まれる。例えば、クライアント装置100n上のブラウザにより、プロキシサーバ200を経由して外部のサーバ300と所定のプロトコル、例えばHTTP(HyperText Transfer Protocol)を用いた通信を行う。
また、通信システム1000は、コンテンツ中継装置としてのプロキシサーバ200を有する。プロキシサーバ200は拠点側のネットワークに存在する。例えば、プロキシサーバ200は、通信網50を介した先にあるサーバ300に対してアクセスを行う。そして、プロキシサーバ200は、上述したように、中継したサーバ300からのコンテンツをキャッシュに保持する。その後、クライアント装置100nからの要求に応じて、該要求対象のコンテンツがキャッシュ内に保持されている場合にはそのコンテンツを応答する。プロキシサーバ200は、例えば、入力装置、演算装置、制御装置、記憶装置及び出力装置により構成される。プロキシサーバ200は、インターネットなどの外部ネットワークとLAN(Local Area Network)などの内部ネットワークとの接点に設置されるようにしてもよい。
また、通信システム1000は、サーバ300を有する。サーバ300は、クライアント装置100nに対し、自サーバ300の持っている機能やデータ(コンテンツ)を提供する。例えば、サーバ300は、WWWサーバにより構成されるようにしてもよい。サーバ300は、例えば、入力装置、演算装置、制御装置、記憶装置及び出力装置により構成される。例えば、サーバ300のドメイン名として、www.sample.comが登録されている場合、クライアント装置100nは、例えば、http://www.sample.com/へHTTPリクエストを送信する。
なお、図1には、一例としてプロキシサーバ200及びサーバ300が、いずれも1つの場合を示している。しかし、プロキシサーバ200及びサーバ300が複数であっても構わない。
また、本実施例では、プロキシサーバ200がクライアント側のネットワークに設置された場合について説明するが、サーバ側のネットワークに設置するようにしてもよい。またこの場合、リバースプロキシとして構成するようにしてもよい。
また、本実施例では、プロキシサーバ200を個別のハードウエアとして構成した場合について説明するが、ソフトウェアとして構成するようにしてもよい。この場合、該ソフトウェアは、ファイアウォールが設置されている場合には、該ファイアウォールにインストールすることにより設定するようにしてもよいし、サーバ300にインストールすることにより設定するようにしてもよい。
本実施例に係るコンテンツ中継システムでは、クライアント装置100nへの応答速度を高速化するため、キャッシュ禁止と指定されているコンテンツであっても、全ユーザに対して共通に表示可能なコンテンツである場合にはキャッシュに強制的に格納する。このようなコンテンツとして例えば、更新頻度が高いために、キャッシュ禁止と指定されているコンテンツが含まれる。一方で、本実施例に係るプロキシサーバ200は、ユーザ毎の情報、言い換えればユーザ毎に異なるコンテンツはキャッシュに格納しない。すなわち、プロキシサーバ200は、ユーザ毎にリクエストメッセージが異なる場合はキャッシュ対象外とする。また、プロキシサーバ200は、別ユーザでも同じリクエストを送れば同じリプライが返ってくる場合はキャッシュ禁止と指定されているコンテンツでも強制的にキャッシュに格納する。例えば、HTTPリクエストメッセージ中に追加情報が付与されていない場合、対応するHTTPリプライのデータを強制的にキャッシュに格納する。例えば、追加情報には、ユーザID及び/又はセッションIDなどが含まれ、クッキー(Cookie)やPOST/GETのパラメータとして、リクエストに付与される。
また、本実施例に係るプロキシサーバ200は、キャッシュに保持されているリクエストに対応するコンテンツが有効期限切れなどで古い場合、該古いキャッシュをクライアント装置100nに表示させるために送信し、最新情報を後からクライアント装置100nに表示させる。すなわち、プロキシサーバ200は、有効期限切れ及び/又はキャッシュ禁止のコンテンツをクライアント装置100nに仮表示させておき、最新ではないものは後から差し替えを行う。具体的には、プロキシサーバ200は、キャッシュ禁止もしくは有効期限切れのコンテンツを応答するときに、該応答するコンテンツの中にスクリプトを埋め込んでおき、クライアント装置100nのブラウザ上で当該スクリプトを実行させる。当該スクリプトの実行中に、サーバ300からコンテンツの取得し、該コンテンツの取得後に画面の差し替えを行う。スクリプトとしては、例えばJava(登録商標)Script等が含まれる。
本発明の第1の実施例に係るプロキシサーバ200について、図2を参照して説明する。
本実施例に係るプロキシサーバ200は、クライアント側送受信部202を備える。クライアント側送受信部202は、クライアント装置100nとの間でフレームの送受信を行う。例えば、クライアント側送受信部202は、クライアント装置100nから受信したコンテンツのリクエスト(コンテンツリクエスト)を後述するキャッシュ利用判断部206に渡す。例えば、クライアント装置100nから送信されたHTTPリクエストをキャッシュ利用判断部206に入力する。具体的には、クライアント側送受信部202は、クライアント装置100nから図3に示すようなHTTPリクエストが送信された場合に、該HTTPリクエストをキャッシュ利用判断部206に入力する。HTTPリクエストには、HTTPヘッダが含まれる。
また、本実施例に係るプロキシサーバ200は、サーバ側送受信部204を備える。サーバ側送受信部204は、サーバ300との間でフレームの送受信を行う。例えば、サーバ側送受信部204は、サーバ300から受信したコンテンツリクエストに対するコンテンツのレスポンスを後述するキャッシュ対象選択部214に渡す。例えば、サーバ側送受信部204は、サーバ300から送信されたHTTPレスポンスをキャッシュ対象選択部214に渡す。具体的には、サーバ側送受信部204は、サーバ300から図4に示すようなHTTPレスポンスが送信された場合に、該HTTPレスポンスをキャッシュ対象選択部214に入力する。HTTPレスポンスには、HTTPヘッダと、HTMLヘッダと、HTML bodyとが含まれる。
また、本実施例に係るプロキシサーバ200は、キャッシュ利用判断部206を備える。キャッシュ利用判断部206は、クライアント側送受信部202により入力されたコンテンツリクエストに基づいて、該コンテンツリクエストに含まれる宛先を参照し、該宛先が後述する共有キャッシュ保持部212に格納されているかを判断する。例えば、キャッシュ利用判断部206は、クライアント側送受信部202によりHTTPリクエストが入力されると、共有キャッシュ保持部212に格納されたコンテンツを読み出すことにより、同じ宛先のコンテンツが格納されているかを判断する。
キャッシュ利用判断部206は、共有キャッシュ保持部212に同じ宛先のコンテンツが格納されていない場合は、サーバ300にコンテンツリクエストを転送するために、サーバ側送受信部204に該コンテンツリクエストを渡す。そして、キャッシュ利用判断部206は、後述するリクエスト情報保持部210に、該コンテンツリクエストの情報を格納する。
また、キャッシュ利用判断部206は、コンテンツリクエストのメッセージ中にキャッシュ利用禁止の指定が含まれる場合は、共有キャッシュ保持部212に該コンテンツの有無にかかわらず、すなわち該コンテンツが格納されているか否かにかかわらずサーバ300に該コンテンツリクエストを転送するために、サーバ側送受信部204に該コンテンツリクエストを入力する。例えば、キャッシュ利用禁止の指定としては、コンテンツリクエストのキャッシュ−コントロール(Cache-control)にノー−キャッシュ(no-cache)の情報を含めることにより指定してもよい。具体的には、キャッシュ利用判断部206は、コンテンツリクエストのメッセージ中にキャッシュ利用禁止の指定が含まれる場合は、共有キャッシュ保持部212に該コンテンツの有無の確認を行わず、サーバ側送受信部204に該コンテンツリクエストを入力する。
また、キャッシュ利用判断部206は、共有キャッシュ保持部212に該コンテンツが格納されている場合には、以下の処理を行う。キャッシュ利用判断部206は、該コンテンツの有効期限を参照し、有効期限が切れていた場合は、当該キャッシュに保持されているデータを後述する差し換え指示部208に渡す。また、キャッシュ利用判断部206は、該コンテンツにキャッシュ禁止フラグが付与されている場合は、共有キャッシュ保持部212に保持されている該データを後述する差し換え指示部208に渡す。また、キャッシュ利用判断部206は、該コンテンツに含まれる有効期限が有効期限内で、かつ該コンテンツにキャッシュ禁止フラグが付与されていない場合は、当該共有キャッシュ保持部212に保持されている該データをHTTPレスポンスとしてクライアント側送受信部202に渡す。
また、本実施例に係るプロキシサーバ200は、差し換え指示部208を備える。差し替え指示部208は、キャッシュ利用判断部206からデータ(HTTPレスポンス)が入力された場合、当該HTTPレスポンスのメッセージ中にコンテンツの取得及び差し換え処理を行うプログラムを埋め込んで、クライアント側送受信部202に渡す。コンテンツの取得及び差し替え処理を行うプログラムとしては、ウェブブラウザなどでの利用に適したスクリプト言語が含まれる。このスクリプト言語は簡易プログラム言語と呼ばれてもよい。具体的には、ジャバスクリプト(JavaScript)などが含まれる。
また、本実施例に係るプロキシサーバ200は、リクエスト情報保持部210を備える。リクエスト情報保持部210は、サーバ300へ転送したコンテンツリクエスト、例えばHTTPリクエストの情報を保持する。例えば、HTTPリクエストの情報としては、該リクエストのTCP(Transmission Control Protocol)コネクションの識別子、URL(Uniform Resource Locator)が含まれる。さらに、追加情報として、例えばクッキー(Cookie)及び/又はGET/POSTパラメータが付与されているか否かを示す情報を保持するようにしてもよい。また、リクエスト情報保持部210は、HTTPリクエストメッセージそのものを保持するようにしてもよい。具体的には、例えばリクエスト情報保持部210に保持されるリクエスト情報の構造例は、図5のような構成となる。リクエスト情報保持部210の各エントリは、プロキシサーバ200のIPアドレス(proxy-ip)が格納されるフィールドと、プロキシサーバ200のポート番号(proxy-port)が格納されるフィールドと、サーバ300のIPアドレス(server-ip)が格納されるフィールドと、サーバ300のポート番号(server-port)が格納されるフィールドと、URLが格納されるフィールドと、追加情報の有無を示す情報が格納されるフィールドと、コンテンツリクエストを示す情報が格納されるフィールドとを含む。これは、一例であり適宜変更ができる。
また、本実施例に係るプロキシサーバ200は、共有キャッシュ保持部212を備える。共有キャッシュ保持部212は、サーバ300からの応答コンテンツを保持する。また、共有キャッシュ保持部212は、キャッシュデータ、すなわちサーバ300から応答されたコンテンツ(応答コンテンツ)に加えて、該コンテンツのURL、該コンテンツの有効期限、該コンテンツへのキャッシュ禁止フラグの有無を示す情報などを保持するようにしてもよい。本実施例では、一例として応答コンテンツ(HTTPレスポンス)のHTTPヘッダも含めて保存する場合について示すが、HTTPヘッダを保存しない場合においても適用できる。この場合、共有キャッシュ保持部212に保持されるキャッシュデータの構造例は、図6のような構成となる。共有キャッシュ保持部212の各エントリは、コンテンツのURLが格納されるフィールドと、キャッシュ禁止の有無を示す情報が格納されるフィールドと、有効期限を示す情報が格納されるフィールドと、コンテンツレスポンスを示す情報が格納されるフィールドとを含む。これは、一例であり適宜変更ができる。
また、本実施例に係るプロキシサーバ200は、キャッシュ対象選択部214を備える。キャッシュ対象選択部214は、サーバ側送受信部204からHTTPレスポンスを受け取ると、該HTTPレスポンスに含まれるリクエスト情報に基づいて、リクエスト情報保持部210から対応するHTTPリクエスト情報を読み出す。例えば、キャッシュ対象選択部214は、リクエスト情報に含まれるコンテンツのURLに基づいて、リクエスト情報保持部210から対応するHTTPリクエスト情報を読み出す。また、キャッシュ対象選択部214は、該HTTPレスポンスにキャッシュ禁止の指示が付与されているか否かを判別し、該コンテンツがキャッシュ対象のコンテンツであるか否かを判断する。例えば、キャッシュ対象選択部214は、HTTPレスポンスのヘッダ中の例えばPragmaにノー−キャッシュ(no-cache)の情報が含まれるか否か、キャッシュ−コントロール(Cache-control)にノー−キャッシュ(no-cache)の情報が含まれるか否かにより判断する。該コンテンツがキャッシュ対象のコンテンツであると判断した場合は、キャッシュ対象選択部214は、キャッシュ禁止の指示の有無を示す情報及び該HTTPレスポンスをキャッシュ更新部216に渡す。ここでは、キャッシュ禁止の指示がないことを示す情報がキャッシュ更新部216に渡される。
また、キャッシュ対象選択部214は、キャッシュ対象外、すなわちキャッシュ禁止対象のコンテンツであると判断した場合、取得したHTTPレスポンスに対応するHTTPリクエストに追加情報が含まれるか否かに基づいて、該HTTPレスポンスを保持するか否かを判断する。追加情報が含まれない場合、キャッシュ対象選択部214は該HTTPレスポンスを保持すると判断する。また、追加情報が含まれる場合、キャッシュ対象選択部214は該HTTPレスポンスを保持しないと判断する。
また、本実施例に係るプロキシサーバ200は、キャッシュ更新部216を備える。キャッシュ更新部216は、キャッシュ対象選択部214により受け取ったHTTPレスポンスに含まれるコンテンツのURL、有効期限、キャッシュ禁止の指示の有無を示す情報をキャッシュデータとして共有キャッシュ保持部212に渡す。また、キャッシュ更新部216は、該HTTPレスポンスをクライアント側送受信部202に渡す。
プロキシサーバ200のハードウエア構成例について説明する。
プロキシサーバ200は、CPUと、ROMと、RAMと、ハードディスク装置等の大容量の記憶装置とを備え、さらにフレキシブルディスク装置等の補助記憶装置を備える。
コンピュータをプロキシサーバ200として機能させるためのプログラムは、例えば、フレキシブルディスク、CD−ROM、メモリカード等の記録媒体に記録された状態で提供される。この記録媒体をコンピュータの補助記憶装置に挿入すると、媒体に記録されたプログラムが読み取られる。そして、CPUは、読み込んだプログラムをRAMあるいは記憶装置に書き込み、このプログラムにしたがって実施例で説明するような処理を実行する。また、プログラムを、通信網50を介してダウンロードするようにしてもよい。
次に、本実施例に係るプロキシサーバ200の動作について、図7−図9を参照して説明する。本実施例では、(1)Cookieなしのリクエスト受信時、すなわち追加情報が含まれないコンテンツリクエストが受信された場合、(2)リクエストのレスポンスにキャッシュ禁止の指示がある場合、すなわちコンテンツリクエストに対するレスポンスにキャッシュ禁止の指示が含まれる場合、(3)同一のコンテンツに対してクッキーなしのリクエストを受信した場合、すなわちキャッシュ禁止の指示が含まれるコンテンツに対して追加情報が含まれないコンテンツリクエストが受信された場合、(4)再度差し替え用のリクエスト〜リプライ受信時に分けて説明する。
(1)クッキーが含まれないHTTPリクエストが受信された場合について説明する。
本実施例では、一例としてクライアント装置1001及び1002が、サーバ300にコンテンツリクエストを送信する場合について説明する。例えば、クライアント装置1001は、サーバ300のドメイン名として、www.sample.comが登録されている場合、URLとしてhttp://www.sample.com/へHTTPリクエストを送信する。この場合、共有キャッシュ保持部212には、該URLに対応するキャッシュデータが保持されていないものとする。また、クライアント装置100nとプロキシサーバ200との間のコネクションと、プロキシサーバ200とサーバ300との間のコネクションは異なるTCPコネクションとする。プロキシサーバ200とサーバ300との間のコネクション通信では、プロキシサーバ200のIPアドレス(10.0.0.10)、サーバ300のIPアドレス(20.0.0.10)、ポート番号80を利用するものとする。プロキシサーバ200の送信時のポート番号はプロキシサーバが任意の値を設定するものとする。一例として、本実施例では、プロキシサーバ200の送信時のポート番号として「54352」から順に付与される場合について説明する。
なお、本実施例では、プロキシサーバ200が中継処理を実施するためにテーブル等を利用してサーバ300側のコネクションとクライアント装置100n側のコネクションとのくくりつけ(対応付け)が行われる場合について説明する。
クライアント装置1001上のブラウザは、HTTPリクエストを送信する。例えば、クライアント装置1001は、宛先URLとしてhttp://www.sample.com/、Cookieなし、POST/GETパラメータなしの情報を含むHTTPリクエストを送信する。プロキシサーバ200のクライアント側送受信部202は、クライアント装置1001により送信されたHTTPリクエストを受信し、キャッシュ利用判断部206に、該HTTPリクエストを渡す。
キャッシュ利用判断部206は、HTTPリクエストに含まれる宛先URLに該当するキャッシュデータがないか共有キャッシュ保持部212を検索する。例えば、キャッシュ利用判断部206は、宛先URLとしてhttp://www.sample.com/のキャッシュデータがないか共有キャッシュ保持部212を検索する。
共有キャッシュ保持部212に該宛先URLのキャッシュデータが保持されていない場合、キャッシュ利用判断部206は、リクエスト情報保持部210に該HTTPリクエストの情報を格納する。例えば、リクエスト情報には、上述したようにプロキシサーバ200のIPアドレスと、プロキシサーバ200のポート番号と、サーバ300のIPアドレスと、サーバ300のポート番号と、URLと、追加情報の有無を示す情報と、コンテンツリクエストを示す情報が含まれる。例えば、キャッシュ利用判断部206は、リクエスト情報保持部210にproxy-ip=10.0.0.10, proxy-port=54352, server-IP=20.0.0.10, server-port=80, URL=http://www.sample.com, 追加情報なしを示す情報を格納する。また、キャッシュ利用判断部206は、該HTTPリクエストをサーバ側送受信部204に渡す。
サーバ側送受信部204は、受け取った該HTTPリクエストをhttp://www.sample.com/のURLを持つサーバ300へ転送する。
(2)キャッシュ禁止の指示を含むレスポンスが受信された場合について説明する。
本実施例では、HTTPリクエストを受信したサーバ300が、キャッシュ禁止の指示を付与したHTTPレスポンスメッセージを応答する場合について説明する。
サーバ300は、クライアント装置1001に対して、受信したHTTPリクエストに対応するコンテンツを含むHTTPレスポンスメッセージを送信する。例えば、サーバ300は、キャッシュ禁止の指示を含むHTTPレスポンスを送信する。具体的には、サーバ300は、HTTPヘッダ中にキャッシュ禁止の指示、例えばCache-controlにno-cacheの記述が含まれるHTTPレスポンスを送信する。また、サーバ300は、HTTPヘッダではなく、HTML(HyperText Markup Language)ヘッダ中にキャッシュ禁止の指示、例えばCache-controlにno-cacheの記述が含まれるHTTPレスポンスを送信するようにしてもよい。
サーバ側送受信部204は、サーバ300により送信されたHTTPレスポンスを受信し、キャッシュ対象選択部214に、該HTTPレスポンスに含まれるメッセージを渡す。
キャッシュ対象選択部214は、当該HTTPレスポンスの情報に基づいて、リクエスト情報保持部210を検索し、URL及び追加情報の有無を示す情報を取得する。例えば、HTTPレスポンスの情報としては、プロキシサーバ200のIPアドレス、プロキシサーバ200のポート番号、サーバ300のIPアドレス、サーバ300のポート番号のいずれかが含まれる。例えば、キャッシュ対象選択部214は、当該HTTPレスポンスの情報として、proxy-ip=10.0.0.10、 proxy-port=54352, server-IP=20.0.0.10, server-port=80のいずれか基づいて、リクエスト情報保持部210を検索し、URL及び追加情報の有無を示す情報を取得する。ここでは、URLとして、http://www.sample.com/、追加情報なしの情報が取得される。
キャッシュ対象選択部214は、取得したHTTPレスポンスに対応するHTTPリクエストに追加情報が含まれるか否かに基づいて、該HTTPレスポンスを保持するか否かを判断する。追加情報が含まれない場合、キャッシュ対象選択部214は該HTTPレスポンスを保持すると判断する。また、追加情報が含まれる場合、キャッシュ対象選択部214は該HTTPレスポンスを保持しないと判断する。ここでは、キャッシュ対象選択部214は、取得したHTTPレスポンス対するHTTPリクエストに追加情報が含まれないため、HTTPヘッダ中にキャッシュ禁止の指示があるが、該HTTPレスポンスを保持すると判断する。キャッシュ対象選択部214は、キャッシュ更新部216に該HTTPレスポンスを渡す。
キャッシュ更新部216は、キャッシュ対象選択部214からHTTPレスポンスを受け取ると、該HTTPレスポンスに含まれるリクエストURLと、キャッシュ禁止のフラグと、有効期限と、HTTPレスポンスを共有キャッシュ保持部212に格納する。具体的には、該HTTPレスポンスがキャッシュ禁止の情報を含むコンテンツであることから、共有キャッシュ保持部212に、リクエストURLとしてhttp://www.sample.com/、キャッシュ禁止のフラグ、有効期限として例えば2007/7/1 10:00:00、及び該HTTPレスポンスを格納する。また、Expires(期限切れ)ヘッダに有効期限が明記されていない場合には、有効期間がプロキシサーバ200により決定されるようにしてもよい。例えば、プロキシサーバ200は、キャッシュ作成後3日後などの有効期間を、既存のアルゴリズムにより決定する。また、キャッシュ更新部216は、HTTPレスポンスをクライアント送受信部202に渡す。
クライアント送受信部202は、キャッシュ更新部216によりHTTPレスポンスを受け取ると、該HTTPレスポンスをクライアント装置1001に送信する。
クライアント装置1001のブラウザは、プロキシサーバ200により送信されたHTTPレスポンスのコンテンツを表示する。
(3)再度Cookieなしのリクエストを受信した場合について説明する。
上記(1)におけるクライアント装置1001と同様に、クライアント装置1002が宛先URLとしてのhttp://www.sample.com/へHTTPリクエストを送信する場合について説明する。
クライアント装置1002上のブラウザは、HTTPリクエストを送信する。例えば、クライアント装置1002は、宛先URLとして、http://www.sample.com/、Cookieなし、POST/GETパラメータなしの情報を含むHTTPリクエストを送信する。プロキシサーバ200のクライアント側送受信部202は、該HTTPリクエストを受信し、キャッシュ利用判断部206に、該HTTPリクエストを渡す。
キャッシュ利用判断部206は、該HTTPリクエストに含まれる宛先URLに該当するキャッシュデータがないか共有キャッシュ保持部212を検索する。例えば、キャッシュ利用判断部206は、宛先URLとして、http://www.sample.com/のキャッシュデータがないか共有キャッシュ保持部212を検索する。キャッシュ利用判断部206は、共有キャッシュ保持部212を検索した結果、宛先URLのキャッシュデータが保持されているため、エントリを取得する。例えば、エントリには、キャッシュ禁止のフラグ、有効期限、例えば、2007/7/1 10:00:00、及び該HTTPレスポンスが含まれる。
キャッシュ利用判断部206は、該キャッシュデータにキャッシュ禁止フラグが付与されているため、該HTTPレスポンスを差し替え指示部208に渡す。なお、キャッシュ禁止のフラグがない場合でも、現在の時刻がキャッシュの有効期限以降、すなわち該コンテンツが有効期限切れであれば以下同様の動作となる。すなわち、該HTTPレスポンスを差し替え指示部208に渡す。
差し替え指示部208は、HTTPレスポンスを受け取ると、当該HTTPレスポンスのメッセージ中に該コンテンツの取得及び差し換え処理を行うプログラムを埋め込んで、クライアント側送受信部202に入力する。具体的には、HTTPヘッダ中に、当該プログラムをスクリプトタグ等により埋め込み、さらに、コンテンツが読み込まれたら、該埋め込まれただプログラムを実行する処理を行わせるコマンドを追加する。例えば、bodyタグのonload属性などを利用して、該埋め込まれたプログラムを起動するコマンドを追加する。
差し替え指示部208は、プログラムが埋め込まれ、該プログラムを実行するコマンドが追加されたHTTPレスポンスをクライアント側送受信部202に渡す。
クライアント送受信部202は、差し替え指示部208により受け取ったHTTPレスポンスをクライアント装置1002に対して送信する。
クライアント装置1002は、プロキシサーバ200により送信されたHTTPレスポンスを受信すると、ブラウザは、該HTTPレスポンスのコンテンツを実行し、表示する。例えば、クライアント装置100nは、コンテンツ取得手段としてのコンテンツ取得プログラムを有する。クライアント装置100nは、CPUと、ROMと、RAMと、ハードディスク装置等の大容量の記憶装置とを備え、さらにフレキシブルディスク装置等の補助記憶装置を備える。
コンピュータをクライアント装置100nとして機能させるためのプログラムは、例えば、フレキシブルディスク、CD−ROM、メモリカード等の記録媒体に記録された状態で提供される。この記録媒体をコンピュータの補助記憶装置に挿入すると、媒体に記録されたプログラムが読み取られる。そして、CPUは、読み込んだプログラムをRAMあるいは記憶装置に書き込み、このプログラムにしたがって実施例で説明するような処理を実行する。また、プログラムを、通信網50を介してダウンロードするようにしてもよい。このプログラムには、コンテンツ取得プログラムが含まれる。
このコンテンツ取得プログラムは、コンピュータに、最初にキャッシュ(HTTPレスポンスのコンテンツ)を表示させると同時にリクエストを送信させ、該リクエストに対するレスポンスを受信させると、表示中のコンテンツを該レスポンスに差し替える処理を行わせる。また、コンテンツ取得プログラムは、コンピュータに、最初のキャッシュに保持されたコンテンツを表示させる前に、該古いキャッシュを表示させるかどうかをユーザに選択させる処理を行わせるようにしてもよい。また、コンテンツ取得プログラムは、コンピュータに、最初のキャッシュを表示させている間は、古いキャッシュを表示中であることをクライアント装置に表示する処理を行わせるようにしてもよい。また、コンテンツ取得プログラムは、コンピュータに、レスポンスを受信した場合に、該レスポンスへの差し換えを即座に行わせるのではなく、準備完了のメッセージを表示させて、差し替えタイミングをユーザに選択させる処理を行わせるようにしてもよい。具体的には、コンテンツ取得プログラムは、onload属性により呼ばれる関数内に、JavaScriptのオブジェクトとして用意されているXMLHttpRequestを利用してコンテンツを取得するような実装が可能である。
(4)再度差し替え用のリクエストからリプライ受信までの処理について説明する。
クライアント装置1002においてスクリプトが実行され、上記(1)におけるクライアント装置1001と同様に、クライアント装置1002が、URLとして、http://www.sample.com/へHTTPリクエストを送信する場合について説明する。
また、プロキシサーバ200とサーバ300との間のコネクション通信では、プロキシサーバ200のIPアドレスと、プロキシサーバ200のポート番号と、サーバ1001のIPアドレスと、ポート番号80とを利用する場合について説明する。例えば、プロキシサーバ200のIPアドレスとして(10.0.0.10)、プロキシサーバ200のポート番号として(54353)、サーバ1001のIPアドレスとして(20.0.0.10)、ポート番号として80番が利用される。
クライアント装置1002のブラウザは、HTTPレスポンスを表示すると、プロキシサーバ200の差し替え指示部208により埋め込まれたプログラムを起動する。例えば、ブラウザは、bodyのonload属性から、スクリプトプログラムを起動する。そして、クライアント装置1002のブラウザは、URLとして、http://www.sample.com/宛にHTTPリクエストを送信する。この際、例えば、HTTPヘッダ中にCache-controlにno-cache等のキャッシュ利用禁止の指示を記載することにより、プロキシサーバ200上のキャッシュを受け取ることを拒否することができ、該キャッシュを表示させないようにすることができる。コンテンツ取得プログラムは、HTTPレスポンスの受信監視をする。このようにすることにより、HTTPリクエストに対する応答が受信された場合に差し替えプログラムを起動できる。
クライアント側送受信部202は、クライアント装置1002のブラウザにより送信されたHTTPリクエストを受信すると、キャッシュ利用判断部206に該HTTPリクエストを渡す。
キャッシュ利用判断部206は、該HTTPリクエストにキャッシュ利用禁止の指示が含まれるため、共有キャッシュ保持部212の検索を行わず、リクエスト情報保持部210に当該HTTPリクエストの情報を格納する。例えば、キャッシュ利用判断部206は、proxy-ip=10.0.0.10, proxy-port=54353, server-IP=20.0.0.10, server-port=80, URL=http://www.sample.com, 追加情報なしを示す情報を、リクエスト情報保持部210に格納する。キャッシュ利用判断部206は、該HTTPリクエストをサーバ側送受信部204に渡す。
サーバ側送受信部204は、受け取った該HTTPリクエストをhttp://www.sample.com/のURLを持つサーバ300へ転送する。
サーバ300は、クライアント装置1002に対して、HTTPリクエストに対応するコンテンツを含むHTTPレスポンスメッセージを送付する。この際、HTTPヘッダ中に、キャッシュ利用禁止の指定、例えばCache-control:
no-cacheの記述が含まれるものとする。
no-cacheの記述が含まれるものとする。
サーバ側送受信部204が、サーバ300からHTTPレスポンスを受信すると、キャッシュ対象選択部214に、該HTTPレスポンスを渡す。
キャッシュ対象選択部214は、サーバ側送受信部204により受け取ったHTTPレスポンスに含まれる情報に基づいて、URL及び追加情報の有無を示す情報を取得する。例えば、キャッシュ対象選択部214は、HTTPレスポンスに含まれるプロキシサーバ200のIPアドレス、プロキシサーバ200のポート番号、サーバ300のIPアドレス、サーバ300のポート番号に基づいて、リクエスト情報保持部210に格納されたリクエスト情報を検索し、URL及び追加情報の有無を示す情報を取得する。例えば、該HTTPレスポンスの情報(proxy-ip=10.0.0.10, proxy-port=54353, server-IP=20.0.0.10, server-port=80)に基づいて、リクエスト情報保持部210を検索し、リクエスト情報を取得する。ここでは、URL及び追加情報なしを取得する。
キャッシュ対象選択部214は、リクエスト情報保持部210により受け取ったリクエスト情報に基づいて、HTTPレスポンスをキャッシュに保持するか否かを判断する。具体的には、キャッシュ対象選択部214は、リクエスト情報保持部210により受け取ったリクエスト情報に基づいて、該リクエスト情報に追加情報が含まれるかに基づいて、共有キャッシュ保持部212に保持するか否かを判断する。具体的には、キャッシュ対象選択部214は、追加情報が含まれる場合には共有キャッシュ保持部212に保持しないと判断し、該HTTPレスポンスをクライアント側送受信部202に入力し、追加情報が含まれない場合には共有キャッシュ保持部212に保持すると判断し、該HTTPレスポンスをキャッシュ更新部216に入力する。ここでは、追加情報なしであるため、HTTPヘッダ中にキャッシュ禁止の指示があるが、キャッシュ更新部216に該HTTPレスポンスを渡す。
キャッシュ更新部216は、共有キャッシュ保持部212に、リクエストURL、キャッシュ禁止のフラグ、有効期限及び該HTTPレスポンスを格納する。例えば、リクエストURLとしてhttp://www.sample.com、有効期限として2007/7/1 10:05:00を格納する。なお、有効期限は受信時刻を元にプロキシサーバ200のアルゴリズムで再計算されたものとしてもよい。キャッシュ更新部216は、HTTPレスポンスをクライアント送受信部202に渡す。
クライアント側送受信部202は、キャッシュ更新部216により受け取ったHTTPレスポンスをクライアント装置1002に対して送信する。
クライアント装置1002のブラウザは該HTTPレスポンスを受信すると、HTTPレスポンス受信イベントが発生することによりコンテンツの差し替えプログラムが起動され、ブラウザの表示内容が該HTTPレスポンスの内容に差し替えられる。なお、コンテンツに変化がない場合は、差し替えを行わないようにしてもよい。コンテンツに変化がない場合には、コンテンツ自体が同じ場合、HTTPヘッダのDate値が更新されていない場合、サーバから304 not modifiedの応答があった場合などが含まれる。
ここで、コンテンツの差し替えは、例えばJavaScriptのオブジェクトとして用意されているdocument.getElementById(‘body’).innerTextを用いてHTMLのコンテンツ全体を示すbodyタグ配下全体を新しいコンテンツに置き換えるような実装が可能である。
次に、本実施例に係るプロキシサーバ200におけるHTTPリクエストメッセージに対する処理について、図8を参照して説明する。
プロキシサーバ200は、クライアント装置100nからHTTPリクエストを受信したか否かを判断する。具体的には、クライアント側送受信部202は、クライアント装置100nからHTTPリクエストを受信したか否かを判断する。
HTTPリクエストを受信した場合(ステップS802:YES)、プロキシサーバ200は、該HTTPリクエストにキャッシュ利用禁止の指定が含まれているか否かを判断する(ステップS804)。具体的には、キャッシュ利用判断部212は、該HTTPリクエストのヘッダに、キャッシュ利用禁止の指示が含まれるか否かを判断することにより、キャッシュ禁止か否かを判断する。
キャッシュ利用禁止でない場合(ステップS804:NO)、キャッシュ利用判断部206は、共有キャッシュ保持部212を検索する(ステップS806)。
キャッシュ利用判断部206は、共有キャッシュ保持部212に、該HTTPリクエストに対応するコンテンツが格納されているか否かを判断する(ステップS808)。
共有キャッシュ保持部212に、該HTTPリクエストに対応するコンテンツが格納されている場合(ステップS808:YES)、キャッシュ利用判断部206は、該コンテンツの有効期限が切れているかを判断する(ステップS810)。
該コンテンツの有効期限が切れていない場合(ステップS810:NO)、キャッシュ利用判断部206は、該コンテンツにキャッシュ禁止フラグがあるかを判断する(ステップS812)。
該コンテンツにキャッシュ禁止フラグがない場合(ステップS812:NO)、キャッシュ利用判断部206は、該コンテンツをクライアント側送受信部202に渡し、クライアント側送受信部202は、クライアント装置にHTTPリプライを転送する(ステップS816)。
一方、ステップS810において該コンテンツの有効期限が切れている場合(ステップS810:YES)及び該コンテンツにキャッシュ禁止フラグがある場合(ステップS812:YES)、差し替え指示部208は、該コンテンツにスクリプトの埋め込みを行う(ステップS814)。そして、ステップS816に遷移し、差し替え指示部208は、スクリプトの埋め込みが行われたコンテンツをクライアント側送受信部202に渡し、クライアント側送受信部202は、クライアント装置100nに、該スクリプトの埋め込みが行われたコンテンツをHTTPリプライとして転送する(ステップS816)。
また、ステップS804において、キャッシュ利用禁止である場合(ステップS804:YES)及びステップS808において、共有キャッシュ保持部212に、該HTTPリクエストに対応するコンテンツが格納されていない場合(ステップS808:NO)、キャッシュ利用判断部206は、リクエスト情報保持部210に、リクエスト情報を記録する(ステップS818)。そして、キャッシュ利用判断部206は、HTTPリクエストをサーバ側送受信部204に渡す。サーバ側送受信部204は、キャッシュ利用判断部206から取得したHTTPリクエストをサーバ300に転送する(ステップS820)。
ステップS802において、HTTPリクエストを受信していない場合(ステップS802:NO)、例えば、HTTPレスポンスを受信した場合、プロキシサーバ200は、該HTTPレスポンスにキャッシュ利用禁止の指定が含まれているか否かを判断する(ステップS822)。具体的には、キャッシュ対象選択部214は、該HTTPレスポンスのヘッダに、キャッシュ利用禁止の指示が含まれるか否かを判断することにより、キャッシュ禁止か否かを判断する。
キャッシュ利用禁止である場合(ステップS822:YES)、キャッシュ対象判断部214は、リクエスト情報保持部210より該HTTPレスポンスに対応するリクエスト情報を読み出す(ステップ824)。そして、キャッシュ対象選択部214は、該リクエスト情報に追加情報が含まれるかを判断する(ステップS826)。
該リクエスト情報に追加情報が含まれない場合(ステップS826:NO)及びステップS822においてキャッシュ利用禁止でない場合(ステップS822:NO)、キャッシュ対象選択部214は、キャッシュ更新部216に、該リクエスト情報に対応するコンテンツを入力する。キャッシュ更新部216は、共有キャッシュ保持部212に、該コンテンツを格納する(ステップ828)。そして、キャッシュ更新部216は、HTTPレスポンスをクライアント側送受信部202に渡す。
一方、ステップS826において、該リクエスト情報に追加情報が含まれている場合(ステップS826:YES)、キャッシュ対象選択部214は、HTTPレスポンスをクライアント側送受信部202に渡す。
クライアント側送受信部202は、キャッシュ更新部216又はキャッシュ対象選択部214により受け取ったHTTPリスポンスをHTTPリプライとして、HTTPリクエストを送信したクライアント装置に転送する(ステップS830)。
なお、上述した実施例では共有キャッシュ保持部212にキャッシュ用の有効期限をあらかじめ計算して格納する場合について説明したが、HTTPヘッダも含めて保存しておき、保存してあるキャッシュを取り出すときに有効期限を再計算するようにしてもよい。
本実施例によれば、ユーザ固有に応答されるコンテンツは他のユーザに表示させずに、ユーザ固有に応答されないコンテンツは、キャッシュ禁止もしくはキャッシュの有効期限切れであってもキャッシュに保持されたコンテンツを強制表示し、その後、コンテンツの差し換えを行うことができる。このように、キャッシュを仮表示できるため、コンテンツの表示時間を短縮することができる。
(第2の実施例)
クライアント装置100nからのリクエストに追加情報が付与されている場合、その情報がユーザを識別するための情報ではない場合もある。しかし、追加情報はサーバ300上のアプリケーションの実装に依存するため、該追加情報がユーザの識別情報かどうかを判別することは難しい。従って、実際は各ユーザに同じコンテンツを応答している場合でも上述した第1の実施例ではキャッシュに保持することができなかった。
(第2の実施例)
クライアント装置100nからのリクエストに追加情報が付与されている場合、その情報がユーザを識別するための情報ではない場合もある。しかし、追加情報はサーバ300上のアプリケーションの実装に依存するため、該追加情報がユーザの識別情報かどうかを判別することは難しい。従って、実際は各ユーザに同じコンテンツを応答している場合でも上述した第1の実施例ではキャッシュに保持することができなかった。
そこで、本実施例に係るコンテンツ中継システムでは、プロキシサーバ200は、リクエストメッセージ中の追加情報を削除したリクエストメッセージを、サーバ300に送信する。具体的には、リクエスト情報保持部210に追加情報が付与されていたことが記録されており、かつレスポンスメッセージがキャッシュ禁止対象のコンテンツの場合に、プロキシサーバ200は、コンテンツを取得するための追加情報を付与しないリクエストを作成し、送信する。そして、キャッシュ更新部216は該レスポンスメッセージを共有キャッシュ保持部212に追加する。
本実施例に係るプロキシサーバ200は、図2を参照して説明したプロキシサーバに代理リクエスト生成部218を有するようにしたものである。
代理リクエスト生成部218は、キャッシュ対象選択部214からコンテンツの取得依頼を受け取ると、当該URLへのHTTPリクエストを作成し、リクエスト情報をリクエスト情報保持部210に格納する。コンテンツの取得依頼には、取得先のURLが含まれる。また、代理リクエスト生成部218は、作成したHTTPリクエストをサーバ側送受信部204に渡す。
また、本実施例に係るキャッシュ対象選択部214は、上述した第1の実施例に係るキャッシュ対象選択部の機能に加えて、リクエスト情報保持部210に追加情報ありと記載されているリクエストに対するHTTPレスポンスであり、かつキャッシュ禁止の指示が含まれるHTTPレスポンスを受信した場合に、代理リクエスト生成部218に対してコンテンツの取得依頼を行う。
また、本実施例に係るキャッシュ更新部216は、上述した第1の実施例に係るキャッシュ更新部216の機能に加えて、キャッシュ更新後、該HTTPレスポンスが代理リクエストによる応答であれば、当該レスポンスを廃棄する。
次に、本実施例に係るプロキシサーバ200の動作について、(1)Cookieありのリクエスト受信時、すなわち追加情報が含まれるコンテンツリクエストが受信された場合、(2)該リクエストのレスポンスにキャッシュ禁止の指示がある場合、(3)代理リクエストへの送信〜応答時に分けて説明する。
本実施例においては、コンテンツのURLとしてhttp://www.sample.com/withparam.htmlである場合について説明する。
(1)Cookieありのリクエストが受信された場合について説明する。
クライアント装置1001上のブラウザは、HTTPリクエストを送信する。例えば、クライアント装置1001は、宛先URLとしてhttp://www.sample.com/ withparam.html、Cookieあり(Cookie: sessionid=eix0y1kx)、POST/GETパラメータなしのHTTPリクエストを送信する。プロキシサーバ200のクライアント側送受信部202は、該HTTPリクエストを受信し、キャッシュ利用判断部206に該HTTPリクエストを渡す。
キャッシュ利用判断部206は、HTTPリクエストに含まれる宛先URLに該当するキャッシュデータがないか、共有キャッシュ保持部212を検索する。例えば、キャッシュ利用判断部206は、宛先URLとしてのhttp://www.sample.com/withparam.htmlのキャッシュデータがないか、共有キャッシュ保持部212を検索する。
共有キャッシュ保持部212に該宛先URLのキャッシュデータが保持されていない場合、キャッシュ利用判断部206は、リクエスト情報保持部210に当該リクエストの情報を格納する。例えば、キャッシュ利用判断部206は、リクエストの情報を格納する。例えば、キャッシュ利用判断部206は、proxy-ip=10.0.0.10, proxy-port=54354, server-IP=20.0.0.10, server-port=80, URL=http://www.sample.com/withparam.html, 追加情報ありを格納する。そして、キャッシュ利用判断部206は、該HTTPリクエストをサーバ側送受信部204に渡す。
サーバ側送受信部204は、http://www.sample.com/withparam.htmlのURLを持つサーバ300へ、受け取った該HTTPリクエストを転送する。
(2)上記リクエストのレスポンスにキャッシュ禁止の指示がある場合について説明する。
本実施例では、HTTPリクエストを受信したサーバ300が、キャッシュ禁止の指示が付与されたHTTPレスポンスメッセージを応答する場合について説明する。
サーバ300は、クライアント装置1001に対して、受信したHTTPリクエストに対応するコンテンツを含むHTTPレスポンスメッセージを送信する。例えば、サーバ300は、キャッシュ禁止の指示を含むHTTPレスポンスを送信する。具体的には、サーバ300は、HTTPヘッダ中のCache-controlにno-cacheの記述が含まれるHTTPレスポンスを送信する。また、サーバ300は、HTTPヘッダではなく、HTML(HyperText Markup Language)ヘッダ中のCache-controlにno-cacheの記述が含まれるHTTPレスポンスを送信するようにしてもよい。
サーバ側送受信部204は、サーバ300により送信されたHTTPレスポンスを受信し、キャッシュ対象選択部214に、該HTTPレスポンスに含まれるメッセージを渡す。
キャッシュ対象選択部214は、当該HTTPレスポンスの情報に基づいて、リクエスト情報保持部210を検索し、URL及び追加情報の有無を示す情報を取得する。例えば、HTTPレスポンスの情報としては、プロキシサーバ200のIPアドレス、プロキシサーバ200のポート番号、サーバ300のIPアドレス、サーバ300のポート番号のいずれかが含まれる。例えば、キャッシュ対象選択部214は、当該HTTPレスポンスの情報として、proxy-ip=10.0.0.10、 proxy-port=54354, server-IP=20.0.0.10, server-port=80に基づいて、リクエスト情報保持部210を検索し、URL及び追加情報の有無を示す情報を取得する。ここでは、追加情報ありの情報が取得される。
キャッシュ対象選択部214は、取得したHTTPレスポンスに追加情報が含まれるか否かに基づいて、該HTTPレスポンスを保持するか否かを判断する。追加情報が含まれない場合、キャッシュ対象選択部214は該HTTPレスポンスを保持すると判断する。また、追加情報が含まれる場合、キャッシュ対象選択部214は、該追加情報を削除したリクエストを送信すると判断する。ここでは、キャッシュ対象選択部214は、追加情報があるため、該追加情報を削除し、追加情報が含まれないリクエストを送信すると判断し、代理リクエスト生成部218にリクエスト情報保持部210より得たURL http://www.sample.com/withparam.htmlの取得依頼を渡す。
代理リクエスト生成部218は、該取得依頼にしたがって、該URLへの追加情報を削除したHTTPリクエストを作成し、サーバ側送受信部204に渡す。また、代理リクエスト生成部218は、リクエスト情報保持部210に当該作成したリクエストの情報を格納する。例えば、代理リクエスト生成部218は、リクエストの情報として、proxy-ip=10.0.0.10, proxy-port=54355, server-IP=20.0.0.10, server-port=80, URL=http://www.sample.com/withparam.html 追加情報なしを格納する。
(3)代理リクエストへの送信〜応答までの処理について説明する。
サーバ300は、プロキシサーバ200に対して、コンテンツを含むHTTPレスポンスメッセージを送付する。この際、HTTPヘッダ中にキャッシュ禁止の指示の記述、例えばCache-control: no-cacheの記述が含まれる。
サーバ側送受信部204は、上記HTTPレスポンスを受信すると、キャッシュ対象選択部214に当該メッセージを渡す。
キャッシュ対象選択部214は、当該HTTPレスポンスの情報に基づいて、リクエスト情報保持部210を検索し、追加情報の有無を示す情報を取得する。例えば、キャッシュ対象選択部214は、当該HTTPレスポンスの情報として、proxy-ip=10.0.0.10、 proxy-port=54355, server-IP=20.0.0.10, server-port=80に基づいて、リクエスト情報保持部210を検索し、追加情報の有無を示す情報を取得する。ここでは、追加情報なしの情報が取得される。
キャッシュ対象選択部214は、取得したHTTPレスポンスに追加情報が含まれるか否かに基づいて、該HTTPレスポンスを保持するか否かを判断する。追加情報が含まれない場合、キャッシュ対象選択部214は該HTTPレスポンスを保持すると判断する。また、追加情報が含まれる場合、キャッシュ対象選択部214は該HTTPレスポンスを保持しないと判断する。ここでは、キャッシュ対象選択部214は、追加情報がないため、HTTPヘッダ中にキャッシュ禁止の指示があるが、キャッシュ更新部216に対して該HTTPレスポンスを渡す。
キャッシュ更新部216は、キャッシュ対象選択部214からHTTPレスポンスを取得すると、該HTTPレスポンスに含まれるリクエストURLと、キャッシュ禁止のフラグと、有効期限と、HTTPレスポンスを共有キャッシュ保持部212に格納する。具体的には、該HTTPレスポンスがキャッシュ禁止の情報を含むコンテンツであることから、共有キャッシュ保持部212に、リクエストURLとしてhttp://www.sample.com/withparam.html、キャッシュ禁止のフラグ、有効期限 2007/7/1 10:00:00、及び該HTTPレスポンスを格納する。また、Expiresヘッダに有効期限が明記されていない場合には、有効期間がプロキシサーバ200により決定されるようにしてもよい。例えば、プロキシサーバ200は、キャッシュ作成後3日後など有効期間を、既存のアルゴリズムで決定する。また、キャッシュ更新部216は、HTTPレスポンスをクライアント送受信部202に渡す。
次に、本実施例に係るプロキシサーバ200におけるHTTPリクエストメッセージに対する処理について、図10を参照して説明する。
本実施例に係るプロキシサーバ200におけるHTTPリクエストメッセージに対する処理におけるステップS1002からステップS1024の処理は、図8を参照して説明したステップS802からステップS824の処理と同様である。
ステップS1002において、HTTPリクエストを受信していない場合(ステップS1002:NO)、例えば、HTTPレスポンスを受信した場合、プロキシサーバ200は、該HTTPレスポンスにキャッシュ利用禁止の指定が含まれているか否かを判断する(ステップS1022)。具体的には、キャッシュ対象選択部214は、該HTTPレスポンスのヘッダに、キャッシュ利用禁止の指示が含まれるか否かを判断することにより、キャッシュ禁止か否かを判断する。
キャッシュ利用禁止である場合(ステップS1022:YES)、キャッシュ対象判断部214は、リクエスト情報保持部210より該HTTPレスポンスに対応するリクエスト情報を読み出す(ステップ1024)。そして、キャッシュ対象選択部214は、該リクエスト情報に追加情報が含まれるかを判断する(ステップS1026)。
該リクエスト情報に追加情報が含まれない場合(ステップS1026:NO)及びステップS1022においてキャッシュ利用禁止でない場合(ステップS1022:NO)、キャッシュ対象選択部214は、キャッシュ更新部216に、該リクエスト情報に対応するコンテンツを入力する。キャッシュ更新部216は、共有キャッシュ保持部212に、該コンテンツを格納する(ステップ1028)。そして、キャッシュ更新部216は、該コンテンツが代理リクエスト生成部218により受け取ったHTTPリクエストに対するHTTPレスポンスであるかを判断する(ステップS1030)。代理リクエスト生成部218により受け取ったHTTPリクエストに対するHTTPレスポンスであると判断された場合(ステップS1030:YES)、終了する。一方、代理リクエスト生成部218により受け取ったHTTPリクエストに対するHTTPレスポンスであると判断されない場合(ステップS1030:NO)、キャッシュ更新部216はクライアント側へHTTPリプライを転送する(ステップS1036)。
また、該リクエスト情報に追加情報が含まれる場合(ステップS1026:YES)、キャッシュ対象選択部214は、代理リクエスト生成部218に、リクエスト情報保持部210により得たURLの取得依頼を渡す。代理リクエスト生成部218は、受け取った取得依頼にしたがって、該URLへ追加情報を削除したHTTPリクエストを作成し、サーバ側送受信部204へ渡す。また、リクエスト情報保持部210に該リクエストの情報を格納する(ステップS1032)。サーバ300にHTTPリクエストが送信される(ステップS1034)。そして、ステップS1022に遷移する。
本実施例によれば、リクエストに追加情報があるコンテンツについて、追加情報を削除したリクエストに対するコンテンツをキャッシュに格納でき、キャッシュ利用可能な範囲を広げることができる。
(第3の実施例)
上述した実施例において、コンテンツの差し替えを行うようにした場合、キャッシュ禁止であるコンテンツの差し替えまでの待ち時間は長くなる。このため、プロキシサーバ200とサーバ300との間のトラヒックが混雑していない時間帯など、キャッシュの差し替えを行うよりもサーバ300の応答を待った方がよい場合がある。
(第3の実施例)
上述した実施例において、コンテンツの差し替えを行うようにした場合、キャッシュ禁止であるコンテンツの差し替えまでの待ち時間は長くなる。このため、プロキシサーバ200とサーバ300との間のトラヒックが混雑していない時間帯など、キャッシュの差し替えを行うよりもサーバ300の応答を待った方がよい場合がある。
そこで、本実施例に係るプロキシサーバ200は、サーバ300との間の通信の応答時間を監視し通信遅延時間を計測する。そして、プロキシサーバ200は、該通信遅延時間の計測結果に基づいて、キャッシュの応答もしくはサーバ300へのリクエスト転送の判断を行う。
なお、計測結果は、通過トラフィック全体の平均値や中間値などの統計値であってもよい。また、計測結果は、サーバ300毎に集計した統計値でもよい。サーバ300毎に集計した場合は、キャッシュの応答もしくはサーバ300へのリクエスト転送の判断もサーバ毎に行う必要がある。
本実施例に係るプロキシサーバ200は、図11に示すように、図2を参照して説明したプロキシサーバに通信状況計測部220を有するようにしたものである。
なお、本実施例では、一例として、サイト毎の平均応答時間を保持する場合について説明するが、サイト毎の平均応答時間の代わりに複数のサイトで1つの平均応答時間を保持するようにしてもよい。例えば、全サイトで1つの平均応答時間を保持するようにしてもよい。
通信状況計測部220は、サーバ側送受信部204からサーバ300に対してHTTPリクエストが送信される際のIPアドレス、TCPポート番号、タイムスタンプを時刻情報として取得し、送信時刻を記録する。
また、通信状況計測部220は、サーバ側送受信部204がサーバ300からHTTPリプライを受信した際のIPアドレス、TCPポート番号、タイムスタンプを時刻情報として取得し、受信時刻を記録する。この場合、通信状況計測部220に保持される通信状況情報の構造例は、図12のような構成となる。通信状況計測部220の各エントリは、プロキシサーバ200のIPアドレスが格納されるフィールドと、プロキシサーバ200のポート番号が格納されるフィールドと、サーバ300のIPアドレスが格納されるフィールドと、サーバ300のポート番号が格納されるフィールドと、送信タイムスタンプが格納されるフィールドと、受信タイムスタンプが格納されるフィールドとを含む。
通信状況計測部220に保持された送信タイムスタンプ及び受信タイムスタンプより、サーバ単位の平均応答時刻を保持する。この場合、通信状況計測部220に保持されるサーバ単位の平均応答時刻の構造例は、図13のような構成となる。通信状況計測部220の各エントリは、サーバ300のIPアドレスが格納されるフィールドと、平均応答間隔が格納されるフィールドとを含む。
また、本実施例に係るキャッシュ利用判断部206は、上述した第1の実施例に係るキャッシュ利用判断部の機能に加えて、以下の機能を有する。キャッシュ利用判断部206は、共有キャッシュ保持部212に保持されたHTTPリクエストに該当するコンテンツがキャッシュ禁止フラグが付与されたキャッシュデータの場合、通信状況計測部220より送信先サーバの平均応答間隔を取得する。そして、キャッシュ利用判断部206は、該送信先サーバの平均応答間隔が遅延時間として許容される許容時間以上の遅延時間の場合のみ差し替え指示部208にキャッシュデータをHTTPレスポンスとして渡し、該許容時間未満の場合はサーバ側送受信部204にHTTPリクエストを渡す。例えば、遅延時間として許容される許容時間は1秒程度であるようにしてもよい。
次に、本実施例に係るプロキシサーバ200の動作について、(1)プロキシサーバ200からHTTPリクエスト及びHTTPリプライを送信及び受信する場合の平均応答間隔の計測手順、(2)平均応答間隔が許容時間以上のサイトに対して、キャッシュ禁止対象のコンテンツに対するHTTPリクエストを受信した場合の手順について説明する。
(1)平均応答間隔の計測について説明する。
本実施例においては、一例として、第1の実施例における手順(1)及び(2)のHTTPリクエスト、HTTPリプライを送受信する場合について説明する。
サーバ側送受信部204は、HTTPリクエストをサーバ300に対して送信する際に、送信時刻の情報を通信状況計測部220に渡す。通信状況計測部220は、サーバ側送受信部204により渡された送信時刻の情報を記録する。例えば、送信時刻の情報として、プロキシサーバ200のIPアドレスと、プロキシサーバ200のポート番号と、サーバ300のIPアドレスと、サーバ300のポート番号と、送信タイムスタンプとが記録される。具体的には、例えば、proxy-ip=10.0.0.10, proxy-port=54352, server-IP=20.0.0.10, server-port=80, timestamp=31961438が記録される。
サーバ側送受信部204がHTTPリプライをサーバ300から受信すると、受信時刻の情報を通信状況計測部220に渡す。通信状況計測部220は、サーバ側送受信部204により渡された受信時刻の情報を記録する。例えば、受信時刻の情報として、プロキシサーバ200のIPアドレスと、プロキシサーバ200のポート番号と、サーバ300のIPアドレスと、サーバ300のポート番号と、受信タイムスタンプとが記録される。具体的には、例えば、proxy-ip=10.0.0.10, proxy-port=54352, server-IP=20.0.0.10, server-port=80, timestamp=31961438が記録される。
通信状況計測部220は、受信時刻内のTCPコネクションの識別子(proxy-ip=10.0.0.10, proxy-port=54352, server-IP=20.0.0.10, server-port=80)より、送信時刻情報を取得し、受信時刻情報と合わせて記録を行う。そして、通信状況計測部220は、送信時刻情報及び受信時刻情報に基づいて、サーバ300(20.0.0.10)に対する平均応答時刻を計算し記憶する。
本実施例では、この平均応答時刻の計算結果が許容時間未満、例えば1秒未満(100 ms)になった場合について説明する。
(2)HTTPリクエストが受信された場合について説明する。
クライアント装置1001上のブラウザは、HTTPリクエストを送信する。例えば、クライアント装置1001は、宛先URLとして、http://www.sample.com/、Cookieなし、POST/GETパラメータなしのHTTPリクエストを送信する。プロキシサーバ200のクライアント側送受信部202は、該HTTPリクエストを受信し、キャッシュ利用判断部206に該HTTPリクエストを渡す。
キャッシュ利用判断部206は、HTTPリクエストに含まれる宛先URLに該当するキャッシュデータがないか共有キャッシュ保持部212を検索する。例えば、キャッシュ利用判断部206は、宛先URLとしてのhttp://www.sample.com/のキャッシュデータがないか共有キャッシュ保持部212を検索する。
キャッシュ利用判断部206は、URL http://www.sample.com/のキャッシュデータがないか共有キャッシュ保持部212を検索し、キャッシュ禁止のフラグ、有効期限 2007/7/1 10:00:00、及び該HTTPレスポンスを含むエントリを取得する。
キャッシュ利用判断部206は、キャッシュ禁止フラグが付与されているため、サーバ300(20.0.0.10)の平均応答時間を通信状況計測部220より取得し、1秒未満(100ms)であるため、当該HTTPリクエストをサーバ側送受信部204に渡す。
次に、本実施例に係るプロキシサーバ200におけるHTTPリクエストメッセージに対する処理について、図14を参照して説明する。
プロキシサーバ200は、クライアント装置100nからHTTPリクエストを受信したか否かを判断する。具体的には、クライアント側送受信部202は、クライアント装置100nからHTTPリクエストを受信したか否かを判断する。
HTTPリクエストを受信した場合(ステップS1402:YES)、プロキシサーバ200は、該HTTPリクエストにキャッシュ利用禁止の指定が含まれているか否かを判断する(ステップS1404)。具体的には、キャッシュ利用判断部212は、該HTTPリクエストのヘッダに、キャッシュ利用禁止の指示が含まれるか否かを判断することにより、キャッシュ禁止か否かを判断する。
キャッシュ利用禁止でない場合(ステップS1404:NO)、キャッシュ利用判断部206は、共有キャッシュ保持部212を検索する(ステップS1406)。
キャッシュ利用判断部206は、共有キャッシュ保持部212に、該HTTPリクエストに対応するコンテンツが格納されているか否かを判断する(ステップS1408)。
共有キャッシュ保持部212に、該HTTPリクエストに対応するコンテンツが格納されている場合(ステップS1408:YES)、キャッシュ利用判断部206は、該コンテンツの有効期限が切れているかを判断する(ステップS1410)。
該コンテンツの有効期限が切れていない場合(ステップS1410:NO)、キャッシュ利用判断部206は、該コンテンツにキャッシュ禁止フラグがあるかを判断する(ステップS1412)。
該コンテンツにキャッシュ禁止フラグがない場合(ステップS1412:NO)、キャッシュ利用判断部206は、該コンテンツをクライアント側送受信部202に渡し、クライアント側送受信部202は、クライアント装置にHTTPリプライを転送する(ステップS1418)。
一方、ステップS1410において該コンテンツの有効期限が切れている場合(ステップS1410:YES)及び該コンテンツにキャッシュ禁止フラグがある場合(ステップS1412:YES)、キャッシュ利用判断部206は、平均応答時間が許容時間、例えば1秒以上であるかを判断する(ステップS1414)。平均応答時間が許容時間以上であると判断した場合(ステップS1414:YES)、差し替え指示部208は、該コンテンツにスクリプトの埋め込みを行う(ステップS1416)。そして、ステップS1418に遷移し、差し替え指示部208は、該コンテンツをクライアント側送受信部202に渡し、クライアント側送受信部202は、クライアント装置にHTTPリプライを転送する(ステップS1418)。
また、ステップS1404において、キャッシュ利用禁止である場合(ステップS1404:YES)、ステップS1408において、共有キャッシュ保持部212に、該HTTPリクエストに対応するコンテンツが格納されていない場合(ステップS1408:NO)及びステップ1414において、平均応答時間が許容時間未満であると判断した場合(ステップS1414:NO)、キャッシュ利用判断部206は、リクエスト情報保持部210に、リクエスト情報を記録する(ステップS1420)。そして、キャッシュ利用判断部206は、HTTPリクエストをサーバ側送受信部204に渡す。サーバ側送受信部204は、通信状況計測部220に送信タイムスタンプを記録する(ステップS1422)。そして、サーバ側送受信部204は、キャッシュ利用判断部206から取得したHTTPリクエストをサーバ300に転送する(ステップS1424)。
ステップS1402において、HTTPリクエストを受信していない場合(ステップS1402:NO)、例えば、HTTPレスポンスを受信した場合、サーバ側送受信部204は、通信状況計測部220に受信タイムスタンプを記録する(ステップS1426)。通信状況計測部220は、平均応答時間を算出し、記録する(ステップS1428)。
プロキシサーバ200は、該HTTPレスポンスにキャッシュ利用禁止の指定が含まれているか否かを判断する(ステップS1430)。具体的には、キャッシュ対象選択部214は、該HTTPレスポンスのヘッダに、キャッシュ利用禁止の指示が含まれるか否かを判断することにより、キャッシュ禁止か否かを判断する。
キャッシュ利用禁止である場合(ステップS1430:YES)、キャッシュ対象判断部214は、リクエスト情報保持部210より該HTTPレスポンスに対応するリクエスト情報を読み出す(ステップ1432)。そして、キャッシュ対象選択部214は、該リクエスト情報に追加情報が含まれるかを判断する(ステップS1434)。
該リクエスト情報に追加情報が含まれない場合(ステップS1434:NO)及びステップS1430においてキャッシュ利用禁止でない場合(ステップS1430:NO)、キャッシュ対象選択部214は、キャッシュ更新部216に、該リクエスト情報に対応するコンテンツを入力する。キャッシュ更新部216は、共有キャッシュ保持部212に、該コンテンツを格納する(ステップ1436)。そして、キャッシュ更新部216は、HTTPレスポンスをクライアント側送受信部202に渡す。
一方、ステップS1434において、該リクエスト情報に追加情報が含まれている場合(ステップS1434:YES)、キャッシュ対象選択部214は、HTTPレスポンスをクライアント側送受信部202に渡す。
クライアント側送受信部202は、キャッシュ更新部216又はキャッシュ対象選択部214により獲得したHTTPリスポンスをHTTPリプライとして、クライアント装置に転送する(ステップS1438)。
本実施例によれば、一定以上の遅延が発生している場合のみキャッシュの仮表示・差し替えを行うことが可能となり、低遅延の時間帯における差し替えによる遅延発生を防ぐことができる。また、混雑している時間帯もしくは混雑しているサーバのみキャッシュの差し替えを行うことができる。
(第4の実施例)
上述した第1の実施例におけるコンテンツの差し替え機能はプロキシサーバ200上にクライアント装置100n共有にキャッシュに保持する共有キャッシュを対象にしている。本実施例に係るプロキシサーバ200は、HTTPリクエストがある場合にユーザ固有のキャッシュを導入する。このようにすることで、セキュリティの問題を回避する。
(第4の実施例)
上述した第1の実施例におけるコンテンツの差し替え機能はプロキシサーバ200上にクライアント装置100n共有にキャッシュに保持する共有キャッシュを対象にしている。本実施例に係るプロキシサーバ200は、HTTPリクエストがある場合にユーザ固有のキャッシュを導入する。このようにすることで、セキュリティの問題を回避する。
プロキシサーバ200は、クライアント装置100nごとにコンテンツをキャッシュに保持する個別キャッシュ保持部を有する。HTTPリクエストに追加情報が付与されていた場合のリプライメッセージについて、個別キャッシュ保持部にキャッシュを追加し、リクエスト受信時に個別キャッシュ保持部に該当するキャッシュがあれば差し替え指示部にレスポンスとして該キャッシュを渡す。
なお、プロキシサーバ上の機能をクライアント装置内部のブラウザに持たせることで、個別キャッシュに対する機能をクライアント側で実現することも可能である。
本実施例に係るプロキシサーバ200は、図2を参照して説明したプロキシサーバに個別キャッシュ保持部222を有するようにしたものである。
個別キャッシュ保持部222は、サーバ側から応答されたコンテンツを保持する。個別キャッシュ保持部222は、キャッシュデータ(サーバからのコンテンツ)に加えて、クライアント装置のIPアドレス、コンテンツのURL、キャッシュの有効期限、キャッシュ禁止フラグの有無などを保持する。本実施例では、応答時のHTTPヘッダも含めて保存する場合について説明する。具体的には、個別キャッシュ保持部222に保持される応答コンテンツに関する情報の構造例は、図16のような構成となる。個別キャッシュ保持部222の各エントリは、クライアント装置100nのIPアドレス(client-ip)が格納されるフィールドと、URLが格納されるフィールドと、キャッシュ禁止が格納されるフィールドと、有効期限が格納されるフィールドと、コンテンツが格納されるフィールドとを含む。
本実施例に係るキャッシュ対象選択部214は、上述した第1の実施例において、共有キャッシュ保持部212へのキャッシュ対象外であるコンテンツの場合は、受信したHTTPレスポンスを個別キャッシュ対象であるものとしてキャッシュ更新部216に渡す。ここで、キャッシュ対象外であるコンテンツとは、HTTPリクエストに追加情報ありの情報が含まれるコンテンツである。
本実施例に係るキャッシュ更新部216は、上述した第1の実施例の機能に加えて、個別キャッシュ対象のHTTPレスポンスについて、送信先のクライアント装置のIPアドレス、コンテンツ、有効期限、キャッシュ禁止指示の有無をキャッシュデータとして個別キャッシュ保持部222に記録する。
本実施例に係るキャッシュ利用判断部206は、上述した第1の実施例の機能に加えて、個別キャッシュ保持部222を検索し、該当するキャッシュが見つかった場合は、共有キャッシュ保持部212を検索した結果、該当するキャッシュが見つかった場合と同様の動作を行う。具体的には、キャッシュ利用判断部206は、コンテンツが格納されているが該コンテンツの有効期限が切れていた場合又はキャッシュ禁止フラグが付与されていた場合は当該キャッシュデータを差し換え指示部208に渡す。また、キャッシュ利用判断部206は、コンテンツが格納されており、有効期限内でかつキャッシュ禁止ではないコンテンツは、当該キャッシュデータをHTTPレスポンスとしてクライアント側送受信部202に渡す。
共有キャッシュ保持部212及び個別キャッシュ保持部222にコンテンツが格納されていない場合に、追加情報が付与されたHTTPリクエストを受信した場合の動作は、上述した第2の実施例の(1)の処理と同様である。
ここでは、上述した第2の実施例の(2)の処理において、HTTPレスポンスを受信した場合の動作について説明する。なお、クライアント装置のIPアドレスは30.0.0.10とする。
サーバ300はクライアント装置100nに対して、コンテンツを含むHTTPレスポンスメッセージを送信する。この際、HTTPヘッダ中にキャッシュ禁止指示、例えばCache-control: no-cacheの記述が含まれるものとする。
サーバ側送受信部204が上記HTTPレスポンスを受信し、キャッシュ対象選択部214に当該メッセージを渡す。
キャッシュ対象選択部214は、受け取ったHTTPレスポンスに追加情報が含まれるか否かに基づいて、該HTTPレスポンスを個別キャッシュ保持部222に保持するか共有キャッシュ保持部212に保持するかを判断する。追加情報が含まれない場合、キャッシュ対象選択部214は該HTTPレスポンスを共有キャッシュ保持部212に保持すると判断する。また、追加情報が含まれる場合、キャッシュ対象選択部214は該HTTPレスポンスを個別キャッシュ保持部222に保持すると判断する。
ここでは、キャッシュ対象選択部214は、HTTPレスポンスに追加情報が含まれるため、個別キャッシュ保持部222への格納対象として当該HTTPレスポンスをキャッシュ更新部216に渡す。ここでは、HTTPレスポンスの情報としては、proxy-ip=10.0.0.10, proxy-port=54354, server-IP=20.0.0.10, server-port=80である。
キャッシュ更新部216は、個別キャッシュ保持部222に対して、クライアントIP、リクエストURL、キャッシュ禁止のフラグ、有効期限、及び該HTTPレスポンスを格納する。例えば、キャッシュ更新部216は、クライアントIPとして30.0.0.10、リクエストURLとしてhttp://www.sample.com/withparam.html、有効期限として2007/7/1 10:00:00を格納する。
また、キャッシュ更新部216は該HTTPレスポンスをクライアント送受信部202に渡す。
クライアント送受信部222は該HTTPレスポンスを、HTTPリクエストを送信したクライアント装置に対して送信する。
クライアント装置のブラウザは該HTTPレスポンスのコンテンツを表示する。
さらに、同一コンテンツに対して、クライアント装置1001からリクエストがあった場合について説明する。
クライアント装置1001上のブラウザは、HTTPリクエストを送信する。例えば、クライアント装置1001は、宛先URLとして、http://www.sample.com/ withparam.html、Cookieあり(Cookie: sessionid=eix0y1kx)、POST/GETパラメータなしのHTTPリクエストを送信する。プロキシサーバ200のクライアント側送受信部202は、該HTTPリクエストを受信し、キャッシュ利用判断部206に該HTTPリクエストを渡す。
キャッシュ利用判断部206は、クライアント装置のIPアドレス、HTTPリクエストに含まれる宛先URLに該当するキャッシュデータがないか共有キャッシュ保持部212及び個別キャッシュ保持部222を検索する。例えば、キャッシュ利用判断部206は、クライアント装置のIPアドレスとしての(30.0.0.10)、宛先URLとしてのhttp://www.sample.com/ withparam.htmlのキャッシュデータがないか共有キャッシュ保持部212及び個別キャッシュ保持部222を検索する。
ここでは、キャッシュ利用判断部206は、個別キャッシュ保持部222のエントリからキャッシュ禁止のフラグ、有効期限 2007/7/1 10:00:00、及び該HTTPレスポンスを含むエントリを取得する。
キャッシュ利用判断部206は、キャッシュ禁止フラグが付与されているため、該HTTPレスポンスを差し替え指示部208に渡す。
差し替え指示部208は受け取ったHTTPレスポンスに対して、コンテンツの取得と差し替えプログラムを埋め込む。そして、差し替え指示部208は差し替えプログラムが埋め込まれたHTTPレスポンスをクライアント側送受信部202に渡す。
クライアント送受信部202は差し替え指示部208により受け取ったHTTPレスポンスを、リクエストを送信したクライアント装置1001に対して送信する。
クライアント装置1001のブラウザは受信したHTTPレスポンスのコンテンツを表示する。
次に、本実施例に係るプロキシサーバ200におけるHTTPリクエストメッセージに対する処理について、図17を参照して説明する。
プロキシサーバ200は、クライアント装置100nからHTTPリクエストを受信したか否かを判断する。具体的には、クライアント側送受信部202は、クライアント装置100nからHTTPリクエストを受信したか否かを判断する。
HTTPリクエストを受信した場合(ステップS1702:YES)、プロキシサーバ200は、該HTTPリクエストにキャッシュ利用禁止の指定が含まれているか否かを判断する(ステップS1704)。具体的には、キャッシュ利用判断部212は、該HTTPリクエストのヘッダに、キャッシュ利用禁止の指示が含まれるか否かを判断することにより、キャッシュ禁止か否かを判断する。
キャッシュ利用禁止でない場合(ステップS1704:NO)、キャッシュ利用判断部206は、共有キャッシュ保持部212及び個別キャッシュ保持部222を検索する(ステップS1706)。
キャッシュ利用判定部206は、個別キャッシュ保持部222に、該HTTPリクエストに対応するコンテンツが保持されているかを判断する(ステップS1708)。
個別キャッシュ保持部222に保持されている場合(ステップS1708:YES)、キャッシュ利用判断部206は、共有キャッシュ保持部212に、該HTTPリクエストに対応するコンテンツが格納されているか否かを判断する(ステップS1710)。
個別キャッシュ保持部222に、該HTTPリクエストに対応するコンテンツが保持されていない場合(ステップS1708:NO)及び共有キャッシュ保持部212に、該HTTPリクエストに対応するコンテンツが格納されている場合(ステップS1710:YES)、キャッシュ利用判断部206は、該コンテンツの有効期限が切れているかを判断する(ステップS1712)。
該コンテンツの有効期限が切れていない場合(ステップS1710:NO)、キャッシュ利用判断部206は、該コンテンツにキャッシュ禁止フラグがあるかを判断する(ステップS1714)。
該コンテンツにキャッシュ禁止フラグがない場合(ステップS1714:NO)、キャッシュ利用判断部206は、該コンテンツをクライアント側送受信部202に渡し、クライアント側送受信部202は、クライアント装置にHTTPリプライを転送する(ステップS1718)。
一方、ステップS1712において該コンテンツの有効期限が切れている場合(ステップS1712:YES)及び該コンテンツにキャッシュ禁止フラグがある場合(ステップS1714:YES)、差し替え指示部208は、該コンテンツにスクリプトの埋め込みを行う(ステップS1716)。そして、ステップS1718に遷移し、差し替え指示部208は、該コンテンツをクライアント側送受信部202に渡し、クライアント側送受信部202は、HTTPリクエストを送信したクライアント装置にHTTPリプライを転送する(ステップS1718)。
また、ステップS1704において、キャッシュ利用禁止である場合(ステップS1704:YES)及びステップS1710において、共有キャッシュ保持部212に、該HTTPリクエストに対応するコンテンツが格納されていない場合(ステップS1710:NO)、キャッシュ利用判断部206は、リクエスト情報保持部210に、リクエスト情報を記録する(ステップS1720)。そして、キャッシュ利用判断部206は、HTTPリクエストをサーバ側送受信部204に渡す。サーバ側送受信部204は、キャッシュ利用判断部206から取得したHTTPリクエストをサーバ300に転送する(ステップS1722)。
ステップS1702において、HTTPリクエストを受信していない場合(ステップS1702:NO)、例えば、HTTPレスポンスを受信した場合の動作(ステップS1724−ステップS1732)は、図8を参照して説明したステップS822−ステップS830の動作と同様である。
本実施例によれば、ユーザごとに内容が変わるコンテンツも含めてコンテンツの仮表示・差し替えが可能となる。
(第5の実施例)
上述した第1の実施例に係るプロキシサーバ200における差し替え方法は、ブラウザ側の変更は不要である。しかし、ブラウザ側では、プログラムを埋め込めるコンテンツ(HTMLファイル等)に限定され、画像ファイル等のコンテンツに適用できない。
(第5の実施例)
上述した第1の実施例に係るプロキシサーバ200における差し替え方法は、ブラウザ側の変更は不要である。しかし、ブラウザ側では、プログラムを埋め込めるコンテンツ(HTMLファイル等)に限定され、画像ファイル等のコンテンツに適用できない。
そこで、本実施例に係るプロキシサーバ200は、差し替え指示をレスポンスメッセージに追加する。そして、本実施例に係るクライアント装置100nは、コンテンツ取得用のリクエストを送信する。クライアント装置100nは、表示中のコンテンツを新しいコンテンツと差し替える。すなわち、クライアント装置100nは、レスポンスメッセージに差し替え指示が含まれる場合に、コンテンツ取得用のリクエストを送信する。差し替えプログラムは、該リクエストに対するレスポンスに含まれるコンテンツを表示する。
差し替えの指示方法は、例えばHTTPレスポンスヘッダ中に特定のCookieを埋め込む等のやり方を用いるようにしてもよい。
本実施例に係るプロキシサーバ200は、図18に示すように、図2を参照して説明したプロキシサーバと同様である。
本実施例に係る差し換え指示部208は、キャッシュ利用判断部206からHTTPレスポンスを受け取ると、当該レスポンスメッセージのHTTPヘッダ中にコンテンツの取得及び差し換え処理を依頼するための追加情報、例えばCookieを埋め込んで、クライアント側送受信部202に該レスポンスを渡す。
また、本実施例に係るクライアント装置100nのブラウザ内にプラグインとして以下の機能を搭載する。
本実施例に係るクライアント装置100nは、コンテンツ取得手段としてのコンテンツ取得プログラムを有する。コンテンツ取得プログラムは、クライアント装置100nが受信するHTTPレスポンスメッセージを監視し、該HTTPレスポンスメッセージに差し替え依頼用の追加情報、例えばCookieが含まれていた場合、受信したHTTPレスポンスのコンテンツのブラウザ表示と同時にプロキシサーバ200にHTTPリクエストを送信する。なお、このHTTPリクエストにはキャッシュを利用しない指示、例えば、Cache-control: no-cacheを付与する。
本実施例に係るクライアント装置100nは、差し替え手段としての差し替えプログラムを有する。差し替えプログラムは、コンテンツ取得プログラムにより送られたHTTPリクエストの応答メッセージを受信すると、ブラウザに現在表示中のコンテンツを差し替えて表示する。
ブラウザプログラム、コンテンツ取得プログラム及び差し替えプログラムは、CPUにより読み込まれ、該CPUは、読み込んだプログラムをRAMあるいは記憶装置に書き込み、このプログラムにしたがって処理を実行する。また、プログラムを、通信網50を介してダウンロードするようにしてもよい。
次に、本実施例に係るプロキシサーバ200の動作について説明する。本実施例では、上述した第1の実施例の手順(3)、差し替え指示部の動作について説明する。
差し替え指示部208は、受け取ったHTTPレスポンスに対して、差し替え指示を示す追加情報、例えばCookieを追加する。具体的には、HTTPヘッダ中にSet-cookie:usecache=1;のような記述を追加することにより、差し替えの指示を行う。
差し替え指示部208は、該HTTPレスポンスをクライアント側送受信部202に渡す。
クライアント送受信部202は、該HTTPレスポンスをクライアント装置100nに対して送信する。
クライアント装置100nのブラウザは、受信したHTTPレスポンスのコンテンツを表示する。
クライアント装置100nのコンテンツ取得プログラムは、HTTPレスポンスに差し替え依頼用のCookieが付与されているため、キャッシュを利用しない指示(Cache-control: no-cache)を付与したhttp://www.sample.com/宛のHTTPリクエストを再度送信する。
該リクエストに対するプロキシサーバ200の動作及びレスポンスを受信した場合のクライアント装置の動作は、上述した第1の実施例の手順(4)と同様である。
次に、本実施例に係るプロキシサーバ200及びクライアント装置100nにおけるHTTPリクエストメッセージに対する処理について、図19及び図20を参照して説明する。
本実施例に係るプロキシサーバ200におけるHTTPメッセージに対する処理ステップS1902−ステップS1930は、図8を参照して説明したステップS802−ステップS830と、ステップS1914における処理が異なる。ステップS1914では、差し替え指示部208は、差し替え指示のクッキーの埋め込みを行う。
本実施例に係るクライアント装置100nにおけるコンテンツ取得依頼処理について、図20を参照して説明する。
クライアント装置100nは、HTTPレスポンスメッセージを受信すると、該HTTPレスポンスメッセージに差し替え依頼用の追加情報、例えばCookieが含まれていた場合、受信したHTTPレスポンスのコンテンツのブラウザ表示と同時にプロキシサーバ200にコンテンツ取得用のリクエストを送信する(ステップS2002)。
本実施例に係るクライアント装置100nにおけるレスポンス受信処理について、図21を参照して説明する。
コンテンツ取得プログラム104は、HTTPレスポンスに差し替え指示が含まれるかを判断する(ステップS2102)。
差し替え指示が含まれる場合(ステップS2102:YES)、ブラウザプログラム102は、受信コンテンツの仮表示を行う(ステップS2104)。そして、コンテンツ取得プログラム104は、HTTPリクエストの送信を行う(ステップS2106)。このHTTPリクエストには、キャッシュ禁止のフラグが含まれる。
一方、差し替え指示が含まれない場合(ステップS2102:NO)、ブラウザプログラム102は、受信コンテンツの仮表示中であるかを判断する(ステップS2108)。
受信コンテンツの仮表示中である場合(ステップS2108:YES)、差し替えプログラム106は、受信コンテンツの差し替えを行う(ステップS2110)。一方、受信コンテンツの仮表示中でない場合(ステップS2108:NO)、ブラウザプログラム102は、受信コンテンツの表示を行う(ステップS2112)。
本実施例によれば、プログラムを埋め込めないコンテンツに対しても、コンテンツの仮表示・差し替えが可能となり、コンテンツ表示までの時間を短縮することができるようになる。
(付記1)
クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置であって、
前記サーバから送信されたコンテンツを保持するキャッシュ保持手段と、
前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
を有することを特徴とするコンテンツ中継装置。
(付記2)
付記1に記載のコンテンツ中継装置において:
前記キャッシュ利用判断手段は、前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されている場合に、該コンテンツに含まれるキャッシュ禁止の有無及び/又は有効期限に基づいて、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断し、
該コンテンツがキャッシュ禁止及び/又は有効期限切れである場合に、該コンテンツに前記クライアント装置に表示させるコンテンツを差し替えるためのプログラムを埋め込む差し替え指示手段
を有することを特徴とするコンテンツ中継装置。
(付記3)
付記1に記載のコンテンツ中継装置において、
前記追加情報には、ユーザID及び/又はセッションIDが含まれることを特徴とするコンテンツ中継装置。
(付記4)
付記1に記載のコンテンツ中継装置において、
前記キャッシュ対象選択手段により、前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれると判断された場合に、該追加情報が含まれないリクエストを、前記サーバに送信する代理リクエスト生成手段
を有することを特徴とするコンテンツ中継装置。
(付記5)
付記1に記載のコンテンツ中継装置において、
自中継装置と前記サーバとの間の応答時間に基づいて、通信遅延時間を計測する通信時間計測手段
を有し、
前記キャッシュ利用判断手段は、前記通信遅延時間に基づいて、前記キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断することを特徴とするコンテンツ中継装置。
(付記6)
付記5に記載のコンテンツ中継装置において、
前記通信遅延時間は、自中継装置を通過するトラヒック全体の通信遅延時間又はリクエスト先毎の通信遅延時間であることを特徴とするコンテンツ中継装置。
(付記7)
付記1に記載のコンテンツ中継装置において、
前記サーバから送信されたコンテンツを、該コンテンツのリクエストを送信したクライアント装置毎に保持する個別キャッシュ保持手段と
を有し、
前記キャッシュ更新手段は、前記キャッシュ対象選択手段により、前記リクエストに対する応答に対応するリクエストに追加情報が含まれると判断された場合に、該レスポンスを前記個別キャッシュ保持手段に格納することを特徴とするコンテンツ中継装置。
(付記8)
クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置を有するコンテンツ中継システムであって、
前記中継装置は、
前記サーバから送信されたコンテンツを保持するキャッシュ保持手段と、
前記クライアントにより送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
を有し、
前記キャッシュ利用判断手段は、前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されている場合に、該コンテンツに含まれるキャッシュ禁止の有無及び/又は有効期限に基づいて、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断し、
該コンテンツがキャッシュ禁止及び/又は有効期限切れである場合に、該コンテンツに前記クライアント装置に表示させるコンテンツを差し替えるためのプログラムを埋め込み、
前記クライアント装置は、
受信したコンテンツに埋め込まれたコンテンツを取得するリクエストを送信し、表示中のコンテンツを前記リクエストに対するレスポンスに差し替えるコンテンツ取得手段
を有することを特徴とするコンテンツ中継システム。
(付記9)
クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置におけるコンテンツ中継方法であって、
前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記サーバから送信されたコンテンツを保持するキャッシュ保持手段に保持されているかを判断する保持判断ステップと、
前記保持判断ステップにおいて、前記キャッシュ保持手段に保持されていると判断された場合に、前記キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断ステップと、
前記キャッシュ利用判断ステップにおいて、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持ステップと、
前記リクエスト情報保持ステップにおいて格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択ステップと、
前記キャッシュ対象選択ステップにより、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新ステップと
を有することを特徴とするコンテンツ中継方法。
(付記10)
コンピュータを、
クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツがサーバから送信されたコンテンツを保持するキャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
して機能させるためのプログラム。
(付記1)
クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置であって、
前記サーバから送信されたコンテンツを保持するキャッシュ保持手段と、
前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
を有することを特徴とするコンテンツ中継装置。
(付記2)
付記1に記載のコンテンツ中継装置において:
前記キャッシュ利用判断手段は、前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されている場合に、該コンテンツに含まれるキャッシュ禁止の有無及び/又は有効期限に基づいて、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断し、
該コンテンツがキャッシュ禁止及び/又は有効期限切れである場合に、該コンテンツに前記クライアント装置に表示させるコンテンツを差し替えるためのプログラムを埋め込む差し替え指示手段
を有することを特徴とするコンテンツ中継装置。
(付記3)
付記1に記載のコンテンツ中継装置において、
前記追加情報には、ユーザID及び/又はセッションIDが含まれることを特徴とするコンテンツ中継装置。
(付記4)
付記1に記載のコンテンツ中継装置において、
前記キャッシュ対象選択手段により、前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれると判断された場合に、該追加情報が含まれないリクエストを、前記サーバに送信する代理リクエスト生成手段
を有することを特徴とするコンテンツ中継装置。
(付記5)
付記1に記載のコンテンツ中継装置において、
自中継装置と前記サーバとの間の応答時間に基づいて、通信遅延時間を計測する通信時間計測手段
を有し、
前記キャッシュ利用判断手段は、前記通信遅延時間に基づいて、前記キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断することを特徴とするコンテンツ中継装置。
(付記6)
付記5に記載のコンテンツ中継装置において、
前記通信遅延時間は、自中継装置を通過するトラヒック全体の通信遅延時間又はリクエスト先毎の通信遅延時間であることを特徴とするコンテンツ中継装置。
(付記7)
付記1に記載のコンテンツ中継装置において、
前記サーバから送信されたコンテンツを、該コンテンツのリクエストを送信したクライアント装置毎に保持する個別キャッシュ保持手段と
を有し、
前記キャッシュ更新手段は、前記キャッシュ対象選択手段により、前記リクエストに対する応答に対応するリクエストに追加情報が含まれると判断された場合に、該レスポンスを前記個別キャッシュ保持手段に格納することを特徴とするコンテンツ中継装置。
(付記8)
クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置を有するコンテンツ中継システムであって、
前記中継装置は、
前記サーバから送信されたコンテンツを保持するキャッシュ保持手段と、
前記クライアントにより送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
を有し、
前記キャッシュ利用判断手段は、前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されている場合に、該コンテンツに含まれるキャッシュ禁止の有無及び/又は有効期限に基づいて、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断し、
該コンテンツがキャッシュ禁止及び/又は有効期限切れである場合に、該コンテンツに前記クライアント装置に表示させるコンテンツを差し替えるためのプログラムを埋め込み、
前記クライアント装置は、
受信したコンテンツに埋め込まれたコンテンツを取得するリクエストを送信し、表示中のコンテンツを前記リクエストに対するレスポンスに差し替えるコンテンツ取得手段
を有することを特徴とするコンテンツ中継システム。
(付記9)
クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置におけるコンテンツ中継方法であって、
前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記サーバから送信されたコンテンツを保持するキャッシュ保持手段に保持されているかを判断する保持判断ステップと、
前記保持判断ステップにおいて、前記キャッシュ保持手段に保持されていると判断された場合に、前記キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断ステップと、
前記キャッシュ利用判断ステップにおいて、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持ステップと、
前記リクエスト情報保持ステップにおいて格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択ステップと、
前記キャッシュ対象選択ステップにより、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新ステップと
を有することを特徴とするコンテンツ中継方法。
(付記10)
コンピュータを、
クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツがサーバから送信されたコンテンツを保持するキャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
して機能させるためのプログラム。
50 通信網
100n(1001、1002、・・・、100n) クライアント装置
102 ブラウザプログラム
104 コンテンツ取得プログラム
106 差し替えプログラム
200 プロキシサーバ
202 クライアント側送受信部
204 サーバ側送受信部
206 キャッシュ利用判断部
208 差し替え指示部
210 リクエスト情報保持部
212 共有キャッシュ保持部
214 キャッシュ対象選択部
216 キャッシュ更新部
218 代理リクエスト生成部
220 通信状況計測部
222 個別キャッシュ保持部
300 サーバ
100n(1001、1002、・・・、100n) クライアント装置
102 ブラウザプログラム
104 コンテンツ取得プログラム
106 差し替えプログラム
200 プロキシサーバ
202 クライアント側送受信部
204 サーバ側送受信部
206 キャッシュ利用判断部
208 差し替え指示部
210 リクエスト情報保持部
212 共有キャッシュ保持部
214 キャッシュ対象選択部
216 キャッシュ更新部
218 代理リクエスト生成部
220 通信状況計測部
222 個別キャッシュ保持部
300 サーバ
Claims (8)
- クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置であって、
前記サーバから送信されたコンテンツを保持するキャッシュ保持手段と、
前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
を有することを特徴とするコンテンツ中継装置。 - 請求項1に記載のコンテンツ中継装置において:
前記キャッシュ利用判断手段は、前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されている場合に、該コンテンツに含まれるキャッシュ禁止の有無及び/又は有効期限に基づいて、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断し、
該コンテンツがキャッシュ禁止及び/又は有効期限切れである場合に、該コンテンツに前記クライアント装置に表示させるコンテンツを差し替えるためのプログラムを埋め込む差し替え指示手段
を有することを特徴とするコンテンツ中継装置。 - 請求項1に記載のコンテンツ中継装置において、
前記キャッシュ対象選択手段により、前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれると判断された場合に、該追加情報が含まれないリクエストを、前記サーバに送信する代理リクエスト生成手段
を有することを特徴とするコンテンツ中継装置。 - 請求項1に記載のコンテンツ中継装置において、
自中継装置と前記サーバとの間の応答時間に基づいて、通信遅延時間を計測する通信時間計測手段
を有し、
前記キャッシュ利用判断手段は、前記通信遅延時間に基づいて、前記キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断することを特徴とするコンテンツ中継装置。 - 請求項1に記載のコンテンツ中継装置において、
前記サーバから送信されたコンテンツを、該コンテンツのリクエストを送信したクライアント装置毎に保持する個別キャッシュ保持手段と
を有し、
前記キャッシュ更新手段は、前記キャッシュ対象選択手段により、前記リクエストに対する応答に対応するリクエストに追加情報が含まれると判断された場合に、該レスポンスを前記個別キャッシュ保持手段に格納することを特徴とするコンテンツ中継装置。 - クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置を有するコンテンツ中継システムであって、
前記中継装置は、
前記サーバから送信されたコンテンツを保持するキャッシュ保持手段と、
前記クライアントにより送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
を有し、
前記キャッシュ利用判断手段は、前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記キャッシュ保持手段に保持されている場合に、該コンテンツに含まれるキャッシュ禁止の有無及び/又は有効期限に基づいて、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断し、
該コンテンツがキャッシュ禁止及び/又は有効期限切れである場合に、該コンテンツに前記クライアント装置に表示させるコンテンツを差し替えるためのプログラムを埋め込み、
前記クライアント装置は、
受信したコンテンツに埋め込まれたコンテンツを取得するリクエストを送信し、表示中のコンテンツを前記リクエストに対するレスポンスに差し替えるコンテンツ取得手段
を有することを特徴とするコンテンツ中継システム。 - クライアント装置とサーバとの間でコンテンツを中継するコンテンツ中継装置におけるコンテンツ中継方法であって、
前記クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツが前記サーバから送信されたコンテンツを保持するキャッシュ保持手段に保持されているかを判断する保持判断ステップと、
前記保持判断ステップにおいて、前記キャッシュ保持手段に保持されていると判断された場合に、前記キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断ステップと、
前記キャッシュ利用判断ステップにおいて、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持ステップと、
前記リクエスト情報保持ステップにおいて格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択ステップと、
前記キャッシュ対象選択ステップにより、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新ステップと
を有することを特徴とするコンテンツ中継方法。 - コンピュータを、
クライアント装置により送信されたコンテンツのリクエストに対応するコンテンツがサーバから送信されたコンテンツを保持するキャッシュ保持手段に保持されているかを判断し、該キャッシュ保持手段に保持されたデータをレスポンスとして前記クライアント装置に送信するか否かを判断するキャッシュ利用判断手段と、
前記キャッシュ利用判断手段により、前記リクエストに対応するコンテンツが前記キャッシュ保持手段に保持されていないと判断された場合に、前記リクエストに追加情報が含まれるか否かを示す情報を格納するリクエスト情報保持手段と、
前記リクエスト情報保持手段に格納された追加情報が含まれるか否かを示す情報に基づいて、前記リクエストに対して前記サーバから送信されたレスポンスに対応するリクエストに追加情報が含まれるか否かを判断するキャッシュ対象選択手段と、
前記キャッシュ対象選択手段により、前記リスポンスに対応するリクエストに追加情報が含まれないと判断された場合に、該サーバから送信されたレスポンスを前記キャッシュ保持手段に格納するキャッシュ更新手段と
して機能させるためのプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007316722A JP2009140290A (ja) | 2007-12-07 | 2007-12-07 | コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007316722A JP2009140290A (ja) | 2007-12-07 | 2007-12-07 | コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009140290A true JP2009140290A (ja) | 2009-06-25 |
Family
ID=40870822
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007316722A Pending JP2009140290A (ja) | 2007-12-07 | 2007-12-07 | コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2009140290A (ja) |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011034511A (ja) * | 2009-08-05 | 2011-02-17 | Nec Corp | メッセージ送受信システム、メッセージ送受信方法、メッセージ中継サーバ及びメッセージ送受信用プログラム |
| JP2012079047A (ja) * | 2010-09-30 | 2012-04-19 | Yahoo Japan Corp | ファイルアクセスプログラム、方法及びシステム |
| JP2012248074A (ja) * | 2011-05-30 | 2012-12-13 | Fujitsu Ltd | 中継プログラム、中継方法および中継装置 |
| JP2013514565A (ja) * | 2009-10-20 | 2013-04-25 | トムソン ロイター グローバル リソーシズ | 権利者向けデータのキャッシュ管理法 |
| WO2013121745A1 (ja) * | 2012-02-13 | 2013-08-22 | 日本電気株式会社 | キャッシュ装置、配信方法、およびプログラム |
| JP2014060615A (ja) * | 2012-09-18 | 2014-04-03 | Fujitsu Ltd | 情報処理装置,監視装置,情報処理方法,及び監視プログラム |
| JP2015103184A (ja) * | 2013-11-27 | 2015-06-04 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
| JP2016500205A (ja) * | 2012-08-24 | 2016-01-07 | アカマイ テクノロジーズ インコーポレイテッド | ハイブリッドhttp及びudpコンテンツ配信 |
| JP2018528522A (ja) * | 2015-07-30 | 2018-09-27 | ナスダック, インコーポレイテッドNasdaq, Inc. | ウェブユーザインタフェースにおけるサーバ側キャッシング |
| JP2021517695A (ja) * | 2018-04-03 | 2021-07-26 | サイトリックス システムズ,インコーポレイテッド | クラウドサービスのデータキャッシング |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003108455A (ja) * | 2001-09-27 | 2003-04-11 | Toshiba Corp | データ転送装置およびデータ転送方法 |
| JP2003345709A (ja) * | 2002-05-24 | 2003-12-05 | Hitachi Ltd | キャッシュ装置およびこれを用いたネットワーク・システム |
-
2007
- 2007-12-07 JP JP2007316722A patent/JP2009140290A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003108455A (ja) * | 2001-09-27 | 2003-04-11 | Toshiba Corp | データ転送装置およびデータ転送方法 |
| JP2003345709A (ja) * | 2002-05-24 | 2003-12-05 | Hitachi Ltd | キャッシュ装置およびこれを用いたネットワーク・システム |
Cited By (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011034511A (ja) * | 2009-08-05 | 2011-02-17 | Nec Corp | メッセージ送受信システム、メッセージ送受信方法、メッセージ中継サーバ及びメッセージ送受信用プログラム |
| JP2013514565A (ja) * | 2009-10-20 | 2013-04-25 | トムソン ロイター グローバル リソーシズ | 権利者向けデータのキャッシュ管理法 |
| JP2012079047A (ja) * | 2010-09-30 | 2012-04-19 | Yahoo Japan Corp | ファイルアクセスプログラム、方法及びシステム |
| JP2012248074A (ja) * | 2011-05-30 | 2012-12-13 | Fujitsu Ltd | 中継プログラム、中継方法および中継装置 |
| WO2013121745A1 (ja) * | 2012-02-13 | 2013-08-22 | 日本電気株式会社 | キャッシュ装置、配信方法、およびプログラム |
| JP2016500205A (ja) * | 2012-08-24 | 2016-01-07 | アカマイ テクノロジーズ インコーポレイテッド | ハイブリッドhttp及びudpコンテンツ配信 |
| JP2014060615A (ja) * | 2012-09-18 | 2014-04-03 | Fujitsu Ltd | 情報処理装置,監視装置,情報処理方法,及び監視プログラム |
| JP2015103184A (ja) * | 2013-11-27 | 2015-06-04 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
| JP2018528522A (ja) * | 2015-07-30 | 2018-09-27 | ナスダック, インコーポレイテッドNasdaq, Inc. | ウェブユーザインタフェースにおけるサーバ側キャッシング |
| JP2021517695A (ja) * | 2018-04-03 | 2021-07-26 | サイトリックス システムズ,インコーポレイテッド | クラウドサービスのデータキャッシング |
| US11356531B2 (en) | 2018-04-03 | 2022-06-07 | Citrix Systems, Inc. | Data caching for cloud services |
| JP7143434B2 (ja) | 2018-04-03 | 2022-09-28 | サイトリックス システムズ,インコーポレイテッド | クラウドサービスのデータキャッシング |
| US11716406B2 (en) | 2018-04-03 | 2023-08-01 | Citrix Systems, Inc. | Data caching for cloud services |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2009140290A (ja) | コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム | |
| US8856279B2 (en) | Method and system for object prediction | |
| US7277914B2 (en) | Proxy server apparatus and method for providing service using the same | |
| EP1206100B1 (en) | Communication system for retrieving web content | |
| US6519646B1 (en) | Method and apparatus for encoding content characteristics | |
| US8620999B1 (en) | Network resource modification for higher network connection concurrence | |
| US10897450B2 (en) | Communication method and communication apparatus | |
| US8868638B2 (en) | Methods for reducing latency in network connections using automatic redirects and systems thereof | |
| US20060168129A1 (en) | System and method for enhancing network browsing speed by setting a proxy server on a handheld device | |
| US10469560B1 (en) | Reduced latency for subresource transfer | |
| US12598239B2 (en) | Accelerating connections to a host server | |
| WO2003015330A2 (en) | A system and a method for accelerating communication of tcp/ip based content | |
| CN101741769A (zh) | 一种网关和网页重定向的方法 | |
| EP2083359B1 (en) | System and method for enhancing network-browsing speed by setting a proxy server on a handheld device | |
| GB2543279A (en) | Methods, devices and computer programs for optimizing use of bandwidth when pushing data in a network environment comprising cache servers | |
| JP5948111B2 (ja) | パケット通信装置および方法 | |
| JP2009187466A (ja) | プロキシシステム及び中継方法 | |
| JP5332117B2 (ja) | Wwwコンテンツ取得システム及びwwwコンテンツ取得方法 | |
| CN109635203B (zh) | 网页抓取请求处理方法、装置、服务器及存储介质 | |
| JP2009076093A (ja) | キャッシングシステム | |
| JP5547530B2 (ja) | コンテンツ取得状況調査システム、コンテンツ取得状況調査方法 | |
| EP2552082A1 (en) | Favourite web site acceleration method and system | |
| JP2005107662A (ja) | Wwwシステム処理方法およびシステム | |
| JP2000020415A (ja) | Wwwサーバプロキシとwwwブラウザプロキシおよびwwwシステム | |
| Yuan et al. | The Design and Implementation of CoAP Over WebSocket Proxy |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100715 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121030 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121129 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130507 |