(57)【特許請求の範囲】
【請求項１】
特定のホスト名と特定のＩＰアドレスとが割り当てられる通信装置であって、
外部装置からリクエストを受信する受信部と、
前記外部装置から第１のリクエストが受信される場合に、第２のリクエストを前記通信装置に送信することを前記外部装置に指示する第１の命令を、前記外部装置に供給する命令供給部であって、前記第１のリクエストでは、第１のウェブページを要求するためのアドレスとして、前記特定のホスト名を含む第１のアドレスが指定され、前記第２のリクエストでは、前記第１のウェブページを要求するためのアドレスとして、前記特定のＩＰアドレスを含む第２のアドレスが指定される、前記命令供給部と、
前記外部装置から前記第２のリクエストが受信される場合に、前記特定のＩＰアドレスと第１のクッキーとの組合せが、前記外部装置に保存されるように、第１の情報を前記外部装置に送信する情報送信部であって、前記第１の情報は、前記第１のクッキーを含む情報、又は、前記第１のクッキーを生成するための生成情報を含む情報である、前記情報送信部と、
前記外部装置から前記第２のリクエストが受信される場合に、前記第１のウェブページを表わす第１のデータを前記外部装置に送信するウェブページ送信部と、
を備える通信装置。
【請求項２】
前記外部装置から前記第１のリクエストが受信される場合において、前記特定のホスト名が所定の記号を含む場合に、
前記命令供給部は、前記第１の命令を前記外部装置に供給し、
前記外部装置から前記第１のリクエストが受信される場合において、前記特定のホスト名が前記所定の記号を含まない場合に、
前記命令供給部は、前記第１の命令を前記外部装置に供給せず、
前記情報送信部は、前記特定のホスト名と前記第１のクッキーとの組合せが、前記外部装置に保存されるように、第２の情報を前記外部装置に送信し、
前記ウェブページ送信部は、前記第１のデータを前記外部装置に送信し、
前記第２の情報は、前記第１のクッキーを含む情報、又は、前記第１のクッキーを生成するための生成情報を含む情報である、請求項１に記載の通信装置。
【請求項３】
前記所定の記号は、アンダースコアを含む、請求項２に記載の通信装置。
【請求項４】
前記命令供給部は、
前記外部装置から前記第１のリクエストが受信される場合に、前記特定のホスト名と第２のクッキーとの組合せを保存可能であるのか否かを確認するための確認処理を、前記外部装置に実行させる確認部を備え、
前記第１の命令は、前記確認処理において保存不可能であることが確認される場合に、前記第２のリクエストを前記通信装置に送信することを前記外部装置に指示する命令である、請求項１に記載の通信装置。
【請求項５】
前記確認部は、前記外部装置から前記第１のリクエストが受信される場合に、前記第２のクッキーを前記外部装置に送信して、前記特定のホスト名と前記第２のクッキーとの組合せを前記外部装置に保存させることによって、前記確認処理を実行させ、
前記確認部が前記第２のクッキーを前記外部装置に送信した後に、前記外部装置から前記第２のクッキーが受信されない場合に、
前記命令供給部は、前記第１の命令を前記外部装置に供給し、
前記確認部が前記第２のクッキーを前記外部装置に送信した後に、前記外部装置から前記第２のクッキーが受信される場合に、
前記命令供給部は、前記第１の命令を前記外部装置に供給せず、
前記情報送信部は、前記特定のホスト名と前記第１のクッキーとの組合せが、前記外部装置に保存されるように、第２の情報を前記外部装置に送信し、
前記ウェブページ送信部は、前記第１のウェブページを前記外部装置に送信し、
前記第２の情報は、前記第１のクッキーを含む情報、又は、前記第１のクッキーを生成するための生成情報を含む情報である、請求項４に記載の通信装置。
【請求項６】
前記確認部は、前記外部装置から前記第１のリクエストが受信される場合に、第２の命令を前記外部装置に送信することによって、前記確認処理を前記外部装置に実行させ、
前記第２の命令は、前記特定のホスト名と前記第２のクッキーとの組合せを保存不可能である場合に、前記第２のリクエストを前記通信装置に送信することを前記外部装置に指示する前記第１の命令を含む、請求項４に記載の通信装置。
【請求項７】
前記外部装置から前記第２のリクエストが受信される場合に、前記ウェブページ送信部は、さらに、認証情報を入力するための特定のウェブページを表わす特定のデータを前記外部装置に送信し、
前記ウェブページ送信部が前記特定のデータを前記外部装置に送信した後に、前記外部装置から所定の認証情報が受信される場合に、
前記情報送信部は、前記特定のＩＰアドレスと前記第１のクッキーとの組合せが、前記外部装置に保存されるように、前記第１の情報を前記外部装置に送信し、
前記ウェブページ送信部は、前記第１のデータを前記外部装置に送信する、請求項１から６のいずれか一項に記載の通信装置。
【請求項８】
前記情報送信部が前記第１の情報を前記外部装置に送信した後に、前記外部装置から、前記第１のクッキーと共に、第２のウェブページを要求するためのリクエストが受信される場合に、前記ウェブページ送信部は、さらに、前記第２のウェブページを表わす第２のデータを前記外部装置に送信する、請求項１から７のいずれか一項に記載の通信装置。
【請求項９】
特定のホスト名と特定のＩＰアドレスとが割り当てられる通信装置のためのコンピュータプログラムであって、
前記通信装置に搭載されるコンピュータに、以下の各処理、即ち、
外部装置からリクエストを受信する受信処理と、
前記外部装置から第１のリクエストが受信される場合に、第２のリクエストを前記通信装置に送信することを前記外部装置に指示する第１の命令を、前記外部装置に供給する命令供給処理であって、前記第１のリクエストでは、第１のウェブページを要求するためのアドレスとして、前記特定のホスト名を含む第１のアドレスが指定され、前記第２のリクエストでは、前記第１のウェブページを要求するためのアドレスとして、前記特定のＩＰアドレスを含む第２のアドレスが指定される、前記命令供給処理と、
前記外部装置から前記第２のリクエストが受信される場合に、前記特定のＩＰアドレスと第１のクッキーとの組合せが、前記外部装置に保存されるように、第１の情報を前記外部装置に送信する情報送信処理であって、前記第１の情報は、前記第１のクッキーを含む情報、又は、前記第１のクッキーを生成するための生成情報を含む情報である、前記情報送信処理と、
前記外部装置から前記第２のリクエストが受信される場合に、前記第１のウェブページを表わす第１のデータを前記外部装置に送信するウェブページ送信処理と、
を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書によって開示される技術は、外部装置から受信されるリクエストに従って、ウェブページを外部装置に送信する通信装置に関する。
【背景技術】
【０００２】
特許文献１には、ＨＴＴＰ（Hyper Text Transfer Protocol）に従って、ウェブページを送信するホストコンピュータが開示されている。ＨＴＴＰでは、ウェブページを要求するためのアドレスとして、ホストコンピュータのホスト名を含むアドレスが利用されることもあり得るし、ホストコンピュータのＩＰアドレスを含むアドレスが利用されることもあり得る。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３００１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ホストコンピュータとクライアントコンピュータとの間でウェブページの通信が実行される際に、クッキーが利用されることがある。クライアントコンピュータにクッキー情報（即ち、クッキー（所定の文字列）、当該クッキーが利用されるパス等を含む情報）が適切に保存されなければ、ウェブページに関する情報の管理が適切に実行されない可能性がある。本明細書では、クライアントコンピュータにクッキーを適切に保存させ得る技術を提供する。
【課題を解決するための手段】
【０００５】
本明細書では、特定のホスト名と特定のＩＰアドレスとが割り当てられる通信装置を開示する。通信装置は、受信部と、命令供給部と、情報送信部と、ウェブページ送信部と、を備える。受信部は、外部装置からリクエストを受信する。命令供給部は、外部装置から第１のリクエストが受信される場合に、第２のリクエストを通信装置に送信することを外部装置に指示する第１の命令を、外部装置に供給する。第１のリクエストでは、第１のウェブページを要求するためのアドレスとして、上記の特定のホスト名を含む第１のアドレスが指定される。第２のリクエストでは、第１のウェブページを要求するためのアドレスとして、上記の特定のＩＰアドレスを含む第２のアドレスが指定される。情報送信部は、外部装置から第２のリクエストが受信される場合に、特定のＩＰアドレスと第１のクッキーとの組合せが、外部装置に保存されるように、第１の情報を外部装置に送信する。ウェブページ送信部は、外部装置から第２のリクエストが受信される場合に、第１のウェブページを表わす第１のデータを外部装置に送信する。
【０００６】
上記の構成によると、通信装置は、通信装置自身の特定のホスト名を含む第１のアドレスが指定されている第１のリクエストが受信される場合に、通信装置自身の特定のＩＰアドレスを含む第２のアドレスが指定されている第２のリクエストを外部装置が送信するように、外部装置に指示することができる。そして、通信装置は、外部装置から第２のリクエストが受信される場合に、特定のＩＰアドレスと第１のクッキーとの組合せが外部装置に保存されるように、第１の情報を外部装置に送信する。従って、仮に、特定のホスト名と第１のクッキーとの組合せが外部装置に保存不可能であっても、特定のＩＰアドレスと第１のクッキーとの組合せが外部装置に保存され得る。従って、外部装置に第１のクッキーを適切に保存させ得る。
【０００７】
外部装置から第１のリクエストが受信される場合において、上記の特定のホスト名が所定の記号を含む場合に、命令供給部は、第１の命令を外部装置に供給してもよい。外部装置から第１のリクエストが受信される場合において、上記の特定のホスト名が所定の記号を含まない場合に、（Ａ）命令供給部は、第１の命令を外部装置に供給せず、（Ｂ）情報送信部は、上記の特定のホスト名と第１のクッキーとの組合せが、外部装置に保存されるように、第２の情報を外部装置に送信し、（Ｃ）ウェブページ送信部は、第１のデータを外部装置に送信してもよい。この構成によると、通信装置は、特定のホスト名が所定の記号を含むのか否かに応じた適切な処理を実行し得るために、第１のクッキーを外部装置に適切に保存させ得る。なお、所定の記号は、アンダースコアを含んでいてもよい。
【０００８】
命令供給部は、外部装置から第１のリクエストが受信される場合に、上記の特定のホスト名と第２のクッキーとの組合せを保存可能であるのか否かを確認するための確認処理を、外部装置に実行させる確認部を備えていてもよい。第１の命令は、確認処理において保存不可能であることが確認される場合に、第２のリクエストを通信装置に送信することを外部装置に指示する命令であってもよい。この構成によると、外部装置は、上記の特定のホスト名と第２のクッキーとの組合せを保存不可能である場合に、第２のリクエストを通信装置に送信することができる。
【０００９】
確認部は、外部装置から第１のリクエストが受信される場合に、第２のクッキーを外部装置に送信して、上記の特定のホスト名と第２のクッキーとの組合せを外部装置に保存させることによって、確認処理を実行させてもよい。確認部が第２のクッキーを外部装置に送信した後に、外部装置から第２のクッキーが受信されない場合に、命令供給部は、第１の命令を外部装置に供給してもよい。確認部が第２のクッキーを外部装置に送信した後に、外部装置から第２のクッキーが受信される場合に、（Ａ）命令供給部は、第１の命令を外部装置に供給せず、（Ｂ）情報送信部は、上記の特定のホスト名と第１のクッキーとの組合せが、外部装置に保存されるように、第２の情報を外部装置に送信し、（Ｃ）ウェブページ送信部は、第１のウェブページを外部装置に送信してもよい。この構成によると、通信装置は、外部装置から第２のクッキーが受信されるのか否かに応じた適切な処理を実行し得るために、第１のクッキーを外部装置に適切に保存させ得る。
【００１０】
確認部は、外部装置から第１のリクエストが受信される場合に、第２の命令を外部装置に送信することによって、確認処理を外部装置に実行させてもよい。第２の命令は、上記の特定のホスト名と第２のクッキーとの組合せを保存不可能である場合に、第２のリクエストを通信装置に送信することを外部装置に指示する第１の命令を含む。この構成によると、外部装置は、第２のクッキーを保存不可能である場合に、第２のリクエストを通信装置に送信することができる。
【００１１】
外部装置から第２のリクエストが受信される場合に、ウェブページ送信部は、さらに、認証情報を入力するための特定のウェブページを表わす特定のデータを外部装置に送信してもよい。ウェブページ送信部が特定のデータを外部装置に送信した後に、外部装置から所定の認証情報が受信される場合に、（Ａ）情報送信部は、上記の特定のＩＰアドレスと第１のクッキーとの組合せが、外部装置に保存されるように、第１の情報を外部装置に送信し、（Ｂ）ウェブページ送信部は、第１のデータを外部装置に送信してもよい。この構成によると、通信装置は、認証が成功する場合に、第１の情報を外部装置に送信することができる。
【００１２】
情報送信部が第１の情報を外部装置に送信した後に、外部装置から、第１のクッキーと共に、第２のウェブページを要求するためのリクエストが受信される場合に、ウェブページ送信部は、さらに、第２のウェブページを表わす第２のデータを外部装置に送信してもよい。この構成によると、通信装置は、第１のクッキーと共にリクエストが受信される場合、即ち、第１のクッキーが外部装置に適切に保存される場合に、第２のウェブページを表わす第２のデータを外部装置に送信することができる。
【００１３】
なお、上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。
【図面の簡単な説明】
【００１４】
【図１】通信システムの構成の一例を示す。
【図２】比較例の通信を表わすシーケンス図を示す。
【図３】第１実施例のウェブサーバ処理のフローチャートを示す。
【図４】第１実施例の通信の一例（ケースＡ１，Ａ２）を表わすシーケンス図を示す。
【図５】第２実施例のウェブサーバ処理のフローチャートを示す。
【図６】第２実施例の通信の一例（ケースＢ１）を表わすシーケンス図を示す。
【図７】第２実施例の通信の一例（ケースＢ２）を表わすシーケンス図を示す。
【図８】第３実施例のウェブサーバ処理のフローチャートを示す。
【図９】第３実施例の通信の一例（ケースＣ１，Ｃ２）を表わすシーケンス図を示す。
【発明を実施するための形態】
【００１５】
（第１実施例）
（システムの構成）
図１に示されるように、通信システム２は、プリンタ１０（ＰＣ５０の周辺機器）と、ＰＣ５０と、を備える。プリンタ１０とＰＣ５０とは、ＬＡＮ４を介して、相互に通信可能である。
【００１６】
（プリンタ１０の構成）
プリンタ１０は、操作部１２と、表示部１４と、印刷実行部１６と、ネットワークインターフェイス１８と、制御部２０と、を備える。上記の各部１２〜２０は、バス線（符号省略）に接続されている。操作部１２は、複数のキーによって構成される。ユーザは、操作部１２を操作することによって、様々な指示をプリンタ１０に与えることができる。表示部１４は、様々な情報を表示するためのディスプレイである。印刷実行部１６は、インクジェット方式、レーザ方式等の印刷機構を備え、制御部２０からの指示に従って印刷を実行する。ネットワークインターフェイス１８は、ＬＡＮ４に接続されている。
【００１７】
制御部２０は、ＣＰＵ２２とメモリ２４とを備える。ＣＰＵ２２は、メモリ２４に格納されているプログラム２６，２８に従って、様々な処理を実行する。メモリ２４は、プリンタ１０の基本的な動作（印刷のための動作、表示部１４での表示のための動作等）を実現するための基本プログラム２６と、外部装置（例えばＰＣ５０）から受信されるリクエストに応じてウェブページを提供するためのウェブサーバプログラム２８と、を格納している。
【００１８】
ＣＰＵ２２がウェブサーバプログラム２８に従って処理を実行することによって、受信部３０、命令供給部３２、情報送信部３８、及び、ウェブページ送信部４０の各機能が実現される。なお、第１実施例では、命令供給部３２は、判断部３４を備える。後述の第２及び第３実施例では、命令供給部３２は、確認部３６を備える。
【００１９】
なお、プリンタ１０には、ホスト名とＩＰアドレスとが割り当てられる。プリンタ１０には、例えば、ユーザによって指定される文字列（例えば「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」）がホスト名として割り当てられる。また、プリンタ１０には、例えば、図示省略のＤＨＣＰ（Dynamic Host Configuration Server）サーバからＩＰアドレス（例えば「１０．２０．３０．４０」）が割り当てられる。これに代えて、プリンタ１０には、ユーザによって指定されるＩＰアドレスが割り当てられてもよい。
【００２０】
（ＰＣ５０の構成）
ＰＣ５０は、図示省略のＣＰＵ、メモリ、ディスプレイ等を備える。ＰＣ５０のメモリには、ウェブブラウザプログラムが格納されている。ＰＣ５０のＣＰＵは、ウェブブラウザプログラムに従ってプリンタ１０にアクセスして、プリンタ１０からウェブページを表わすデータを受信することができる。即ち、通信システム２では、プリンタ１０がウェブサーバとして機能すると共に、ＰＣ５０がウェブクライアントとして機能することができる。
【００２１】
（比較例の説明）
本実施例のプリンタ１０及びＰＣ５０によって実行される処理の内容を説明する前に、図２を参照しながら、比較例のプリンタ１１０及びＰＣ１５０によって実現される通信の一例を説明する。図２の比較例では、プリンタ１１０には、ホスト名として「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」が割り当てられており、ＩＰアドレスとして「１０．２０．３０．４０」が割り当てられている。
【００２２】
ＰＣ１５０のユーザは、プリンタ１１０のウェブサーバにアクセスすることを望む場合に、ＰＣ１５０のウェブブラウザプログラムを起動させて、所望のウェブページ（例えばトップページ）のアドレス「ｈｔｔｐ：／／ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ／ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ」をＰＣ１５０に入力する。なお、以下では、ここで入力されたアドレスのことを「特定のアドレス」と呼ぶ。上記の特定のアドレスは、プリンタ１１０のＩＰアドレスを含まずに、プリンタ１１０のホスト名「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」を含む。なお、以下では、ＰＣ１５０は、ウェブブラウザプログラムに従って、プリンタ１１０と通信するための処理を実行し、プリンタ１１０は、ウェブサーバプログラムに従って、ＰＣ１５０と通信するための処理を実行する。
【００２３】
ＰＣ１５０は、まず、上記の特定のアドレス内のホスト名「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」を用いて、図示省略のＤＮＳ（Domain Name System）サーバから、プリンタ１１０のＩＰアドレス「１０．２０．３０．４０」を取得する。なお、変形例では、ＰＣ１５０は、ＮｅｔＢｉｏｓを利用して、プリンタ１１０のＩＰアドレスを取得してもよいし、ＰＣ１５０自身に記憶されているｈｏｓｔｓファイルを利用して、プリンタ１１０のＩＰアドレスを取得してもよい。次いで、ＰＣ１５０は、プリンタ１１０のＩＰアドレスを利用して、プリンタ１１０とのＴＣＰ（Transmission Control Protocol）の通信セッションを確立する。以降の処理では、上記の通信セッションを利用して、プリンタ１１０とＰＣ１５０との間で通信が実行される。
【００２４】
次いで、ＰＣ１５０は、上記の特定のアドレスが、ウェブページを要求するためのアドレス（以下では「要求アドレス」と呼ぶ）として指定されているリクエストＲ０１を、プリンタ１１０に送信する。この場合、プリンタ１１０は、リクエストＲ０１と共に認証用クッキーが受信されたのか否かを判断し、認証用クッキーが受信されない場合に、ログインページ「ｌｏｇｉｎ．ｈｔｍｌ」を表わすデータをＰＣ１５０に送信する。これにより、ＰＣ１５０は、ＰＣ１５０のディスプレイにログインページを表示させる。
【００２５】
図２は、ログインページの一例を示す。ログインページは、パスワードを入力するための入力欄を含む。ユーザは、ＰＣ１５０のキーボード等を利用して、パスワードを入力し、次いで、サブミットボタンを選択（クリック）する。この場合、ＰＣ１５０は、パスワードを含むサブミットリクエストＲ０２をプリンタ１１０に送信する。
【００２６】
プリンタ１１０には、ユーザによってパスワードが予め登録されている。プリンタ１１０は、サブミットリクエストＲ０２に含まれるパスワードが、予め登録されているパスワードに一致するのか否かを判断する。プリンタ１１０は、パスワードが一致する場合に、リクエストＲ０１の要求アドレスに対応するトップページを表わすデータ「ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ」と、認証用クッキー情報（認証用クッキー（即ち所定の文字列）、当該認証用クッキーが利用されるべきパス等を含む情報）と、をＰＣ１５０に送信する。これにより、ＰＣ１５０は、ＰＣ１５０のディスプレイにトップページを表示させる。
【００２７】
図２は、トップページの一例を示す。トップページは、プリンタ１１０のホスト名及びＩＰアドレスを含む。トップページは、さらに、「Ｓｔａｔｕｓ」を示すボタンと、「Ｓｅｔｔｉｎｇ」を示すボタンと、を含む。例えば、ユーザは、プリンタ１１０のステータス（例えば、消耗品の残量等）を知りたい場合に、「Ｓｔａｔｕｓ」を示すボタンを選択する。また、例えば、ユーザは、プリンタ１１０の各種の設定（例えば、デフォルトの印刷条件等）を変更することを望む場合に、「Ｓｅｔｔｉｎｇ」を示すボタンを選択する。
【００２８】
なお、ＰＣ１５０は、プリンタ１１０から受信された認証用クッキー情報に含まれる認証用クッキーと、リクエストＲ０１に含まれるプリンタ１１０のホスト名「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」と、の組合せを、ＰＣ１５０自身のメモリに保存することを試みる。しかしながら、クッキーと共に保存されるホスト名がアンダースコア「＿」を含む場合に、当該クッキーを保存することを禁止するウェブブラウザプログラムが存在する。ＰＣ１５０では、このようなウェブブラウザプログラムが利用されている。比較例では、ホスト名「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」がアンダースコアを含むために、ＰＣ１５０は、認証用クッキーを保存不可能である。
【００２９】
従って、仮に、トップページにおいてユーザによって「Ｓｔａｔｕｓ」を示すボタンが選択されても、ＰＣ１５０は、ステータスページのアドレス「ｈｔｔｐ：／／ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ／ｓｔａｔｕｓ＿ｐａｇｅ．ｈｔｍｌ」を要求アドレスとして含むリクエストＲ０３をプリンタ１１０に送信する際に、認証用クッキーをプリンタ１１０に送信することができない。この場合、プリンタ１１０は、認証用クッキーが受信されないために、ログインページ「ｌｏｇｉｎ．ｈｔｍｌ」を表わすデータをＰＣ１５０に再び送信する。従って、ＰＣ１５０のユーザは、パスワードを再び入力しなければならない。ウェブページのリクエストが送信される毎に、ＰＣ１５０のユーザがパスワードを入力する必要があるという不便な事象が発生し得る。即ち、比較例では、ＰＣ１５０は、認証用クッキーを保存することができないために、認証用クッキーを利用した適切な通信を実行することができない。
【００３０】
（ウェブサーバ処理）
続いて、図３を参照して、本実施例のプリンタ１０の制御部２０によって実行されるウェブサーバ処理（ウェブサーバプログラム２８に従って実行される処理）の内容を説明する。なお、以下では、プリンタ１０とＰＣ５０との間で通信が実行される場合を例として、図３の各処理の内容を説明する。
【００３１】
Ｓ１０では、受信部３０（図１参照）は、ＰＣ５０からリクエストを受信することを監視する。受信部３０によってリクエストが受信される場合（Ｓ１０でＹＥＳの場合）に、Ｓ１２において、判断部３４（図１参照）は、リクエストと共に認証用クッキーが受信されたのか否かを判断する。認証用クッキーが受信されなかった場合（Ｓ１２でＮＯの場合）に、Ｓ１４に進み、認証用クッキーが受信された場合（Ｓ１２でＹＥＳの場合）に、Ｓ２８に進む。
【００３２】
Ｓ１４では、判断部３４は、Ｓ１０で受信されたリクエストの要求アドレス内のホスト部が、プリンタ１０のホスト名の形式で記述されているのか、プリンタ１０のＩＰアドレスの形式で記述されているのか、を判断する。なお、ホスト部は、「ｈｔｔｐ（又はｈｔｔｐｓ）：／／」と、その次の「／」と、の間の部分である。例えば、要求アドレスが「ｈｔｔｐ：／／ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ／・・・」である場合には、ホスト部「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」がホスト名の形式で記述されているために、判断部３４は、Ｓ１４でＹＥＳと判断して、Ｓ１６に進む。また、例えば、要求アドレスが「ｈｔｔｐ：／／１０．２０．３０．４０／・・・」である場合には、ホスト部「１０．２０．３０．４０」がＩＰアドレスの形式で記述されているために、判断部３４は、Ｓ１４でＮＯと判断して、Ｓ２０に進む。
【００３３】
Ｓ１６では、判断部３４は、ホスト名がアンダースコアを含むのか否かを判断する。例えば、ホスト名が「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」である場合には、判断部３４は、Ｓ１６でＹＥＳと判断して、Ｓ１８に進む。また、例えば、ホスト名が「ｈｏｓｔｎａｍｅ．ｃｏｍ」である場合には、判断部３４は、Ｓ１６でＮＯと判断して、Ｓ２０に進む。
【００３４】
Ｓ１８では、命令供給部３２は、３０７リダイレクトをＰＣ５０に供給（即ち送信）する。３０７リダイレクトは、所定の要求アドレスが指定されているリクエストを送信するようにＰＣ５０に指示する命令（即ちコマンド）である。上記の所定の要求アドレスでは、Ｓ１０で受信されたリクエストの要求アドレスのうちのホスト部に、プリンタ１０のホスト名に代えて、プリンタ１０のＩＰアドレスが記述されている。例えば、Ｓ１０で受信されたリクエストの要求アドレスが、「ｈｔｔｐ：／／ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ／ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ」である例を想定する。この場合、Ｓ１８では、命令供給部３２は、「ｈｔｔｐ：／／１０．２０．３０．４０／ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ」が要求アドレスとして指定されているリクエストを送信するように指示する３０７リダイレクトを、ＰＣ５０に供給する。Ｓ１８を終えると、Ｓ１０に戻る。
【００３５】
なお、本実施例では、Ｓ１８では、要求アドレスを一時的に変更するための３０７リダイレクト（ＨＴＴＰ／１．１  ３０７  Ｔｅｍｐｏｒａｒｙ  Ｒｅｄｉｒｅｃｔ）が利用される。これに代えて、Ｓ１８では、要求アドレスを永続的に変更するための３０１リダイレクト（ＨＴＴＰ／１．１  ３０１  Ｍｏｖｅｄ  Ｐｅｒｍａｎｅｔｌｙ）が利用されてもよい。後述の第２実施例でも、３０７リダイレクトに代えて、３０１リダイレクトが利用されてもよい。また、３０７リダイレクトに代えて、３０２Ｆｏｕｎｄ、３０３Ｓｅｅ  Ｏｔｈｅｒが利用されてもよい。また、３００番台のコマンドではなく、リダイレクトさせるＨＴＭＬのタグが利用されてもよい。
【００３６】
Ｓ２０では、判断部３４は、Ｓ１０で受信されたリクエストが、パスワードを含むサブミットリクエストであるのか否かを判断する。Ｓ１０で受信されたリクエストがサブミットリクエストである場合（Ｓ２０でＹＥＳの場合）には、Ｓ２２に進み、Ｓ１０で受信されたリクエストがサブミットリクエストでない場合（Ｓ２０でＮＯの場合）には、Ｓ２４に進む。
【００３７】
Ｓ２２では、判断部３４は、サブミットリクエストに含まれるパスワードが、ユーザによってプリンタ１０に予め登録されているパスワードに一致するのか否かを判断する。なお、本実施例では、ユーザ毎にパスワードがプリンタ１０に登録される構成ではなく、全てのユーザに共通である１つのパスワードのみがプリンタ１０に登録される構成が採用されている。パスワードが一致しない場合（Ｓ２２でＮＯの場合）には、Ｓ２４に進み、パスワードが一致する場合（Ｓ２２でＹＥＳの場合）には、Ｓ２６に進む。
【００３８】
Ｓ２４では、ウェブページ送信部４０（図１参照）は、ログインページを表わすデータ（ｌｏｇｉｎ．ｈｔｍｌ）を、ＰＣ５０に送信する。なお、ログインページは、図２の比較例と同様の構成を有する。Ｓ２４を終えると、Ｓ１０に戻る。
【００３９】
Ｓ２６では、ウェブページ送信部４０は、サブミットリクエストの直前に受信された前回リクエストの要求アドレスに対応するウェブページを表わすデータ（例えば、ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ）を、ＰＣ５０に送信する。Ｓ２６では、さらに、情報送信部３８（図１参照）は、認証用クッキー（即ち所定の文字列）とパスとを含む認証用クッキー情報を、ＰＣ５０に送信する。これにより、ＰＣ５０は、認証用クッキーをＰＣ５０のメモリに保存する。Ｓ２６を終えると、Ｓ１０に戻る。
【００４０】
Ｓ２８（認証用クッキーが受信される場合（Ｓ１２でＹＥＳの場合））では、ウェブページ送信部４０は、Ｓ１０で受信されたリクエストの要求アドレスに対応するウェブページを表わすデータ（例えば、ｓｔａｔｕｓ＿ｐａｇｅ．ｈｔｍｌ）を、ＰＣ５０に送信する。Ｓ２８を終えると、Ｓ１０に戻る。
【００４１】
（第１実施例の通信の一例）
続いて、図４を参照して、図３のウェブサーバ処理によって実現される通信の一例を説明する。なお、図４では、名前解決及び通信セッションの確立を省略しており、通信セッションが確立された後の通信のみが示されている。同様に、後述の第２及び第３実施例（即ち、図６、図７、及び、図９）でも、通信セッションが確立された後の通信のみが示されている。
【００４２】
（ケースＡ１）
ケースＡ１では、プリンタ１０のホスト名「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」は、アンダースコアを含む。ＰＣ５０は、プリンタ１０のホスト名を含む要求アドレス「ｈｔｔｐ：／／ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ／ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ」が指定されているリクエストＲ１１を、プリンタ１０に送信する。これにより、プリンタ１０の受信部３０は、リクエストＲ１１を受信する。そして、判断部３４は、図３のＳ１２でＮＯと判断し、Ｓ１４でＹＥＳと判断し、Ｓ１６でＹＥＳと判断する。従って、図３のＳ１８において、命令供給部３２は、３０７リダイレクトをＰＣ５０に供給する。
【００４３】
この結果、ＰＣ５０は、３０７リダイレクトに従って、プリンタ１０のＩＰアドレスを含む要求アドレス「ｈｔｔｐ：／／１０．２０．３０．４０／ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ」が指定されているリクエストＲ１２を、プリンタ１０に送信する。これにより、プリンタ１０の受信部３０は、リクエストＲ１２を受信する。そして、判断部３４は、図３のＳ１２でＮＯと判断し、Ｓ１４でＮＯと判断し、Ｓ２０でＮＯと判断する。従って、図３のＳ２４において、ウェブページ送信部４０は、ログインページを表わすデータ（ｌｏｇｉｎ．ｈｔｍｌ）を、ＰＣ５０に送信する。
【００４４】
次いで、ＰＣ５０のユーザは、ログインページ（図２参照）を参照しながら、パスワードをＰＣ５０に入力して、サブミットボタンを選択する。この場合、ＰＣ５０は、ユーザによって入力されたパスワードを含むサブミットリクエストＲ１３を、プリンタ１０に送信する。なお、サブミットリクエストＲ１３の要求アドレスは、図３のＳ２２，Ｓ２４，Ｓ２６を実行するためのプログラムに対応するアドレスである。このような要求アドレスの指定が行なわれるように、プリンタ１０のウェブページ送信部４０は、ログインページを表わすデータをＰＣ５０に送信する際に、所定の指示をＰＣ５０に送信する。
【００４５】
プリンタ１０の受信部３０は、サブミットリクエストＲ１３を受信する。そして、判断部３４は、図３のＳ１４でＮＯと判断し、Ｓ２０でＹＥＳと判断し、さらに、適切なパスワードが受信された場合に、Ｓ２２でＹＥＳと判断する。従って、図３のＳ２６において、情報送信部３８は、認証用クッキー及びパスを含む認証用クッキー情報をＰＣ５０に送信し、ウェブページ送信部４０は、トップページを表わすデータ（ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ）をＰＣ５０に送信する。
【００４６】
この結果、ＰＣ５０は、プリンタ１０から受信された認証用クッキー情報に含まれる認証用クッキーと、リクエストＲ１２の要求アドレスに含まれるプリンタ１０のＩＰアドレス「１０．２０．３０．４０」と、の組合せを、ＰＣ５０のメモリに保存する。認証用クッキーと共に保存されるべき情報がアンダースコアを含まないために、ＰＣ５０は、認証用クッキーを保存可能である。
【００４７】
また、ＰＣ５０のユーザは、トップページ（図２参照）を参照しながら、「Ｓｔａｔｕｓ」を示すボタンを選択する。この場合、ＰＣ５０は、ステータスページを要求するための要求アドレス「ｈｔｔｐ：／／１０．２０．３０．４０／ｓｔａｔｕｓ＿ｐａｇｅ．ｈｔｍｌ」が指定されているリクエストＲ１４を、プリンタ１０に送信する。なお、プリンタ１０から受信された認証用クッキー情報では、認証用クッキーが利用されるべきパスが指定されている。当該パスは、「ｓｔａｔｕｓ＿ｐａｇｅ．ｈｔｍｌ」を含む。従って、ＰＣ５０は、リクエストＲ１４をプリンタ１０に送信する際に、認証用クッキーをプリンタ１０に送信する。
【００４８】
プリンタ１０の受信部３０は、リクエストＲ１４を受信する。そして、判断部３４は、図３のＳ１２でＹＥＳと判断する。従って、図３のＳ２８において、ウェブページ送信部４０は、ステータスページを表わすデータ（ｓｔａｔｕｓ＿ｐａｇｅ．ｈｔｍｌ）をＰＣ５０に送信する。
【００４９】
（ケースＡ２）
ケースＡ２では、プリンタ１０のホスト名が「ｈｏｓｔｎａｍｅ．ｃｏｍ」である例を説明する。なお、後述のケースＢ２，Ｃ２も同様である。ホスト名「ｈｏｓｔｎａｍｅ．ｃｏｍ」は、アンダースコアを含まない。この場合、プリンタ１０の判断部３４は、ＰＣ５０からリクエストＲ１１’を受信すると、図３のＳ１２でＮＯと判断し、Ｓ１４でＹＥＳと判断し、Ｓ１６でＮＯと判断し、Ｓ２０でＮＯと判断する。従って、図３のＳ２４において、ウェブページ送信部４０は、ログインページを表わすデータ（ｌｏｇｉｎ．ｈｔｍｌ）を、ＰＣ５０に送信する。即ち、ケースＡ２では、命令供給部３２は、３０７リダイレクトをＰＣ５０に供給しない。その後、パスワードを含むサブミットリクエストＲ１３’がＰＣ５０からプリンタ１０に送信されると、情報送信部３８は、認証用クッキー及びパスを含む認証用クッキー情報をＰＣ５０に送信し、ウェブページ送信部４０は、トップページを表わすデータ（ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ）をＰＣ５０に送信する。
【００５０】
この場合、ＰＣ５０は、プリンタ１０から受信された認証用クッキー情報に含まれる認証用クッキーと、リクエストＲ１１’の要求アドレスに含まれるプリンタ１０のホスト名「ｈｏｓｔｎａｍｅ．ｃｏｍ」と、の組合せを、ＰＣ５０のメモリに保存する。認証用クッキーと共に保存されるべき情報がアンダースコアを含まないために、ＰＣ５０は、認証用クッキーを保存可能である。なお、その後の処理は、ケースＡ１と同様である。
【００５１】
（第１実施例の効果）
本実施例の通信システム２を利用すれば、プリンタ１０は、プリンタ１０自身のホスト名を含む要求アドレスが指定されているリクエストＲ１１が受信される場合に、プリンタ１０自身のＩＰアドレスを含む要求アドレスが指定されているリクエストＲ１２を送信することを指示する３０７リダイレクトを、ＰＣ５０に供給する。そして、プリンタ１０は、ＰＣ５０からリクエストＲ１２が受信される場合に、認証用クッキーとプリンタ１０のＩＰアドレスとの組合せが保存されるように、認証用クッキー情報をＰＣ５０に送信する。従って、仮に、認証用クッキーとプリンタ１０のホスト名との組合せがＰＣ５０に保存不可能であっても、認証用クッキーをＰＣ５０に適切に保存させ得る。従って、図２の比較例のように、ＰＣ１５０からウェブページのリクエストが送信される毎に、ＰＣ１５０のユーザがパスワードを入力する必要があるという不便な事象が発生するのを抑制することができる。プリンタ１０及びＰＣ５０は、認証用クッキーを用いて、ウェブページに関する情報の管理（例えばステータスページの通信）を適切に実行し得る。特に、プリンタ１０は、プリンタ１０自身のホスト名がアンダースコアを含むのか否かに応じた適切な処理を実行するために（図３のケースＡ１及びケースＡ２参照）、認証用クッキーをＰＣ５０に適切に保存させ得る。
【００５２】
（対応関係）
プリンタ１０、ＰＣ５０が、それぞれ、「通信装置」、「外部装置」の一例である。図４のリクエストＲ１１、Ｒ１２が、それぞれ、「第１のリクエスト」、「第２のリクエスト」の一例である。従って、「ｈｔｔｐ：／／ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ／ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ」、「ｈｔｔｐ：／／１０．２０．３０．４０／ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ」が、それぞれ、第１のアドレス、第２のアドレスの一例である。３０７リダイレクトが、「第１の命令」の一例である。図４のケースＡ１でプリンタ１０からＰＣ５０に送信される認証用クッキー情報（認証用クッキー及びパスを含む）が、「第１の情報」の一例であり、ケースＡ２でプリンタ１０からＰＣ５０に送信される認証用クッキー情報（認証用クッキー及びパスを含む）が、「第２の情報」の一例である。また、トップページ、ステータスページ、ログインページが、それぞれ、「第１のウェブページ」、「第２のウェブページ」、「特定のウェブページ」の一例である。
【００５３】
（第２実施例）
本実施例では、第１実施例とはウェブサーバ処理の内容が異なる。図５を参照して、本実施例のウェブサーバ処理の内容を説明する。Ｓ３０は、図３のＳ１０と同様である。Ｓ３２では、確認部３６（図１参照）は、Ｓ３０で受信されたリクエストが確認リクエストであるのか否かを判断する。具体的に言うと、確認部３６は、Ｓ３０で受信されたリクエストの要求アドレスが特定のアドレス（即ちｃｏｏｋｉｅ＿ｔａｓｔｉｎｇ．ｃｇｉ）である場合に、Ｓ３２でＹＥＳと判断して、Ｓ３８に進み、Ｓ３０で受信されたリクエストの要求アドレスが上記の特定のアドレスでない場合に、Ｓ３２でＮＯと判断して、Ｓ３４に進む。
【００５４】
Ｓ３４では、確認部３６は、リクエストと共に確認用クッキーが受信されたのか否かを判断する。確認用クッキーは、後述のＳ３６でＰＣ５０に送信されるクッキーである。確認用クッキーが受信されなかった場合（Ｓ３４でＮＯの場合）に、Ｓ３６に進み、確認用クッキーが受信された場合（Ｓ３４でＹＥＳの場合）に、Ｓ４２に進む。
【００５５】
Ｓ３６では、確認部３６は、確認用クッキーを保存することを指示する確認指示（ｃｏｏｋｉｅ＿ｔａｓｔｉｎｇ．ｈｔｍｌ）と、確認用クッキー情報（即ち、確認用クッキー（即ち文字列）、パス等）と、をＰＣ５０に送信する。ＰＣ５０は、確認指示に従って、確認用クッキーをＰＣ５０のメモリに保存することを試みる。そして、ＰＣ５０は、確認指示に従って、確認リクエスト（ｃｏｏｋｉｅ＿ｔａｓｔｉｎｇ．ｃｇｉ）をプリンタ１０に送信する。ＰＣ５０は、確認用クッキーを保存可能であった場合には、確認リクエストと共に確認用クッキーをプリンタ１０に送信し、確認用クッキーを保存不可能であった場合には、確認用クッキーをプリンタ１０に送信せずに、確認リクエストのみをプリンタ１０に送信することになる。Ｓ３６を終えると、Ｓ３０に戻る。
【００５６】
Ｓ３８では、確認部３６は、確認リクエストと共に確認用クッキーが受信されたのか否かを判断する。確認用クッキーが受信されなかった場合（Ｓ３８でＮＯの場合）に、Ｓ４０に進み、確認用クッキーが受信された場合（Ｓ３８でＹＥＳの場合）に、Ｓ４２に進む。
【００５７】
Ｓ４０では、命令供給部３２は、図３のＳ１８と同様に、３０７リダイレクトをＰＣ５０に送信する。なお、Ｓ４２〜Ｓ４８は、図３のＳ２０〜Ｓ２６と同様である。また、Ｓ５０，Ｓ５２は、図３のＳ１２，Ｓ２８と同様である。
【００５８】
（ケースＢ１）
続いて、図６及び図７を参照して、図５のウェブサーバ処理によって実現される通信の一例を説明する。図６のケースＢ１では、プリンタ１０のホスト名「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」は、アンダースコアを含む。ＰＣ５０は、プリンタ１０のホスト名を含む要求アドレスが指定されているリクエストＲ２１を、プリンタ１０に送信する。この場合、プリンタ１０の確認部３６は、図５のＳ３２でＮＯと判断し、Ｓ３４でＮＯと判断する。従って、図５のＳ３６において、確認部３６は、確認指示（ｃｏｏｋｉｅ＿ｔａｓｔｉｎｇ．ｈｔｍｌ）と確認用クッキー情報を、ＰＣ５０に送信する。
【００５９】
ＰＣ５０は、確認指示に従って、プリンタ１０から受信された確認用クッキー情報に含まれる確認用クッキーと、リクエストＲ２１の要求アドレスに含まれるプリンタ１０のホスト名と、の組合せを、メモリに保存することを試みる。しかしながら、確認用クッキーと共に保存されるべき情報がアンダースコアを含むために、ＰＣ５０は、確認用クッキーをメモリに保存不可能である。この結果、ＰＣ５０は、確認指示に従って確認リクエストＲ２２（ｈｔｔｐ：／／ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ／ｃｏｏｋｉｅ＿ｔａｓｔｉｎｇ．ｃｇｉ）をプリンタ１０に送信する際に、確認用クッキーをプリンタ１０に送信しない。この場合、プリンタ１０の確認部３６は、図５のＳ３２でＹＥＳと判断し、Ｓ３８でＮＯと判断する。従って、図５のＳ４０において、命令供給部３２は、３０７リダイレクトをＰＣ５０に供給する。
【００６０】
この結果、ＰＣ５０は、３０７リダイレクトに従って、プリンタ１０のＩＰアドレスを含む要求アドレスが指定されているリクエストＲ２３を、プリンタ１０に送信する。この場合、確認部３６は、図５のＳ３２でＮＯと判断し、Ｓ３４でＮＯと判断する。従って、図５のＳ３６において、命令供給部３２は、確認指示（ｃｏｏｋｉｅ＿ｔａｓｔｉｎｇ．ｈｔｍｌ）と確認用クッキー情報とを、ＰＣ５０に送信する。
【００６１】
ＰＣ５０は、確認指示に従って、プリンタ１０から受信された確認用クッキー情報に含まれる確認用クッキーと、リクエストＲ２３の要求アドレスに含まれるプリンタ１０のＩＰアドレスと、の組合せを、メモリに保存することを試みる。確認用クッキーと共に保存されるべき情報がアンダースコアを含まないために、ＰＣ５０は、確認用クッキーをメモリに保存可能である。なお、確認用クッキー情報で指定されているパスは、「ｃｏｏｋｉｅ＿ｔａｓｔｉｎｇ．ｃｇｉ」を含む。従って、ＰＣ５０は、確認リクエストＲ２４（ｈｔｔｐ：／／１０．２０．３０．４０／ｃｏｏｋｉｅ＿ｔａｓｔｉｎｇ．ｃｇｉ）をプリンタ１０に送信する際に、確認用クッキーをプリンタ１０に送信する。この場合、プリンタ１０の確認部３６は、図５のＳ３２でＹＥＳと判断し、Ｓ３８でＹＥＳと判断し、Ｓ４２でＮＯと判断し、Ｓ５０でＮＯと判断する。従って、図５のＳ４６において、ウェブページ送信部４０は、ログインページを表わすデータ（ｌｏｇｉｎ．ｈｔｍｌ）を、ＰＣ５０に送信する。
【００６２】
ＰＣ５０は、パスワードを含むサブミットリクエストＲ２５を、プリンタ１０に送信する。なお、サブミットリクエストＲ２５の要求アドレスは、図５のＳ４４，Ｓ４６，Ｓ４８を実行するためのプログラムに対応するアドレスである。このような要求アドレスの指定が行なわれるように、プリンタ１０のウェブページ送信部４０は、ログインページを表わすデータをＰＣ５０に送信する際に、所定の指示をＰＣ５０に送信する。なお、確認用クッキー情報で指定されているパスは、サブミットリクエストＲ２５の要求アドレスを含む。従って、ＰＣ５０は、サブミットリクエストＲ２５をプリンタ１０に送信する際に、確認用クッキーをプリンタ１０に送信する。
【００６３】
この場合、プリンタ１０の確認部３６は、図５のＳ３２でＮＯと判断し、Ｓ３４でＹＥＳと判断し、Ｓ４２でＹＥＳと判断し、さらに、適切なパスワードが受信された場合に、Ｓ４４でＹＥＳと判断する。従って、図５のＳ４８において、情報送信部３８は、認証用クッキー及びパスを含む認証用クッキー情報をＰＣ５０に送信し、ウェブページ送信部４０は、リクエストＲ２３で要求されたトップページを表わすデータ（ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ）をＰＣ５０に送信する。
【００６４】
この結果、ＰＣ５０は、プリンタ１０から受信された認証用クッキー情報に含まれる認証用クッキーと、リクエストＲ２３に含まれるプリンタ１０のＩＰアドレスと、の組合せを、ＰＣ５０のメモリに保存する。認証用クッキーと共に保存されるべき情報がアンダースコアを含まないために、ＰＣ５０は、認証用クッキーを保存可能である。
【００６５】
また、ＰＣ５０のユーザは、トップページ（図２参照）を参照しながら、「Ｓｔａｔｕｓ」を示すボタンを選択する。この場合、ＰＣ５０は、ステータスページを要求するための要求アドレス「ｈｔｔｐ：／／１０．２０．３０．４０／ｓｔａｔｕｓ＿ｐａｇｅ．ｈｔｍｌ」が指定されているリクエストＲ２６を、プリンタ１０に送信する。なお、確認用クッキー情報で指定されているパスと、認証用クッキー情報で指定されているパスと、のどちらも、「ｓｔａｔｕｓ＿ｐａｇｅ．ｈｔｍｌ」を含む。従って、ＰＣ５０は、リクエストＲ２６を送信する際に、確認用クッキー及び認証用クッキーの両方をプリンタ１０に送信する。この場合、プリンタ１０の確認部３６は、図５のＳ３２でＮＯと判断し、Ｓ３４でＹＥＳと判断し、Ｓ４２でＮＯと判断し、Ｓ５０でＹＥＳと判断する。従って、図５のＳ５２において、ウェブページ送信部４０は、ステータスページを表わすデータ（ｓｔａｔｕｓ＿ｐａｇｅ．ｈｔｍｌ）を、ＰＣ５０に送信する。なお、変形例では、リクエストＲ２６と共に確認用クッキーが送信されないように、確認用クッキーと共に保存されるパスの内容が設定されていてもよい。
【００６６】
（ケースＢ２）
図７のケースＢ２では、プリンタ１０のホスト名「ｈｏｓｔｎａｍｅ．ｃｏｍ」は、アンダースコアを含まない。この場合、ＰＣ５０からプリンタ１０にリクエストＲ２１’が送信され、プリンタ１０からＰＣ５０に確認指示と確認用クッキー情報とが送信されると、ＰＣ５０は、確認用クッキーとプリンタ１０のホスト名との組合せを、ＰＣ５０のメモリに保存可能である。従って、ＰＣ５０は、確認指示に従って確認リクエストＲ２２’（ｈｔｔｐ：／／ｈｏｓｔｎａｍｅ．ｃｏｍ／ｃｏｏｋｉｅ＿ｔａｓｔｉｎｇ．ｃｇｉ）をプリンタ１０に送信する際に、確認用クッキーをプリンタ１０に送信する。その後の通信は、図６のケースＢ１と同様である。即ち、ＰＣ５０からプリンタ１０に、図６のリクエストＲ２５，Ｒ２６と同様に、リクエストＲ２５’，Ｒ２６’が順次送信される。また、プリンタ１０からＰＣ５０に、ログインページ、トップページ、ステータスページが順次送信される。ケースＢ２では、命令供給部３２は、３０７リダイレクトをＰＣ５０に供給しない。
【００６７】
（第２実施例の効果）
本実施例でも、第１実施例と同様に、認証用クッキーとプリンタ１０のホスト名との組合せがＰＣ５０に保存不可能である場合に、認証用クッキーとプリンタ１０のＩＰアドレスとの組合せを、ＰＣ５０に適切に保存させ得る。また、プリンタ１０は、ＰＣ５０から確認用クッキーが受信されるのか否かに応じた適切な処理を実行するために（図６のケースＢ１と図７のケースＢ２参照）、認証用クッキーをＰＣ５０に適切に保存させ得る。
【００６８】
しかも、本実施例では、ホスト名にアンダースコアが含まれることに起因してクッキーがＰＣ５０に保存されないケースのみならず、他の理由に起因してクッキーがＰＣ５０に保存されないケースでも、プリンタ１０は、図５のＳ３８でＮＯと判断して、Ｓ４０で３０７リダイレクトをＰＣ５０に送信する。このために、プリンタ１０は、前者のケースのみならず、後者のケースでも、認証用クッキーをＰＣ５０に適切に保存させ得る。なお、本実施例では、確認用クッキーが、「第２のクッキー」の一例である。
【００６９】
（第３実施例）
本実施例では、第１及び第２実施例とはウェブサーバ処理の内容が異なる。第２実施例では、プリンタ１０の確認部３６は、確認用クッキーをＰＣ５０に送信して、ＰＣ５０から確認用クッキーを返信させることによって（図５のＳ３６参照）、ＰＣ５０が確認用クッキーを保存可能であるのか否かを判断する。これに対し、本実施例では、プリンタ１０の確認部３６は、Ｊａｖａｓｃｒｉｐｔ命令をＰＣ５０に送信して、確認用クッキーを保存可能であるのか否かをＰＣ５０に確認させる。
【００７０】
図８を参照して、本実施例のウェブサーバ処理の内容を説明する。Ｓ６０，Ｓ６２，Ｓ６４は、図３のＳ１０，Ｓ１２，Ｓ２０と同様である。Ｓ６６では、ウェブページ送信部４０は、ログインページを表わすデータ（ｌｏｇｉｎ．ｈｔｍｌ）をＰＣ５０に送信する。この際に、確認部３６は、Ｊａｖａｓｃｒｉｐｔ命令をＰＣ５０に送信する。
【００７１】
Ｊａｖａｓｃｒｉｐｔ命令は、ＰＣ５０が以下の各処理を実行するように、ＰＣ５０に指示する命令である。（１）確認用クッキーを保存することを試みる処理。（２）確認用クッキーを読み出す処理。（３）確認用クッキーを読み出せない場合、即ち、確認用クッキーが保存されない場合に、プリンタ１０のＩＰアドレスを含む要求アドレス「ｈｔｔｐ：／／１０．２０．３０．４０／ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ」が指定されているリクエストを、プリンタ１０に送信する処理。なお、変形例では、この場合の要求アドレスは、「ｈｔｔｐ：／／１０．２０．３０．４０／ｌｏｇｉｎ．ｈｔｍｌ」であってもよい。（４）確認用クッキーを読み出せる場合に、ログインページを表示させる処理。Ｓ６６を終えると、Ｓ６０に戻る。なお、Ｓ６８，Ｓ７０，Ｓ７２は、図３のＳ２２，Ｓ２６，Ｓ２８と同様である。
【００７２】
（ケースＣ１）
続いて、図９を参照して、図８のウェブサーバ処理によって実現される通信の一例を説明する。ケースＣ１では、プリンタ１０のホスト名「ｈｏｓｔ＿ｎａｍｅ．ｃｏｍ」は、アンダースコアを含む。ＰＣ５０は、プリンタ１０のホスト名を含む要求アドレスが指定されているリクエストＲ３１を、プリンタ１０に送信する。この場合、プリンタ１０の確認部３６は、図８のＳ６２でＮＯと判断し、Ｓ６４でＮＯと判断する。従って、図８のＳ６６において、ウェブページ送信部４０は、ログインページを表わすデータ（ｌｏｇｉｎ．ｈｔｍｌ）をＰＣ５０に送信し、確認部３６は、Ｊａｖａｓｃｒｉｐｔ命令をＰＣ５０に送信する。
【００７３】
ＰＣ５０は、Ｊａｖａｓｃｒｉｐｔ命令の上記の（１）及び（２）に従って、確認用クッキーを保存して、確認用クッキーを読み出す処理を実行する。しかしながら、確認用クッキーと共に保存されるべき情報、即ち、リクエストＲ３１の要求アドレスに含まれるプリンタ１０のホスト名が、アンダースコアを含むために、ＰＣ５０は、確認用クッキーをメモリに保存不可能である。このために、ＰＣ５０は、確認用クッキーを読み出すことができず、この結果、Ｊａｖａｓｃｒｉｐｔ命令の上記の（３）に従って、要求アドレス「ｈｔｔｐ：／／１０．２０．３０．４０／ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ」が指定されているリクエストＲ３２を、プリンタ１０に送信する。ＰＣ５０からプリンタ１０にリクエストＲ３２が送信されると、プリンタ１０の確認部３６は、図８のＳ６２でＮＯと判断し、Ｓ６４でＮＯと判断し、図８のＳ６６の処理を再び実行する。
【００７４】
この結果、ＰＣ５０は、確認用クッキーを保存して、確認用クッキーを読み出す処理を再び実行する。確認用クッキーと共に保存されるべき情報、即ち、リクエストＲ３２の要求アドレスに含まれるプリンタ１０のＩＰアドレスが、アンダースコアを含まないために、ＰＣ５０は、確認用クッキーをメモリに保存可能である。このために、ＰＣ５０は、確認用クッキーを読み出すことができ、この結果、Ｊａｖａｓｃｒｉｐｔ命令の上記の（４）に従って、ログインページを表示させる。
【００７５】
ＰＣ５０は、パスワードを含むサブミットリクエストＲ３３を、プリンタ１０に送信する。なお、サブミットリクエストＲ３３の要求アドレスは、図８のＳ６６，Ｓ６８，Ｓ７０を実行するためのプログラムに対応するアドレスである。このような要求アドレスの指定が行なわれるように、プリンタ１０のウェブページ送信部４０は、ログインページを表わすデータをＰＣ５０に送信する際に、所定の指示をＰＣ５０に送信する。
【００７６】
なお、確認用クッキーを保存可能であることが確認されると、確認用クッキーが削除される。従って、ＰＣ５０は、サブミットリクエストＲ３３をプリンタ１０に送信する際に、確認用クッキーをプリンタ１０に送信しない。このために、ＰＣ５０とプリンタ１０との間で通信されるデータ量を低減させることができる。なお、変形例では、確認用クッキーを保存可能であることが確認されても、確認用クッキーが削除されなくてもよい。この場合、リクエストＲ３３と共に確認用クッキーが送信されてもよい。ＰＣ５０からプリンタ１０にサブミットリクエストＲ３３が送信されると、プリンタ１０の確認部３６は、図８のＳ６２でＮＯと判断し、Ｓ６４でＹＥＳと判断し、さらに、適切なパスワードが受信された場合に、Ｓ６８でＹＥＳと判断する。従って、図８のＳ７０において、情報送信部３８は、認証用クッキー及びパスを含む認証用クッキー情報をＰＣ５０に送信し、ウェブページ送信部４０は、リクエストＲ３２で要求されたトップページを表わすデータ（ｔｏｐ＿ｐａｇｅ．ｈｔｍｌ）をＰＣ５０に送信する。
【００７７】
この結果、ＰＣ５０は、プリンタ１０から受信された認証用クッキー情報に含まれる認証用クッキーと、リクエストＲ３２の要求アドレスに含まれるプリンタ１０のＩＰアドレスと、の組合せを、ＰＣ５０のメモリに保存する。認証用クッキーと共に保存されるべき情報がアンダースコアを含まないために、ＰＣ５０は、認証用クッキーを保存可能である。
【００７８】
ＰＣ５０のユーザは、トップページ（図２参照）を参照しながら、「Ｓｔａｔｕｓ」を示すボタンを選択する。この場合、ＰＣ５０は、ステータスページを要求するための要求アドレス「ｈｔｔｐ：／／１０．２０．３０．４０／ｓｔａｔｕｓ＿ｐａｇｅ．ｈｔｍｌ」が指定されているリクエストＲ３４を、プリンタ１０に送信する。なお、上記の各実施例と同様に、ＰＣ５０は、リクエストＲ３４と共に認証用クッキーを、プリンタ１０に送信する。この場合、プリンタ１０の確認部３６は、図８のＳ６２でＹＥＳと判断する。従って、図８のＳ７２において、ウェブページ送信部４０は、ステータスページを表わすデータ（ｓｔａｔｕｓ＿ｐａｇｅ．ｈｔｍｌ）を、ＰＣ５０に送信する。
【００７９】
（ケースＣ２）
ケースＣ２では、プリンタ１０のホスト名「ｈｏｓｔｎａｍｅ．ｃｏｍ」は、アンダースコアを含まない。この場合、ＰＣ５０からプリンタ１０にリクエストＲ３１’が送信され、プリンタ１０からＰＣ５０にＪａｖａｓｃｒｉｐｔ命令が送信されると、ＰＣ５０は、確認用クッキーとプリンタ１０のホスト名との組合せを、ＰＣ５０のメモリに保存可能である。従って、ＰＣ５０は、Ｊａｖａｓｃｒｉｐｔ命令の上記の（４）に従って、ログインページを表示させる。その後の通信は、ケースＣ１と同様である。即ち、ＰＣ５０からプリンタ１０に、リクエストＲ３３，Ｒ３４と同様に、リクエストＲ３３’，Ｒ３４’が順次送信される。また、プリンタ１０からＰＣ５０に、トップページ、ステータスページが順次送信される。
【００８０】
（第３実施例の効果）
本実施例でも、第１実施例及び第２実施例と同様の効果を得ることができる。なお、本実施例では、Ｊａｖａｓｃｒｉｐｔ命令のうちの上記の（３）の命令が、「第１の命令」の一例である。また、Ｊａｖａｓｃｒｉｐｔ命令の全体が、「第２の命令」の一例である。
【００８１】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００８２】
（変形例１）「通信装置」は、プリンタ１０でなくてもよく、ウェブサーバ機能を有する他のデバイス（例えば、サーバ、ＦＡＸ装置、コピー機、スキャナ、多機能機等）であってもよい。また、「外部装置」は、ＰＣ５０でなくてもよく、ウェブクライアント機能を有する他のデバイス（例えば、携帯電話、ＰＤＡ等）であってもよい。
【００８３】
（変形例２）「第１のウェブページ」は、トップページでなくてもよく、他の種類のページ（例えばログインページ等）であってもよい。また、「第２のウェブページ」は、ステータスページでなくてもよく、他の種類のページ（例えばトップページ等）であってもよい。
【００８４】
（変形例３）上記の各実施例では、ＰＣ５０に保存されるクッキーは、プリンタ１０からＰＣ５０にウェブページを送信するための認証に利用される。これに代えて、ＰＣ５０は、例えば、ショッピングを実行可能なウェブページにアクセスする場合に、ユーザによって選択された商品を示す情報を、クッキーとして保存してもよい。即ち、「第１のクッキー」は、認証用クッキーでなくてもよく、他の種類のクッキーであってもよい。一般的に言うと、「第１のクッキー」は、外部装置でクッキーとして保存される情報であれば、どのような種類の情報であってもよい。
【００８５】
（変形例４）上記の各実施例では、情報送信部３８は、認証用クッキーを送信する（図３のＳ２６、図５のＳ４８、図８のＳ７０参照）。しかしながら、これに代えて、情報送信部３８は、認証用クッキーを生成することをＰＣ５０に指示する命令（例えばＪａｖａｓｃｒｉｐｔで記述される命令）を、ＰＣ５０に送信してもよい。この場合、ＰＣ５０は、ＰＣ５０自身が生成した認証用クッキーを保存する。一般的に言うと、「第１の情報」は、上記の各実施例のように、「第１のクッキー」そのものを含んでいてもよいし、本変形例のように、「第１のクッキー」を生成するための情報を含んでいてもよい。同様に、「第２の情報」は、「第１のクッキー」そのものを含んでいてもよいし、本変形例のように、「第１のクッキー」を生成するための情報を含んでいてもよい。
【００８６】
（変形例５）上記の各実施例では、ホスト名にアンダースコアが含まれる場合に、ＰＣ５０にクッキーが保存されない例を説明している。ただし、ホスト名にアンダースコアとは異なる他の記号が含まれる場合に、クッキーが保存されない状況でも、上記の各実施例の技術を適用することができる。例えば、第１実施例のＳ１６では、判断部３４は、当該他の記号が含まれるのか否かを判断してもよい。なお、本明細書では、「記号」は、文字（アルファベット、数字等）を含む広義の記号を意味している。
【００８７】
（変形例６）上記の各実施例では、プリンタ１０のＣＰＵ２２がソフトウェアに従って処理を実行することによって、各部３０〜４０が実現される。これに代えて、各部３０〜４０のうちの少なくとも一部は、論理回路等のハードウェアによって実現されてもよい。
【００８８】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００８９】
２：通信システム、１０：プリンタ、５０：ＰＣ、Ｒ１１〜Ｒ１４，Ｒ１１’，Ｒ１３’：リクエスト
【図１】
0005772195.tif 000002
【図２】
0005772195.tif 000003
【図３】
0005772195.tif 000004
【図４】
0005772195.tif 000005
【図５】
0005772195.tif 000006
【図６】
0005772195.tif 000007
【図７】
0005772195.tif 000008
【図８】
0005772195.tif 000009
【図９】
0005772195.tif 000010