(57)【要約】【課題】ウェブサーバの負荷を軽減させることができ、汎用性の高い中継装置、中継装置の制御方法、及びプログラムを提供すること。【解決手段】本発明にかかる中継装置１は、リクエスト受信部１１、リクエスト変換部１２、リクエスト送信部１３、レスポンス受信部１４、及びレスポンス送信部１５を備える。リクエスト受信部１１は、第１のＨＴＴＰリクエストを、ユーザ端末から受信する。リクエスト変換部１２は、受信した第１のＨＴＴＰリクエストを、第２のＨＴＴＰリクエストに変換する。リクエスト送信部１３は、変換した第２のＨＴＴＰリクエストをウェブサーバに送信する。リクエスト受信部１４は、ウェブサーバから送信された第２のＨＴＴＰレスポンスを受信する。リクエスト送信部１５は、受信した第２のＨＴＴＰレスポンスに基づいて、第１のＨＴＴＰレスポンスをユーザ端末に送信する。【選択図】図１３
2014203163.tif 000002
【特許請求の範囲】
【請求項１】
ＨＴＴＰ（Hypertext Transfer Protocol）の通信プロトコルを用いてウェブサーバと通信を行う中継装置であって、
前記ウェブサーバにファイル及び当該ファイルのヘッダ情報を含む第１のＨＴＴＰレスポンスの送信を要求するための第１のＨＴＴＰリクエストを、前記中継装置の配下に接続されたユーザ端末から受信するリクエスト受信手段と、
前記リクエスト受信手段が受信した前記第１のＨＴＴＰリクエストを、前記ウェブサーバに前記ファイルのヘッダ情報である第２のＨＴＴＰレスポンスの送信を要求するための第２のＨＴＴＰリクエストに変換するリクエスト変換手段と、
前記リクエスト変換手段が変換した前記第２のＨＴＴＰリクエストを前記ウェブサーバに送信するリクエスト送信手段と、
前記第２のＨＴＴＰリクエストに応じて前記ウェブサーバから送信された前記第２のＨＴＴＰレスポンスを受信するレスポンス受信手段と、
受信した前記第２のＨＴＴＰレスポンスに基づいて、前記第１のＨＴＴＰレスポンスを前記ユーザ端末に送信するレスポンス送信手段と、
を備える中継装置。
【請求項２】
前記リクエスト受信手段が受信した前記第１のＨＴＴＰリクエストを格納する記憶手段と、
前記リクエスト受信手段が受信した前記第１のＨＴＴＰリクエストが前記記憶手段に格納されているか否かを判定する判定手段と、をさらに備え、
前記リクエスト変換手段は、前記リクエスト受信手段が受信した前記第１のＨＴＴＰリクエストが前記記憶手段に格納されている場合、前記第１のＨＴＴＰリクエストを前記第２のＨＴＴＰリクエストに変換する請求項１に記載の中継装置。
【請求項３】
前記リクエスト送信手段は、前記リクエスト受信手段が受信した前記第１のＨＴＴＰリクエストが前記記憶手段に格納されていない場合、前記リクエスト受信手段が受信した前記第１のＨＴＴＰリクエストを前記ウェブサーバに送信する請求項２に記載の中継装置。
【請求項４】
前記レスポンス受信手段は、前記第１のＨＴＴＰリクエストに応じて前記ウェブサーバから送信された前記第１のＨＴＴＰレスポンスをさらに受信し、
前記記憶手段は、前記第１のＨＴＴＰリクエストと、前記第１のＨＴＴＰレスポンスと、を対応付けて格納する請求項２または３に記載の中継装置。
【請求項５】
前記レスポンス受信手段が受信した前記第２のＨＴＴＰレスポンスに含まれる前記ヘッダ情報と、前記記憶手段に格納されている前記第１のＨＴＴＰレスポンスに含まれる前記ヘッダ情報と、を比較する比較手段をさらに備え、
前記レスポンス送信手段は、前記比較手段の比較結果に基づいて、前記第１のＨＴＴＰレスポンスを前記ユーザ端末に送信する請求項４に記載の中継装置。
【請求項６】
前記第２のＨＴＴＰレスポンスに含まれる前記ヘッダ情報が前記記憶手段に格納されている前記第１のＨＴＴＰレスポンスに含まれるヘッダ情報と同一である場合、前記レスポンス送信手段は、前記第１のＨＴＴＰリクエストに対応する前記第１のＨＴＴＰレスポンスを、前記記憶手段から取得し、前記ユーザ端末に送信する請求項５に記載の中継装置。
【請求項７】
前記第２のＨＴＴＰレスポンスに含まれる前記ヘッダ情報が前記記憶手段に格納されている前記第１のＨＴＴＰレスポンスに含まれるヘッダ情報と同一でない場合、前記リクエスト送信手段は、前記リクエスト受信手段が前記ユーザ端末から受信した前記第１のＨＴＴＰリクエストを前記ウェブサーバに送信し、
前記レスポンス送信手段は、前記第１のＨＴＴＰリクエストに対応する前記第１のＨＴＴＰレスポンスを、前記ウェブサーバから取得し、前記ユーザ端末に送信する請求項５または６に記載の中継装置。
【請求項８】
前記記憶手段は、前記レスポンス受信手段が前記ウェブサーバから受信している前記第１のＨＴＴＰレスポンスを記憶中であるか否かを示す記憶完了情報を格納し、
前記レスポンス送信手段は、前記ユーザ端末から受信した前記第１のＨＴＴＰリクエストに対応する前記第１のＨＴＴＰレスポンスを前記記憶手段が記憶中である場合、記憶中の前記第１のＨＴＴＰレスポンスを前記記憶手段から取得し、前記ユーザ端末に送信する請求項２〜７のいずれか一項に記載の中継装置。
【請求項９】
ＨＴＴＰ（Hypertext Transfer Protocol）の通信プロトコルを用いてウェブサーバと通信を行う中継装置の制御方法であって、
前記ウェブサーバにファイル及び当該ファイルのヘッダ情報を含む第１のＨＴＴＰレスポンスの送信を要求するための第１のＨＴＴＰリクエストを、前記中継装置の配下に接続されたユーザ端末から受信するステップと、
受信した前記第１のＨＴＴＰリクエストを、前記ウェブサーバに前記ファイルのヘッダ情報である第２のＨＴＴＰレスポンスの送信を要求するための第２のＨＴＴＰリクエストに変換するステップと、
変換した前記第２のＨＴＴＰリクエストを前記ウェブサーバに送信するステップと、
前記第２のＨＴＴＰリクエストに応じて前記ウェブサーバから送信された前記第２のＨＴＴＰレスポンスを受信するステップと、
受信した前記第２のＨＴＴＰレスポンスに基づいて、前記第１のＨＴＴＰレスポンスを前記ユーザ端末に送信するステップと、
を備える中継装置の制御方法。
【請求項１０】
ＨＴＴＰ（Hypertext Transfer Protocol）の通信プロトコルを用いてウェブサーバと通信を行う中継装置を制御するプログラムであって、
コンピュータに、
前記ウェブサーバにファイル及び当該ファイルのヘッダ情報を含む第１のＨＴＴＰレスポンスの送信を要求するための第１のＨＴＴＰリクエストを、前記中継装置の配下に接続されたユーザ端末から受信させるステップと、
受信した前記第１のＨＴＴＰリクエストを、前記ウェブサーバに前記ファイルのヘッダ情報である第２のＨＴＴＰレスポンスの送信を要求するための第２のＨＴＴＰリクエストに変換させるステップと、
変換した前記第２のＨＴＴＰリクエストを前記ウェブサーバに送信させるステップと、
前記第２のＨＴＴＰリクエストに応じて前記ウェブサーバから送信された前記第２のＨＴＴＰレスポンスを受信させるステップと、
受信した前記第２のＨＴＴＰレスポンスに基づいて、前記第１のＨＴＴＰレスポンスを前記ユーザ端末に送信させるステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は中継装置、中継装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
端末がウェブブラウザを使用して任意のウェブサイト上のファイルを取得する場合、一般的なウェブブラウザは取得したファイルを端末内にキャッシュとして保存する。ユーザが再度同一ファイルを取得しようとした場合、ウェブブラウザはファイルを取得する際に送信するＨＴＴＰ（Hypertext Transfer Protocol）パケットであるHTTP GET リクエストのヘッダに「If-Modified-Since」や「If-None-Match」といったフィールドを追加して送信する。これにより、端末は、端末内のキャッシュがウェブサイト上のファイルと同一であるかを確認し、同一である場合はファイルを受信しないようにしている。
【０００３】
このとき、ファイルが同一である場合は、ウェブサーバは、ファイルが更新されていないことを意味するステータスコード（status code）が304であるレスポンス「304 Not Modified」を端末に返送する。一方、ファイルが同一でない場合は、ウェブサーバは、ステータスコードが200であるレスポンス「200 OK」を返送する。ここで、「304 Not Modified」はヘッダフィールドのみ含みファイル自体は含まれず、「200 OK」はヘッダフィールドおよびファイル自体を含む。
【０００４】
なお、特許文献１には、コンテンツを初めて通信端末に送信する際、当該コンテンツをコンテンツ格納部に格納し、２回目以降の送信に際してはコンテンツ格納部から読み出したコンテンツを通信端末に送信する中継装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３４３８５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このとき、ウェブブラウザのキャッシュは端末ごとに固有である。そのため、複数の端末が同一ウェブサイト上の同一ファイルを取得する場合は、端末それぞれがウェブサイトからファイルを受信する必要がある。その結果、ウェブサーバの負荷が増大するという問題がある。
【０００７】
ここで、特許文献１の中継装置は、２回目以降のコンテンツの送信に関しては、コンテンツ格納部からコンテンツを読み出して、通信端末に送信している。つまり、２回目以降のコンテンツ送信の際には、通信端末は、ウェブサイトからコンテンツを受信することなく、コンテンツ格納部からコンテンツを取得できる。
【０００８】
しかしながら、特許文献１においては、中継装置は、コンテンツのバージョン情報を確認するために、バージョン情報を要求する機能を別途必要とする。また、コンテンツサーバも、コンテンツのバージョン情報を送信するための機能を別途必要とする。このため、システムの汎用性が低いという問題がある。
【０００９】
本発明は、このような問題を解決するためになされたものであり、ウェブサーバの負荷を軽減させることができ、汎用性の高い中継装置、中継装置の制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明にかかる中継装置は、ＨＴＴＰ（Hypertext Transfer Protocol）の通信プロトコルを用いてウェブサーバと通信を行う中継装置であって、前記ウェブサーバにファイル及び当該ファイルのヘッダ情報を含む第１のＨＴＴＰレスポンスの送信を要求するための第１のＨＴＴＰリクエストを、前記中継装置の配下に接続されたユーザ端末から受信するリクエスト受信手段と、前記リクエスト受信手段が受信した前記第１のＨＴＴＰリクエストを、前記ウェブサーバに前記ファイルのヘッダ情報である第２のＨＴＴＰレスポンスの送信を要求するための第２のＨＴＴＰリクエストに変換するリクエスト変換手段と、前記リクエスト変換手段が変換した前記第２のＨＴＴＰリクエストを前記ウェブサーバに送信するリクエスト送信手段と、前記第２のＨＴＴＰリクエストに応じて前記ウェブサーバから送信された前記第２のＨＴＴＰレスポンスを受信するレスポンス受信手段と、受信した前記第２のＨＴＴＰレスポンスに基づいて、前記第１のＨＴＴＰレスポンスを前記ユーザ端末に送信するレスポンス送信手段と、を備えるものである。
【００１１】
本発明にかかる中継装置の制御方法は、ＨＴＴＰ（Hypertext Transfer Protocol）の通信プロトコルを用いてウェブサーバと通信を行う中継装置の制御方法であって、前記ウェブサーバにファイル及び当該ファイルのヘッダ情報を含む第１のＨＴＴＰレスポンスの送信を要求するための第１のＨＴＴＰリクエストを、前記中継装置の配下に接続されたユーザ端末から受信するステップと、受信した前記第１のＨＴＴＰリクエストを、前記ウェブサーバに前記ファイルのヘッダ情報である第２のＨＴＴＰレスポンスの送信を要求するための第２のＨＴＴＰリクエストに変換するステップと、変換した前記第２のＨＴＴＰリクエストを前記ウェブサーバに送信するステップと、前記第２のＨＴＴＰリクエストに応じて前記ウェブサーバから送信された前記第２のＨＴＴＰレスポンスを受信するステップと、受信した前記第２のＨＴＴＰレスポンスに基づいて、前記第１のＨＴＴＰレスポンスを前記ユーザ端末に送信するステップと、を備えるものである。
【００１２】
本発明にかかるプログラムは、ＨＴＴＰ（Hypertext Transfer Protocol）の通信プロトコルを用いてウェブサーバと通信を行う中継装置を制御するプログラムであって、コンピュータに、前記ウェブサーバにファイル及び当該ファイルのヘッダ情報を含む第１のＨＴＴＰレスポンスの送信を要求するための第１のＨＴＴＰリクエストを、前記中継装置の配下に接続されたユーザ端末から受信させるステップと、受信した前記第１のＨＴＴＰリクエストを、前記ウェブサーバに前記ファイルのヘッダ情報である第２のＨＴＴＰレスポンスの送信を要求するための第２のＨＴＴＰリクエストに変換させるステップと、変換した前記第２のＨＴＴＰリクエストを前記ウェブサーバに送信させるステップと、前記第２のＨＴＴＰリクエストに応じて前記ウェブサーバから送信された前記第２のＨＴＴＰレスポンスを受信させるステップと、受信した前記第２のＨＴＴＰレスポンスに基づいて、前記第１のＨＴＴＰレスポンスを前記ユーザ端末に送信させるステップと、を実行させるものである。
【発明の効果】
【００１３】
本発明により、ウェブサーバの負荷を軽減させることができ、汎用性の高い中継装置、中継装置の制御方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかる通信システムの構成図である。
【図２】実施の形態１にかかるルータの動作を示すフローチャートである。
【図３】実施の形態１にかかる通信システムの動作を説明するためのシーケンス図である。
【図４】実施の形態１にかかる通信システムの動作を説明するためのシーケンス図である。
【図５】実施の形態１にかかる通信システムの動作を説明するためのシーケンス図である。
【図６】実施の形態１にかかる記憶部に格納される情報を示す図である。
【図７】実施の形態１にかかる記憶部に格納される情報を示す図である。
【図８】実施の形態２にかかる通信システムの動作を説明するためのシーケンス図である。
【図９】実施の形態２にかかる記憶部に格納される情報を示す図である。
【図１０】実施の形態２にかかる記憶部に格納される情報を示す図である。
【図１１】比較例にかかる通信システムの動作を説明するためのシーケンス図である。
【図１２】比較例にかかる通信システムの動作を説明するためのシーケンス図である。
【図１３】本発明にかかる中継装置のブロック図である。
【発明を実施するための形態】
【００１５】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態１について説明する。本実施の形態にかかる通信システムの構成を図１に示す。通信システムは、ルータ１０１と、端末１１２、１１４と、ウェブサーバ１２２と、を備える。
【００１６】
＜通信システムの構成＞
ルータ１０１は、インターネット１２１と接続されている。また、ウェブサーバ１２２も、インターネット１２１と接続されている。また、ルータ１０１は、ＬＡＮ（Local Area Network）ネットワーク１１１を介して、端末１１２、１１４と接続されている。インターネット１２１は、コンピュータネットワーク、電話交換網、移動体通信網、及び企業内イントラネットなどが相互に接続された通信網である。インターネット１２１は、ルータ１０１とウェブサーバ１２２を通信接続する。
【００１７】
ルータ１０１（中継装置）は、ブロードバンドルータである。ルータ１０１は、ＬＡＮインターフェース１０２と、ＷＡＮ（Wide Area Network）インターフェース１０３と、ルーティング部１０４と、ルータ装置機能部１０５と、記憶部１０６と、ＵＳＢインターフェース１０７と、を有する。
【００１８】
ＬＡＮインターフェース１０２は、ＬＡＮを介して、端末１１２、１１４に接続される。つまり、ＬＡＮインターフェース１０２は、ルータ１０１の配下のＬＡＮネットワーク１１１内に存在する端末１１２、１１４に接続される。ＷＡＮインターフェース１０３は、インターネット１２１に接続される。ここで、ＬＡＮネットワーク１１１は、有線接続に限るものではなく、無線接続であってもよい。同様に、ＷＡＮインターフェース１０３とインターネット１２１との接続方法は限定されない。
【００１９】
ＬＡＮインターフェース１０２は、ＬＡＮネットワーク１１１からパケットを受信し、受信したパケットをルーティング部１０４に送信する。また、ＬＡＮインターフェース１０２は、ルーティング部１０４からパケットを受信し、ＬＡＮネットワーク１１１に送信する。
【００２０】
ＷＡＮインターフェース１０３は、インターネット１２１からパケットを受信し、受信したパケットをルーティング部１０４に送信する。また、ＷＡＮインターフェース１０３は、ルーティング部１０４からパケットを受信し、受信したパケットをインターネット１２１に送信する。ルーティング部１０４は、特定の条件において、ルータ装置機能部１０５にパケットを送信する。
【００２１】
ルータ装置機能部１０５（リクエスト受信手段、リクエスト変換手段、リクエスト送信手段、レスポンス受信手段、レスポンス送信手段、判定手段、比較手段）は、例えば、ＣＰＵ(Central Processing Unit)を有する制御部であり、予めメモリに格納された制御プログラムに基づいて、各種処理を実行する。ルータ装置機能部１０５は、ルーティング部１０４から受信したパケットに対して処理を行った後、パケットをルーティング部１０４に送信する。ルータ装置機能部１０５は、特定の条件において、パケットを生成し、ルーティング部１０４に送信する。また、ルータ装置機能部１０５は、記憶部１０６へ情報を格納したり、記憶部１０６に格納した情報を参照したりする。また、ルータ装置機能部１０５は、ＵＳＢインターフェース１０７に接続されたＵＳＢマスストレージデバイス１３１へ情報を格納したり、格納した情報を参照したりする。
【００２２】
端末１１２、１１４、ウェブブラウザ１１３、１１５、ウェブサーバ１２２、及びウェブサイト１２３は、周知の技術により実現されるものであるため、詳細な説明は省略する。なお、端末１１２、１１４は、ＬＡＮに接続可能なデバイスであればよく、例えば、携帯電話、スマートフォン、タブレットＰＣ、ノートＰＣ、ゲーム機等である。また、ウェブサーバ１２２は、インターネット１２１を介してダウンロード可能な複数のファイルを有するサーバである。
【００２３】
記憶部１０６は、例えば、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等のメモリである。記憶部１０６は、HTTP GET リクエスト、HTTP 200 レスポンス、ウェブサイトのファイル等を記憶する。ＵＳＢ(Universal Serial Bus)マスストレージデバイス１３１は、ＵＳＢインターフェース１０７を介して、ルータ１０１に接続されるメモリ装置である。ＵＳＢマスストレージデバイス１３１は、記憶部１０６と同様に、HTTP GET リクエスト、HTTP 200 レスポンス、ウェブサイトのファイル等を記憶する。なお、ＵＳＢマスストレージデバイス１３１は、必須の構成ではなく省略可能である。言い換えると、HTTP GET リクエスト、HTTP 200 レスポンス、ウェブサイトのファイル等の情報は、必ずしも、ルータ１０１の内部に格納されている必要はなく、ルータ１０１が参照可能な場所に格納されていればよい。
【００２４】
ここで、HTTP GET リクエスト（第１のＨＴＴＰリクエスト）とは、ウェブサーバ１２２に対して、ファイル及び当該ファイルのヘッダ情報（第１のＨＴＴＰレスポンス）の送信を要求するためのＨＴＴＰメッセージである。また、後述のHTTP HEAD リクエスト（第２のＨＴＴＰリクエスト）とは、ウェブサーバ１２２に対して、ファイルのヘッダ情報のみ（第２のＨＴＴＰレスポンス）の送信を要求するためのＨＴＴＰメッセージである。HTTP 200 レスポンスは、ステータスコードが200のＨＴＴＰパケットである。HTTP GET リクエストに対応するHTTP 200 レスポンスは、ファイル及び当該ファイルのヘッダ情報を含む情報である。またHTTP HEAD リクエストに対応するHTTP 200 レスポンスは、ファイルのヘッダ情報のみを含む情報である。
【００２５】
＜ルータの動作＞
続いて、本実施の形態にかかるルータ１０１の動作について、図２のフローチャートを参照して説明する。まず、ルータ装置機能部１０５は、端末１１２、１１４からHTTP GET リクエストを受信したか否かを判定する（ステップＳ４０１）。HTTP GET リクエストを受信しない場合（ステップＳ４０１：Ｎｏ）、ルータ装置機能部１０５は、HTTP GET リクエストを受信するまで待機する。
【００２６】
一方、HTTP GET リクエストを受信した場合（ステップＳ４０１：Ｙｅｓ）、ルータ装置機能部１０５は、受信したHTTP GET リクエストが記憶部１０６に格納されているか否かを判定する（ステップＳ４０２）。受信したHTTP GET リクエストが記憶部１０６に格納されていない場合（ステップＳ４０２：Ｎｏ）、ルータ装置機能部１０５は、受信したHTTP GET リクエストを、インターネット１２１を介してウェブサーバ１２２に送信する（ステップＳ４０３）。
【００２７】
次に、ルータ装置機能部１０５は、ウェブサーバ１２２からHTTP GET リクエストに応じたHTTP 200 レスポンスを受信する（ステップＳ４０４）。そして、ルータ装置機能部１０５は、ステップＳ４０３においてウェブサーバ１２２に送信したHTTP GET リクエストを記憶部１０６に格納する（ステップＳ４０５）。
【００２８】
その後、ルータ装置機能部１０５は、ステップＳ４０４においてウェブサーバ１２２から受信したHTTP 200 レスポンスを記憶部１０６に格納する（ステップＳ４１４）。ルータ装置機能部１０５は、HTTP 200 レスポンスを記憶部１０６に格納すると共に、HTTP GET リクエストを送信した端末にHTTP 200 レスポンスを送信する（ステップＳ４１５）。
【００２９】
一方、受信したHTTP GET リクエストが記憶部１０６に格納されている場合（ステップＳ４０２：Ｙｅｓ）、ルータ装置機能部１０５は、HTTP GET リクエストをHTTP HEAD リクエストに変換する。このとき、記憶部１０６に格納されたHTTP GET リクエストとは、上記のステップＳ４０５において、ルータ装置機能部１０５が事前に記憶部１０６に格納した情報である。そして、ルータ装置機能部１０５は、HTTP HEAD リクエストをウェブサーバ１２２に送信する（ステップＳ４０６）。つまり、ルータ装置機能部１０５は、HTTP GET リクエストにより要求されるファイルのヘッダ情報をウェブサーバ１２２に要求する。
【００３０】
ルータ装置機能部１０５は、ウェブサーバ１２２からHTTP HEAD リクエストに対応するHTTP 200 レスポンスを受信する（ステップＳ４０７）。つまり、ルータ装置機能部１０５は、ウェブサーバ１２２からファイルのヘッダ情報のみを取得する。ルータ装置機能部１０５は、受信したHTTP 200 レスポンスに基づいて、端末にファイルを送信する。
【００３１】
具体的には、ルータ装置機能部１０５は、受信したHTTP 200 レスポンスと、記憶部１０６に格納されたHTTP 200 レスポンスと、を比較する（ステップＳ４０８）。このとき、記憶部１０６に格納されたHTTP 200 レスポンスとは、上記のステップＳ４１４において、ルータ装置機能部１０５が事前に記憶部１０６に格納した情報である。ルータ装置機能部１０５は、記憶部１０６に格納されたHTTP 200 レスポンスに含まれるヘッダ情報を、受信したヘッダ情報と比較する。
【００３２】
そして、ルータ装置機能部１０５は、ウェブサイト１２３上のファイルが更新されているか否かを判定する（ステップＳ４０９）。つまり、ルータ装置機能部１０５は、受信したHTTP 200 レスポンスと、記憶部１０６に格納されたHTTP 200 レスポンスと、が同一であるか否かを判定する。
【００３３】
ウェブサイト上のファイルが更新されていない場合（ステップＳ４０９：Ｎｏ）、つまり、ステップＳ４０７において受信したHTTP 200 レスポンスと、記憶部１０６に格納されたHTTP 200 レスポンスと、が同一である場合、ルータ装置機能部１０５は、記憶部１０６に格納されているHTTP 200 レスポンスを、HTTP GET リクエストを送信した端末に送信する（ステップＳ４１０）。言い換えると、ルータ装置機能部１０５は、記憶部１０６に格納されているHTTP 200 レスポンス（ファイル及びヘッダを含むデータ）を端末に送信する。記憶部１０６に格納されているHTTP 200 レスポンスとは、ステップＳ４１４において、ルータ装置機能部１０５が事前に記憶部１０６に格納した情報である。
【００３４】
一方、ウェブサイト上のファイルが更新されている場合（ステップＳ４０９：Ｙｅｓ）、つまり、ステップＳ４０７において受信したHTTP 200 レスポンスと、記憶部１０６に格納されたHTTP 200 レスポンスと、が同一でない場合、ルータ装置機能部１０５は、端末から受信したHTTP GET リクエストをウェブサーバに送信する（ステップＳ４１１）。
【００３５】
ルータ装置機能部１０５は、送信したHTTP GET リクエストに対応するHTTP 200 レスポンスをウェブサーバ１２２から受信する（ステップＳ４１２）。そして、ルータ装置機能部１０５は、既に記憶部１０６に格納されているHTTP 200 レスポンスを削除する（ステップＳ４１３）。
【００３６】
ルータ装置機能部１０５は、ステップＳ４１２においてウェブサーバ１２２から受信したHTTP 200 レスポンスを記憶部１０６に格納する（ステップＳ４１４）。ルータ装置機能部１０５は、HTTP 200 レスポンスを記憶部１０６に格納すると共に、HTTP GET リクエストを送信した端末にHTTP 200 レスポンスを送信する（ステップＳ４１５）。これにより、ルータ１０１は、更新後のファイルを、記憶部１０６に格納し、端末に送信することができる。
【００３７】
＜通信システムの動作＞
続いて、本実施の形態にかかる通信システムの動作について、図３〜図５のシーケンス図を参照して説明する。図３〜図５においてルータ１０１は、ＬＡＮインターフェース１０２を用いて端末１１２または端末１１４とパケットの送受信を行い、ＷＡＮインターフェース１０３を用いてウェブサーバ１２２とパケットの送受信を行っている。ルーティング部１０４は、ＬＡＮインターフェース１０２またはＷＡＮインターフェース１０３からHTTP GET リクエストまたはHTTP 200 レスポンスを受信した場合、ルータ装置機能部１０５に送信する。また、ルーティング部１０４は、ルータ装置機能部１０５からHTTP GET リクエストまたはHTTP 200 レスポンスを受信した場合、ＬＡＮインターフェース１０２またはＷＡＮインターフェース１０３に送信する。
【００３８】
また、図３及び図４おいて、端末１１２、１１４とルータ１０１との間に存在するＬＡＮネットワーク１１１、およびルータ１０１とウェブサーバ１２２との間に存在するインターネット１２１の記載は省略する。端末１１２、１１４のＩＰアドレスをそれぞれ192.168.0.2、192.168.0.3、ウェブサイト１２３上に存在するファイルのURLをhttp://172.16.1.10/example1.txtとする。
【００３９】
まず、図３を参照して、ウェブサイト１２３上のファイルのあて先（HTTP GET リクエスト）を記憶部１０６が記憶していない場合について説明する。まず、端末１１２が、ウェブサイト１２３（172.16.1.10）上のファイル（example1.txt）を取得するためHTTP GET リクエストを送信する（ステップＳ１０１、Ｓ１０２）。ルータ１０１は、端末１１２からウェブサイト１２３宛てのHTTP GET リクエストを受信すると、記憶部１０６にHTTP GET リクエスト（ファイルのあて先）が格納されているか否かを確認する（ステップＳ１０３）。図３の条件においては、記憶部１０６は、ウェブサイト１２３上のファイルは記憶していないため、ルータ１０１は、HTTP GET リクエストをウェブサーバ１２２に送信する（ステップＳ１０４、Ｓ１０５）。
【００４０】
ルータ１０１は、ウェブサーバ１２２からHTTP 200 レスポンスを受信すると（ステップＳ１０６）、ステップＳ１０４において送信したHTTP GET リクエストを記憶部１０６に格納する（ステップＳ１０７）。また、ルータ１０１は、受信したHTTP 200 レスポンスも記憶部１０６に格納する（ステップＳ１０８）。なお、このとき受信したHTTP 200 レスポンスは、ファイル及びファイルのヘッダ情報を含む。そして、ルータ１０１は、格納したHTTP 200 レスポンスを端末１１２に送信する（ステップＳ１０９、Ｓ１１０）。端末１１２は、ウェブサイト１２３上のファイルを取得する（ステップＳ１１１）。
【００４１】
ここで、記憶部１０６に格納される情報を図６に示す。上述の例のように、端末１１２からのHTTP GET リクエストで要求されるファイルがexample1.txtであり、そのファイルのURLがhttp://172.16.1.10/example1.txtであるとする。この場合、記憶部１０６が格納するHTTP GET リクエストは、図６のHTTP GET リクエスト列に示すような情報である。つまり、記憶部１０６は、要求するファイル名と、ファイルを有するホスト名と、を対応付けて格納する。HTTP GET リクエスト列に格納された要求するファイル名及びホスト名がファイルのあて先を示す情報となる。
【００４２】
また、記憶部１０６が格納するHTTP 200 レスポンスは、図６のHTTP 200 レスポンス列に示すような情報である。ここで「Last-Modified」はファイルが最後に更新された日時、「ETag」はウェブサーバ１２２が生成するファイルごとの識別子、「Content-Length」はファイルのサイズである。つまり、記憶部１０６は、ファイルの最終更新日と、ファイルの識別子と、ファイルのサイズと、を対応付けて格納する。なお、ウェブサーバ１２２は、これらの情報をHTTP 200 レスポンスのヘッダ情報に含めることができる。また、記憶部１０６は、上述のHTTP GET リクエスト及びHTTP 200 レスポンスに対応付けて、ファイルの保存場所のURLも格納する。
【００４３】
次に、図４を参照して、ウェブサイト１２３上のファイルのあて先（HTTP GET リクエスト）を記憶部１０６が記憶している場合について説明する。なお、図４及び図５に示すシーケンス図は、図３のシーケンスの後の動作を示すものとする。つまり、記憶部１０６が、既に図６に示した情報を記憶している状態である。
【００４４】
まず、端末１１４が、ウェブサイト１２３（172.16.1.10）上のファイル（example1.txt）を取得するためHTTP GET リクエストを送信する（ステップＳ２０１、S２０２）。ルータ１０１は、端末１１４からウェブサイト１２３宛てのHTTP GET リクエストを受信すると、受信したHTTP GET リクエスト（ファイルのあて先）が記憶部１０６に格納されているか否かを確認する（ステップＳ２０３）。図４の条件において記憶部１０６はウェブサイト１２３上のファイルを記憶しているため、ルータ１０１は、HTTP GET リクエストをHTTP HEAD リクエストに変換し、ウェブサーバ１２２に送信する（ステップＳ２０４、Ｓ２０５）。
【００４５】
ルータ１０１は、ウェブサーバ１２２からHTTP 200 レスポンスを受信すると（ステップＳ２０６）、受信したHTTP 200 レスポンスと記憶部１０６に記憶しているHTTP 200 レスポンスとを比較してウェブサイト１２３上のファイルが変更されているか否かを確認する（ステップＳ２０７）。具体的には、受信したHTTP 200 レスポンスと記憶部１０６に記憶しているHTTP 200 レスポンスとが同一であるか否かを判定する。なお、このとき受信したHTTP 200 レスポンスは、ファイルのヘッダ情報のみを含む。ウェブサイト１２３上のファイルは変更されていないため、ルータ１０１は、記憶部１０６に格納されているHTTP 200 レスポンスを端末１１４に送信する（ステップＳ２０８、Ｓ２０９）。端末１１４は、記憶部１０６が記憶しているウェブサイト１２３上のファイルを取得する（ステップＳ２１０）。
【００４６】
最後に、図５を参照して、ウェブサイト１２３上のファイルのあて先（HTTP GET リクエスト）を記憶部１０６が記憶しているが、ウェブサイト１２３上のファイルが変更（更新）されている場合について説明する。まず、端末１１２が、ウェブサイト１２３（172.16.1.10）上のファイル（example1.txt）を取得するためHTTP GET リクエストを送信する（ステップＳ３０１、Ｓ３０２）。ルータ１０１は、端末１１２からウェブサイト１２３宛てのHTTP GET リクエストを受信すると、受信したHTTP GET リクエスト（ファイルのあて先）が記憶部１０６に格納されているか否かを確認する（ステップＳ３０３）。
【００４７】
ウェブサイト１２３上のあて先（HTTP GET リクエスト）は以前取得したときに記憶しているため、ルータ１０１は、HTTP GET リクエストをHTTP HEAD リクエストに変換してウェブサーバ１２２に送信する（ステップＳ３０４、Ｓ３０５）。ルータ１０１は、ウェブサーバ１２２からHTTP 200 レスポンスを受信すると（ステップＳ３０６）、記憶部１０６に格納されているHTTP 200 レスポンスと、受信したHTTP 200 レスポンスと、を比較して、ウェブサイト１２３上のファイルが変更（更新）されているか確認する（ステップＳ３０７）。なお、このとき、受信したHTTP 200 レスポンスは、ファイルのヘッダ情報のみを含む。図５の条件においてウェブサイト１２３上のファイルは変更されているため、ルータ１０１は、変更されたウェブサイト１２３上のファイルを取得するためにHTTP GET リクエストを送信する（ステップＳ３０８、Ｓ３０９）。
【００４８】
ルータ１０１は、ウェブサーバ１２２からHTTP 200 レスポンスを受信すると（ステップＳ３１０）、記憶部１０６に記憶しているHTTP 200 レスポンスを削除する（ステップＳ３１１）。そして、ルータ１０１は、ウェブサーバ１２２から受信した更新後のHTTP 200 レスポンスを記憶部１０６に格納する（ステップＳ３１２）。なお、このとき受信したHTTP 200 レスポンスは、ファイル及びファイルのヘッダ情報を含む。また、ルータ１０１は、記憶部１０６に格納したHTTP 200 レスポンスを端末１１２に送信する（ステップＳ３１３、Ｓ３１４）。端末１１２は、ウェブサイト１２３上の更新後の（最新の）ファイルを取得する（ステップＳ３１５）。
【００４９】
ここで、ステップＳ３１２において、ルータ１０１が記憶部１０６に格納したHTTP 200 レスポンスの一例を図７に示す。レスポンス列を参照すると、「Last-Modified」、「ETag」、「Content-Length」すべてが予め格納されたHTTP 200 レスポンス列（図６参照）と異なっている。つまり、以前に取得したヘッダ情報と、ステップＳ３０６において取得したヘッダ情報と、が異なっている。このため、ルータ１０１は、ウェブサイト１２３上のファイルが更新されていると判断できる。なお、ファイルが変更（更新）されているかどうかを判断するために使用するヘッダ情報は、図６及び図７に示した「Last-Modified」、「ETag」、「Content-Length」に限るものではなく、HTTP 200 レスポンスに含まれているその他のヘッダ情報を使用してもよい。
【００５０】
以上のように、本実施の形態にかかるルータ１０１の構成においては、ルータ装置機能部１０５が、HTTP GET リクエストを、ルータ１０１の配下に接続された端末１１２、１１４から受信する。ルータ装置機能部１０５は、受信したHTTP GET リクエストをHTTP HEAD リクエストに変換する。ルータ装置機能部１０５は、HTTP HEAD リクエストをウェブサーバ１２２に送信し、HTTP HEAD リクエストに対応するHTTP 200 レスポンス（ヘッダ情報）をウェブサーバ１２２から受信する。そして、ルータ装置機能部１０５は、受信したHTTP 200 レスポンス（ヘッダ情報）に基づいて、HTTP 200 レスポンス（ファイル情報およびヘッダ情報）を端末に送信する。このため、ルータ装置機能部１０５は、HTTP HEAD リクエストに対応するHTTP 200 リクエストを参照することにより、端末１１２、１１４が要求するファイルの更新状況を確認できる。したがって、ルータ１０１は、既に取得しているファイルであって、更新されていないファイルについては、ウェブサーバ１２２にアクセスすることなく、端末１１２、１１４に送信することができる。その結果、ウェブサーバの負荷を軽減させることができる。
【００５１】
さらに、ルータ１０１は、HTTP GET リクエストをHTTP HEAD リクエストに変換するだけで、ウェブサーバ１２２においてファイルが更新されているか否かを容易に確認できる。つまり、ルータ１０１およびウェブサーバ１２２は、通常使用されているＨＴＴＰメッセージのみを用いて、ファイルの更新状況を送受信することができる。したがって、ファイルの更新状況を確認するために、特別な情報をルータ１０１およびウェブサーバ１２２間で送受信する必要がない。つまり、ウェブサーバ１２２に特別な機能を持たせる必要がない。その結果、汎用性の高いルータ１０１及び通信システムを実現できる。
【００５２】
＜実施の形態２＞
本発明にかかる実施の形態２について説明する。なお、本実施の形態にかかるルータ１０１の構成は、図１に示した構成と同様であるので、説明を適宜省略する。
【００５３】
＜通信システムの動作＞
続いて、図８のシーケンス図を参照して、本実施の形態にかかる通信システム動作について説明する。上述の実施の形態１においては、図４のステップＳ２０１において端末１１４が取得しようとしたウェブサイト１２３上のファイルは、図３のステップＳ１０８において既にルータ１０１の記憶部１０６に格納されていた。つまり、記憶部１０６は、端末１１４からファイルの要求があった時点において、当該ファイルの記憶を完了していた。
【００５４】
本実施の形態においては、端末１１２及び端末１１４が同時にウェブサイト１２３上の同一のファイルを取得しようする場合について説明する。この場合、端末１１４がルータ１０１へHTTP GET リクエストを送信したときには、未だ記憶部１０６は、ファイルの記憶を完了していない状況となる。
【００５５】
まず、端末１１２が、ウェブサイト１２３（172.16.1.10）上のファイル（example1.txt）を取得するためHTTP GET リクエストを送信する（ステップＳ５０１、Ｓ５０２）。ルータ１０１は、端末１１２からウェブサイト１２３宛てのHTTP GET リクエストを受信すると、受信したHTTP GET リクエストが記憶部１０６に格納されているか否かを確認する（ステップＳ５０３）。記憶部１０６は、ウェブサイト１２３上のファイルを未だ記憶していないため、ルータ１０１は、HTTP GET リクエストをウェブサーバ１２２に送信する（ステップＳ５０４、Ｓ５０５）。
【００５６】
ウェブサーバ１２２からHTTP GET リクエストに対応するHTTP 200 レスポンスを受信すると（ステップＳ５０６）、ルータ１０１は、ステップＳ５０１において端末１１２から送信されたHTTP GET リクエストを記憶部１０６に格納する（ステップＳ５０７）。また、ルータ１０１は、ウェブサーバ１２２から受信したHTTP 200 レスポンスを記憶部１０６に格納する（ステップＳ５０８）。さらに、ルータ１０１は、記憶部１０６に格納中のHTTP 200 レスポンスを端末１１２に送信する（ステップＳ５０９、Ｓ５１０）。
【００５７】
このとき、記憶部１０６が記憶するHTTP GET リクエスト及びHTTP 200 レスポンスの一例を図９に示す。図６に示した情報との違いは、状態列が追加されていることである。つまり、記憶部１０６は、HTTP GET リクエスト、HTTP 200 レスポンス、及びファイルの保存場所に対応付けて、状態列の情報を記憶する。状態列に格納される情報（記憶完了情報）は、ウェブサーバ１２２からファイルを記憶中であるか、記憶済みであるかを示す情報である。図９の例においては、状態列が「取得中」となっている。これはウェブサイト上のファイルを現在ルータ１０１（記憶部１０６）が記憶中であることを表す。
【００５８】
ここで、ルータ１０１は、ウェブサーバ１２２からHTTP 200 レスポンスをステップＳ５０６からＳ５１６まで受信しているとする。つまり、記憶部１０６がHTTP 200 レスポンスの記憶を完了するまでに、破線矢印で示した時間ｔ１１かかるとする。記憶部１０６が、HTTP 200レスポンスの記憶を完了すると、記憶部１０６に格納された状態列の情報は、図１０に示すように更新される。つまり、状態列の情報が、「取得中」から「取得完了」に更新される。取得完了とは、ウェブサイト１２３上のファイルを記憶部１０６が記憶完了したことを表す。また、ルータ１０１は端末１１２にHTTP 200 レスポンスをステップＳ５１０からＳ５１８まで送信しているものとする。つまり、端末１１２がHTTP 200 レスポンスを取得するまでに、破線矢印で示した時間ｔ１２かかるものとする。
【００５９】
次に、端末１１４が、ウェブサイト１２３（172.16.1.10）上のファイル（example1.txt）を取得するためHTTP GET リクエストを送信する（ステップＳ５１１、Ｓ５１２）。ルータ１０１は、端末１１４からウェブサイト１２３宛てのHTTP GET リクエストを受信すると、受信したHTTP GET リクエストが記憶部１０６に格納されているか否かを確認する（ステップＳ５１３）。
【００６０】
このとき、ルータ１０１は、記憶部１０６に格納された状態列も確認する。ステップＳ５１３は時間ｔ１１内に行われる処理であるため、状態列「取得中」となっており、未だHTTP 200 レスポンスの記憶は完了していない。つまり、ステップＳ５１１、Ｓ５１２において端末１１４が送信したHTTP GET リクエストは、ステップＳ５０７において既に記憶部１０６に格納されているが、当該HTTP GET リクエストに対応するHTTP 200 レスポンスは記憶中である。そのため、ルータ１０１は、HTTP GET リクエストやHTTP HEAD リクエストを用いて、ウェブサイト１２３上のファイルの取得や比較を行わない。つまり、ルータ１０１は、端末１１４からのHTTP GET リクエストに応じて、ウェブサーバ１２２と別途通信を行わない。ルータ１０１は、記憶中のHTTP 200 レスポンスを順次端末１１４に送信する（ステップＳ５１４、Ｓ５１５）。
【００６１】
ここで、ルータ１０１は、ステップＳ５１５からＳ５２０まで端末１１４にHTTP 200 レスポンスを送信しているものとする。つまり、端末１１４がHTTP 200 レスポンスを取得するまでに、破線矢印で示した時間ｔ１３かかるものとする。その後、記憶部１０６によるHTTP 200 レスポンスの記憶が完了すると（ステップＳ５１７）、端末１１２のファイルの取得が完了し（ステップＳ５１８、Ｓ５１９）、端末１１４のファイルの取得が完了する（ステップＳ５２０、Ｓ５２１）。
【００６２】
以上のように、本実施の形態にかかるルータ１０１の構成によれば、記憶部１０６が、ウェブサーバ１２２から送信されたファイル（HTTP 200 レスポンス）を記憶中か否かを示す情報（記憶完了情報）を格納する。そして、ルータ１０１は、記憶部１０６がファイルを記憶中の場合、ウェブサイト１２３上のファイルの取得や比較を行わず、記憶部１０６に記憶中のファイルを端末に送信する。このため、ルータ１０１からウェブサーバ１２２へのアクセス数を減らすことができる。その結果、ウェブサーバ１２２の負荷を軽減させることができる。また、記憶中のファイルは、ウェブサイト１２３上において最新のファイルであると考えられるため、ルータ１０１がウェブサイト１２３上のファイルの取得や比較を行わなくても、端末１１２、１１４は、最新のファイルを取得することができる。
【００６３】
＜比較例＞
ここで、図１１及び図１２に示すシーケンス図を参照して、本実施の形態にかかる通信システムの比較例について説明する。図１１及び図１２は、比較例にかかる通信システムのシーケンス図であり、一般的なウェブキャッシュシステムを使用した場合の通信システムの動作示す。
【００６４】
はじめに、図１１を参照して比較例にかかる通信システムの動作を説明する。まず、端末１１２が、ウェブサイト１２３（172.16.1.10）上のファイル（example1.txt）を取得するためHTTP GET リクエストを送信する（ステップＳ６０１、Ｓ６０２）。ルータ９０１は、受信したHTTP GET リクエストをプロキシサーバ１４１に送信する（ステップＳ６０３）。プロキシサーバ１４１は、HTTP GET リクエストを受信すると、当該HTTP GET リクエストを既に記憶しているか否かを確認する（ステップＳ６０４）。プロキシサーバ１４１は、HTTP GET リクエストを記憶している場合、HTTP GET リクエストに「Last-Modified」フィールドを追加してウェブサーバ１２２に送信する（ステップＳ６０５、Ｓ６０６）。
【００６５】
ウェブサーバ１２２は、「Last-Modified」フィールドをウェブサイト１２３上のファイルの値と比較する（ステップＳ６０７）。そして、ファイルが変更されていない場合、ウェブサーバ１２２は、HTTP 304 レスポンスをプロキシサーバ１４１に送信する（ステップＳ６０８、Ｓ６０９）。
【００６６】
プロキシサーバ１４１は、ウェブサーバ１２２からHTTP 304 レスポンスを受信すると、記憶しているファイルをHTTP 200 レスポンスとしてルータ９０１に送信する（ステップＳ６１０、Ｓ６１１）。ルータ９０１は、受信したHTTP 200 レスポンスを端末１１２に送信し（Ｓ６１２）、端末１１２は、ウェブサイト１２３上のファイルを取得する（ステップＳ６１３）。このように、比較例にかかる通信システムの場合、ルータ９０１は、端末１１２とプロキシサーバ１４１との間のデータのやり取りを中継するのみで、データの変換処理等は行わない。また、ウェブサーバ１２２が、HTTP GET リクエストに含まれる「Last-Modified」フィールドの値とウェブサイト１２３上の値との比較処理を行う。このため、ウェブサーバ１２２の処理負担が増加してしまう。
【００６７】
これに対して、本発明にかかる通信システムにおいては、ファイルが更新されているか否かを確認するために、ウェブサーバ１２２に要求されることは、ヘッダ情報の送信処理のみである。そのため、ウェブサーバ１２２は、比較処理等の演算処理を行わなくてよい。その結果、ウェブサーバ１２２の処理負担を軽減させることができる。
【００６８】
次に、図１１に示した動作を行う通信システムにおいて、複数の端末１１２、１１４が同時に同一ウェブサイト１２３上の同一ファイルに接続したときの動作について、図１２に示すシーケンス図を参照して説明する。まず、端末１１２がウェブサイト１２３（172.16.1.10）上のファイル（example1.txt）を取得するためHTTP GET リクエストを送信する（ステップＳ７０１、Ｓ７０２）。ルータ９０１は、受信したHTTP GET リクエストをプロキシサーバ１４１に送信する（ステップＳ７０３）。
【００６９】
プロキシサーバ１４１は、HTTP GET リクエストを受信し、受信したHTTP GET リクエストのあて先を記憶しているか否かを確認する（ステップＳ７０４）。記憶していない場合、プロキシサーバ１４１は、HTTP GET リクエストをウェブサーバ１２２に送信する（Ｓ７０５、Ｓ７０６）。プロキシサーバ１４１は、ウェブサーバ１２２からHTTP 200 レスポンスを受信すると、受信したHTTP 200 レスポンスをルータ９０１に送信する（ステップＳ７０８）。
【００７０】
ここで、プロキシサーバ１４１がウェブサーバ１２２からHTTP 200 レスポンスを受信完了するのにステップＳ７０７からＳ７２１まで時間がかかるものとする。つまり、プロキシサーバ１４１がHTTP 200 レスポンスを取得するまでに、破線矢印で示した時間ｔ２１かかるものとする。そのため、プロキシサーバ１４１においてHTTP 200 レスポンスの記憶が完了するのはステップＳ７２１である。また、プロキシサーバ１４１がルータ９０１にHTTP 200 レスポンスを送信完了するのにステップＳ７０９からＳ７２３まで時間がかかるものとする。つまり、プロキシサーバ１４１がルータ９０１にHTTP 200 レスポンスを送信完了するまでに、破線矢印で示した時間ｔ２２かかるものとする。さらに、ルータ９０１が端末１１２にHTTP 200 レスポンスを送信完了するのにステップＳ７１０からＳ７２４まで時間がかかるものとする。つまり、ルータ９０１がHTTP 200 レスポンスを送信完了するまでに、破線矢印で示した時間ｔ２３かかるものとする。
【００７１】
次に、端末１１４がウェブサイト１２３（172.16.1.10）上のファイル（example1.txt）を取得するためHTTP GET リクエストを送信する（ステップＳ７１１、Ｓ７１２）。ルータ９０１は、受信したHTTP GET リクエストをプロキシサーバ１４１に送信する（ステップＳ７１３）。
【００７２】
プロキシサーバ１４１は、HTTP GET リクエストを受信し、受信したHTTP GET リクエストのあて先を記憶しているか否かを確認する（ステップＳ７１４）。記憶していない場合、プロキシサーバ１４１は、HTTP GET リクエストをウェブサーバ１２２に送信する（ステップＳ７１５、Ｓ７１６）。プロキシサーバ１４１は、ウェブサーバ１２２からHTTP 200 レスポンスを受信すると（ステップＳ７１７）、受信したHTTP 200 レスポンスをルータ９０１に送信する（ステップＳ７１８、Ｓ７１９）。
【００７３】
ここで、プロキシサーバ１４１がウェブサーバ１２２からHTTP 200 レスポンスを受信完了するのにステップＳ７１７からＳ７２６まで時間がかかるものとする。つまり、プロキシサーバ１４１がHTTP 200 レスポンスを取得するまでに、破線矢印で示した時間ｔ２４かかるものとする。そのため、プロキシサーバ１４１においてHTTP 200 レスポンスの記憶が完了するのはステップＳ７２６である。また、プロキシサーバ１４１がルータ９０１にHTTP 200 レスポンスを送信完了するのにステップＳ７１９からＳ７２８まで時間がかかるものとする。つまり、プロキシサーバ１４１がルータ９０１にHTTP 200 レスポンスを送信完了するまでに、破線矢印で示した時間ｔ２５かかるものとする。さらに、ルータ９０１が端末１１２にHTTP 200 レスポンスを送信完了するのにステップＳ７２０からＳ７２９まで時間がかかるものとする。つまり、ルータ９０１がHTTP 200 レスポンスを送信完了するまでに、破線矢印で示した時間ｔ２６かかるものとする。
【００７４】
このとき、ステップＳ７２７において、プロキシサーバ１４１が記憶完了したHTTP 200 レスポンスは、ステップＳ７２２においてプロキシサーバ１４１が記憶したHTTP 200 レスポンスと同一である。また、ウェブサーバ１２２がプロキシサーバ１４１にHTTP 200 レスポンスを送信している時間ｔ２１と時間ｔ２４の重複時間（ステップＳ７１７〜Ｓ７２１）において、ウェブサーバ１２２とプロキシサーバ１４１との間では複数の通信が行われる。
【００７５】
同様に、プロキシサーバ１４１がルータ９０１にHTTP 200 レスポンスを送信している時間ｔ２２と時間ｔ２５の重複時間（ステップＳ７１９〜Ｓ７２３）において、プロキシサーバ１４１とルータ９０１と間では複数の通信が行われる。このため、比較例にかかる通信システムにおいては、ウェブサーバ１２２とプロキシサーバ１４１との間のネットワークや、プロキシサーバ１４１とルータ９０１との間のネットワークに負荷がかかってしまう。
【００７６】
これに対して、本発明にかかる通信システムにおいては、ルータ１０１は、記憶部１０６に記憶中のHTTP 200 リクエスト（ファイル）の送信要求を受けた場合、ウェブサーバ１２２とは何ら通信を行うことなく、記憶部１０６に記憶中のファイルを端末に送信する。このため、ルータ１０１とウェブサーバ１２２との間で複数の通信が行われることを回避できる。その結果、ウェブサーバ１２２の処理負担やネットワークの負担を軽減させることができる。
【００７７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態においては、通信プロトコルとして、ＨＴＴＰを用いて説明したが、ＨＴＴＰには、ＨＴＴＰにＳＳＬ（Secure Socket Layer）の暗号化機能を付加したＨＴＴＰＳ（Hypertext Transfer Protocol over Secure Socket Layer）も含まれることは言うまでもない。
【００７８】
また、図１３に示すように、本発明にかかる中継装置１は、少なくとも、リクエスト受信部１１と、リクエスト変換部１２と、リクエスト送信部１３と、レスポンス受信部１４と、レスポンス送信部１５と、を備えていればよい。
【００７９】
リクエスト受信部１１は、ウェブサーバにファイル及び当該ファイルのヘッダ情報を含む第１のＨＴＴＰレスポンス（HTTP 200 レスポンス）の送信を要求するための第１のＨＴＴＰリクエスト（HTTP GET リクエスト）を、中継装置１の配下に接続されたユーザ端末から受信する。リクエスト変換部１２は、リクエスト受信部１１が受信した第１のＨＴＴＰリクエストを、ウェブサーバにファイルのヘッダ情報である第２のＨＴＴＰレスポンス（HTTP 200 レスポンス）の送信を要求するための第２のＨＴＴＰリクエスト（HTTP HEAD リクエスト）に変換する。リクエスト送信部１３は、リクエスト変換部１２が変換した第２のＨＴＴＰリクエストをウェブサーバに送信する。レスポンス受信部１４は、第２のＨＴＴＰリクエストに応じてウェブサーバから送信された第２のＨＴＴＰレスポンスを受信する。レスポンス送信部１５は、レスポンス受信部１４が受信した第２のＨＴＴＰレスポンスに基づいて、第１のＨＴＴＰレスポンスをユーザ端末に送信する。例えば、レスポンス送信部１５は、受信した第２のＨＴＴＰレスポンスに基づいて、図示しない記憶部またはウェブサーバから第１のＨＴＴＰレスポンス（ファイル）を取得し、ユーザ端末に送信する。
【００８０】
これにより、中継装置１は、ファイルの更新状況をヘッダ情報（第２のＨＴＴＰレスポンス）に基づいて判断できる。したがって、ファイルを重複して取得することを回避でき、中継装置とウェブサーバとの間のネットワーク負荷を軽減できる。また、通常使用されているＨＴＴＰメッセージのみを用いて、ファイルの更新状況を送受信しているため、ウェブサーバ側に特別な機能を持たせる必要はない。そのため、汎用性の高い中継装置１を実現できる。
【００８１】
また、上述のルータの任意の処理は、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュメモリ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８２】
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現される場合だけでなく、このプログラムが、コンピュータ上で稼動しているＯＳ（Operating System）もしくはアプリケーションソフトウェアと共同して、上述の実施の形態の機能を実現する場合も、本発明の実施の形態に含まれる。さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットによって行われて、上述の実施の形態の機能が実現される場合も、本発明の実施の形態に含まれる。
【符号の説明】
【００８３】
１  中継装置
１１  リクエスト受信部
１２  リクエスト変換部
１３  リクエスト送信部
１４  レスポンス受信部
１５  レスポンス送信部
１０１  ルータ
１０２  ＬＡＮインターフェース
１０３  ＷＡＮインターフェース
１０４  ルーティング部
１０５  ルータ装置機能部
１０６  記憶部
１０７  ＵＳＢインターフェース
１１１  ＬＡＮネットワーク
１１２、１１４  端末
１１３、１１５  ウェブブラウザ
１２１  インターネット
１２２  ウェブサーバ
１２３  ウェブサイト
１３１  ＵＳＢマスストレージデバイス
【図１】
2014203163.tif 000003
【図２】
2014203163.tif 000004
【図３】
2014203163.tif 000005
【図４】
2014203163.tif 000006
【図５】
2014203163.tif 000007
【図６】
2014203163.tif 000008
【図７】
2014203163.tif 000009
【図８】
2014203163.tif 000010
【図９】
2014203163.tif 000011
【図１０】
2014203163.tif 000012
【図１１】
2014203163.tif 000013
【図１２】
2014203163.tif 000014
【図１３】
2014203163.tif 000015