JP5151696B2 - ユニフォームリソースロケータ情報を書き換えるプログラム - Google Patents

ユニフォームリソースロケータ情報を書き換えるプログラム Download PDF

Info

Publication number
JP5151696B2
JP5151696B2 JP2008143723A JP2008143723A JP5151696B2 JP 5151696 B2 JP5151696 B2 JP 5151696B2 JP 2008143723 A JP2008143723 A JP 2008143723A JP 2008143723 A JP2008143723 A JP 2008143723A JP 5151696 B2 JP5151696 B2 JP 5151696B2
Authority
JP
Japan
Prior art keywords
server
information
request
rewriting
uniform resource
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.)
Expired - Fee Related
Application number
JP2008143723A
Other languages
English (en)
Other versions
JP2009289206A (ja
Inventor
貴英 松塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008143723A priority Critical patent/JP5151696B2/ja
Priority to US12/361,998 priority patent/US20090300103A1/en
Publication of JP2009289206A publication Critical patent/JP2009289206A/ja
Application granted granted Critical
Publication of JP5151696B2 publication Critical patent/JP5151696B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Description

本発明は、Webページに含まれるユニフォームリソースロケータ(URL)情報を書き換えるプログラムに関する。
クライアント端末からWebサーバ上のWebページにアクセスする際、クライアント端末とWebサーバの通信を中継するサーバとして、翻訳サーバやポータルサーバ等がある。翻訳サーバは、例えば、英語のWebページを配信するWebサーバにアクセスし、受け取ったWebページの英文を日本語に翻訳してクライアント端末に送る。また、ポータルサーバは、例えば、Webサーバが配信する地図等のWebページを自身のWebページに貼り付けてクライアント端末に送る。
このような中継システムでは、ユーザがクライアント端末の画面に表示されたWebページ内のリンク等をクリックしたとき、再び中継サーバを経由してWebサーバにアクセスできる必要がある。例えば、翻訳サーバで翻訳済みのページ内にあるリンク等がクリックされたとき、そのリンク先のページも翻訳済みで表示するためには、中継サーバを介してWebサーバにアクセスする必要がある。
そこで、中継サーバは、元のWebサーバから受け取ったHyperText Markup Language (HTML)文書をクライアント端末に送る際に、HTML文書内のURLを書き換える。
図26は、このような従来のURL書換方法を示している。中継サーバ12の読込部32は、元サーバ13からWebページ22を読み込み、解析部34は、そのWebページ22を解析し、書換部33は、Webページ22内のURLを書き換える。ここでは、HTML文書内のaタグやformタグ等、サーバへの送信動作が記述された箇所が書き換えられる。送信部31は、書換済みWebページ21をクライアント端末11に送信する。
クライアント端末がアクセス先のURLを変更するシステムも知られており(例えば、特許文献1を参照)、中継サーバがリクエスト履歴内のリクエストを選択してパスを再生するシステムも知られている(例えば、特許文献2を参照)。
特開2002−032273号公報 特表2003−530625号公報
しかしながら、上述した従来の中継システムには、次のような問題がある。
(1)中継サーバでURLを書き換えなければいけないので、中継サーバのリソースを消費する。
(2)クライアント端末がJavaScript等により動的にURLを生成している場合には、URLを書き換えることができない。
(3)非同期通信の場合には、JavaScriptのプログラム等により動的にURLを生成するため、URLを書き換えることができない。
本発明の課題は、クライアント端末が動的にURLを生成する場合や非同期通信を行う場合でも、元サーバのURLを中継サーバ経由のURLに書き換えられるようにすること
である。
開示のシステムにおいて、クライアント端末は、元サーバのページ情報と書換プログラムを中継サーバから受信する。そして、受信した書換プログラムを実行することで、ユニフォームリソースロケータ情報中の元サーバのサーバ名が中継サーバのサーバ名に変更されるように、そのページ情報を書き換える。
次に、受信したページ情報の記述に基づき元サーバへのリクエストを生成し、そのリクエストに含まれるユニフォームリソースロケータ情報中の元サーバのサーバ名を中継サーバのサーバ名に変更する。そして、変更後のユニフォームリソースロケータ情報に基づいてリクエストを中継サーバに送信する。
このようなシステムによれば、中継サーバがURLを書き換えるのではなく、クライアント端末が元サーバへのリクエストを送信するときにURLが書き換えられる。したがって、リクエストが動的に生成された場合や非同期通信が行われる場合でも、元サーバのURLを中継サーバ経由のURLに書き換えることができる。
開示のシステムによれば、クライアント端末が動的にURLを生成する場合や非同期通信を行う場合でも、元サーバのURLを中継サーバ経由のURLに書き換えることができる。
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
実施形態のURL書換システムでは、中継サーバではなくクライアント端末で、Webサーバへのリクエストに含まれるURLのサーバ名を、中継サーバのサーバ名に書き換える。そのために、中継サーバは、Webサーバから送信されるWebページのHTML文書に、URLを書き換える機能を備える書換プログラム(書換スクリプト)を付加して、クライアント端末に送信する。
図1は、このようなURL書換システムの構成例を示している。中継サーバ102の読込部122は、元サーバ103からWebページ111を読み込む。Webページ111には、JavaScriptが含まれる場合がある。送信部121は、書換スクリプト112の読み込みを指示するタグをWebページ111に埋め込んで、書換スクリプト112とともにWebページ111をクライアント端末101に送信する。
クライアント端末101のブラウザは、Webページ111を画面に表示する。このとき、ブラウザは、書換スクリプト112を読み込む。書換スクリプト112は、ブラウザ上で動作し、Webページ111のHTML文書内で、ブラウザからサーバにリクエストを送信する処理が記述された箇所を書き換える。これにより、次のリクエストの送信先URLのサーバ名が中継サーバ102のサーバ名に変更される。
中継サーバ102は、Webページ111に書換スクリプト112の読みこみ指示を付加して送信するだけでよいので、Webページ111全体を書き換える場合に比べて、極めて短時間で処理が完了する。
基本的には、HTML文書のロード時にその書換が行われるため、書換用JavaScriptが以下のような関数内に実装される。

window.onload = function(){...}
図2は、書き換えられたWebページ111における、ブラウザの基本動作を示している。ユーザ操作やWebページ111の動作によりボタンやリンクがクリックされると(手順201)、ブラウザは、発生イベントに応じた送信動作を行う(手順202)。このとき、ブラウザは、HTML文書の記述に従ってURL書換処理を行ってから(手順203)、本来の送信処理を行う(手順204)。その後、ブラウザは、中継サーバ102にリクエストを送信する(手順205)。
例えば、中継サーバ102のURLと、リクエスト先である元サーバ103のWebページのURLが、以下のようなものであったとする。

中継サーバ http://www.mycompany.com/
Webページ http://www.othercompany.com/ap/page.html
この場合、WebページのURLは、例えば、次のように書き換えられる。

(例1) http://www.mycompany.com/?http://www.othercompany.com/ap/page.html
(例2) http://www.othercompnay.com.www.mycompany.com/ap/page.html

例1では、中継サーバ102のURLに続いて“?”が挿入され、WebページのURLが接続されている。また、例2では、中継サーバ102のサーバ名“www.mycompany.com”の手前に元サーバ103のサーバ名“www.othercompnay.com”が挿入され、“www.mycompany.com/”の後ろにWebページのパス名が接続されている。
HTML文書の書換パターンは、書換対象に応じて以下のように分類される。
(1)フォーム
formの場合、リクエスト送信のタイミングは、以下の2種類に分類される。
(a)form内のJavaScript Application Program Interface (API)であるform.submit()関数によるリクエストの場合は、formのsubmit関数が呼び出される。そこで、submit関数の中でリクエスト先URLが変更されるように、submit関数を書き換える。
(b)form内の<input type=“submit”>で指定されるボタンによるリクエストの場合は、formのsubmit関数は呼び出されない。そこで、このボタンにクリックリスナ(クリックイベントハンドラ)を追加し、その中でformのsubmit関数を呼び出すように、ボタンのsubmit時の動作を書き換える。そして、上記(a)と同様に、submit関数を書き換える。
(2)アンカー(aタグ)
<a href=“...”>で記述されるaタグによるsubmit動作については、そのhref要素を書き換えてリクエスト先URLが変更されるように、aタグのクリック時の動作を書き換える。
(3)イメージ、スタイルシート、及びスクリプト
イメージ、スタイルシート、又はスクリプトの場合、対応するimgタグのsrc属性、linkタグのhref属性、又はscriptタグのsrc属性を直接書き換えることで、リクエスト先URLを変更する。例えば、以下のようなタグが記述されている場合を考える。

<img src=“images/myimg.jpg”>
<link type=“stylesheet” href=“css/mypage.css”>
<script src=“scripts/mylib.js”>
これらのタグは、次のように書き換えられる。

<img src=“http://www.mycompany.com/?images/myimg.jpg”>
<link type=“stylesheet” href=“http://www.mycompany.com/?css/mypage.css”>
<script src=“http://www.mycompany.com/?scripts/mylib.js”>
(4)非同期通信
非同期通信でXMLHttpRequestオブジェクトを利用する場合、送信時にリクエスト先URLが変更されるように、オブジェクト自身の定義を書き換える。XMLHttpRequestオブジェクトのURLは、以下のようにopen関数により指定される。

var con = new XMLHttpRequest();
con.open(“GET”, “search”, true);

そこで、open関数の呼び出し時にリクエスト先URLが変更されるように、open関数の第2引数を、中継サーバ102を経由するURLに書き換える。
図3は、XMLHttpRequestオブジェクトによるリクエスト送信動作を示している。ユーザ操作やWebページ111の動作によりXMLHttpRequestが生成されると(手順301)、ブラウザは、XMLHttpRequestオブジェクトを生成する(手順302)。このとき、ブラウザは、書換後のopen関数に従ってURL書換処理を行ってから(手順303)、送信処理を行う(手順304)。その後、ブラウザは、中継サーバ102にリクエストを送信する(手順305)。
(5)Document Object Model (DOM) APIによる書換
Webページ111内にJavaScriptが含まれており、Webページ111内で要素が動的に生成される場合、生成関数を書き換える。これにより、生成された要素によるリクエスト送信時に、リクエスト先URLが変更されるようにする。DOM APIは、次のようにして要素を生成する。

var anchor = document.createElement(“a”);
anchor.href = “mypage.html”;
このcreateElement関数を書き換えることで、form、アンカー、イメージ、スタイルシート、又はスクリプトが生成されたとき、その要素によりリクエストが送信されるときの動作を変更することができる。
図4は、DOM API動作に基づくリクエスト送信動作を示している。ユーザ操作やWebページ111の動作によりDOM APIが動作すると(手順401)、ブラウザは、createElement関数によりオブジェクト(要素)を生成する(手順402)。このとき、ブラウザは、書換後のcreateElement関数に従ってオブジェクト書換処理を行う(手順403)。
その後、ユーザ操作やWebページ111の動作によりリクエストが発行されると(手順404)、ブラウザは、書換後のオブジェクトに従ってURLを書き換え、送信処理を行う(手順405)。その後、ブラウザは、中継サーバ102にリクエストを送信する(手順406)。
(6)document.write構文又はinnerHTML構文
Webページ111内にJavaScriptが含まれており、document.write又はinnerHTMLによりWebページ111が変更される場合、指定される文字列に何が含まれるか分からない。このため、createElement関数のように、生成される要素を想定した処理を行うことができない。この場合の対処方法としては、次の2種類がある。
(a)document.write又はinnerHTMLによりWebページ111が変更される場合、DOM変更イベントが発生する。そこで、この変更イベントを捉えることにより、変更部分を取得してURLを書き換えることができる。例えば、初期化時に、以下のようなDOMイベントリスナを追加しておく。

document.addEventListener(“MutationEvent”, rewrite, true);

これにより、Webページ111の変更時にrewrite関数が呼び出され、rewrite関数によりオブジェクト書換処理を行うことができる。
図5は、DOM変更イベント受信に基づくリクエスト送信動作を示している。ユーザ操作やWebページ111の動作によりdocument.write又はinnerHTMLが動作すると(手順501)、ブラウザは、DOMイベントリスナによりDOM変更イベントを受信する(手順502)。このとき、ブラウザは、rewrite関数等に従ってオブジェクト書換処理を行う(手順503)。
その後、ユーザ操作やWebページ111の動作によりリクエストが発行されると(手順504)、ブラウザは、書換後のオブジェクトに従ってURLを書き換え、送信処理を行う(手順505)。その後、ブラウザは、中継サーバ102にリクエストを送信する(手順506)。
(b)一部のブラウザに見られるように、DOMイベントがサポートされていない場合は、setIntervalのような定時監視関数を用いて変更イベントを監視する。例えば、初期化時に、以下のようなsetInterval関数を追加しておく。

setInterval(check, 100);
これにより、100ミリ秒毎にcheck関数が呼び出され、Webページ111が変更されたか否かをチェックする。Webページ111が変更されていれば、変更部分が解析され、必要であればオブジェクト書換処理が行われる。
図6は、監視動作に基づくリクエスト送信動作を示している。ユーザ操作やWebページ111の動作によりdocument.write又はinnerHTMLが動作すると(手順601)、ブラウザは、check関数により変更イベントを検知する(手順602)。このとき、ブラウザは、必要であればオブジェクト書換処理を行う(手順603)。
その後、ユーザ操作やWebページ111の動作によりリクエストが発行されると(手順604)、ブラウザは、書換後のオブジェクトに従ってURLを書き換え、送信処理を行う(手順605)。その後、ブラウザは、中継サーバ102にリクエストを送信する(手順606)。
以上説明した(1)〜(6)の書換パターンを書換スクリプト112に記述することで、どのような状況においても、クライアント端末101からのリクエストが中継サーバ102を経由するように、URLを変更することが可能になる。なお、(1)〜(6)の書換パターンの一部のみを含む書換スクリプト112を用いることも可能である。
図7は、Webページ111の例を示しており、図8は、書換スクリプト112の例を示している。図8の書換スクリプトでは、中継サーバ102のURLとして“http://localhost:8080/”が用いられている。この書換スクリプトのスクリプト部分801は、非同期通信リクエスト701を書き換える。また、スクリプト部分802は、form内のsubmit関数のリクエスト703を書き換え、スクリプト部分803は、form内のボタンによるリクエスト702を書き換える。
図1のようなURL書換システムによれば、次のような効果が得られる。
(1)中継サーバでのURL書換処理が不要なため、中継サーバの負荷が劇的に低減される。
(2)クライアント端末が動的にURLを生成している場合でも、URLを書き換えることができる。
(3)非同期通信の場合でも、URLを書き換えることができる。
次に、図9から図23までを参照しながら、複数の書換パターンを含む書換スクリプト112を用いた場合のブラウザの処理について説明する。
図9は、ブラウザによる初期化処理のフローチャートである。ブラウザは、まず、中継サーバ102から受信したWebページ111のHTML文書と書換スクリプト112を読み込む(ステップ901)。
次に、書換スクリプト112に従って、フォーム書換処理(ステップ902)、submitボタン書換処理(ステップ903)、aタグ書換処理(ステップ904)、XMLHttpRequest書換処理(ステップ905)、及びDOM API書換処理(ステップ906)を行う。
次に、DOMイベントがサポートされているか否かをチェックし(ステップ907)、DOMイベントがサポートされていれば、DOMイベント登録処理を行う(ステップ908)。一方、DOMイベントがサポートされていなければ、setInterval登録処理を行う(ステップ909)。
図10は、図9のステップ902におけるフォーム書換処理のフローチャートである。ブラウザは、HTML文書内のフォームをすべて取得する(ステップ1001)。そして、各フォームのsubmit関数をsubmit0として保存し(ステップ1002)、各フォームのsubmit関数を書換後submit関数に置き換える(ステップ1003)。書換後submit関数は、リクエスト先のURLを中継サーバ102を経由するURLに変更する機能を持つ。
図11は、図9のステップ903におけるsubmitボタン書換処理のフローチャートである。ブラウザは、HTML文書内のボタンをすべて取得し(ステップ1101)、
各ボタンのtypeが“submit”か否かをチェックする(ステップ1102)。そして、ボタンのtypeが“submit”であれば、そのボタンのクリックリスナとして書換後submit関数を登録する(ステップ1103)。
図12は、図9のステップ904におけるaタグ書換処理のフローチャートである。ブラウザは、HTML文書内のaタグをすべて取得し(ステップ1201)、各aタグのクリックリスナを登録する(ステップ1202)。aタグのクリックリスナは、リクエスト先のURLを中継サーバ102を経由するURLに変更する機能を持つ。
図13は、図9のステップ905におけるXMLHttpRequest書換処理のフローチャートである。ブラウザは、HTML文書内のXMLHttpRequest.prototype.open関数をXMLHttpRequest.prototype.open0として保存する(ステップ1301)。そして、XMLHttpRequest.prototype.open関数を書換後open関数に置き換える(ステップ1302)。書換後open関数は、リクエスト先のURLを中継サーバ102を経由するURLに変更する機能を持つ。
図14は、図9のステップ906におけるDOM API書換処理のフローチャートである。ブラウザは、HTML文書内のdocument.createElement関数をdocument.createElement0として保存する(ステップ1401)。そして、document.createElement関数を書換後createElement関数に置き換える(ステップ1402)。書換後createElement関数は、リクエスト先のURLを変更するために、生成された要素を書き換える機能を持つ。
図15は、図9のステップ908におけるDOMイベント登録処理のフローチャートである。ブラウザは、HTML文書内のDOMオブジェクトをすべて取得し(ステップ1501)、各DOMオブジェクトのDOMイベントリスナとしてDOM書換処理を登録する(ステップ1502)。DOMイベントリスナは、リクエスト先のURLを変更するために、生成された要素を書き換える機能を持つ。
図16は、図9のステップ909におけるsetInterval登録処理のフローチャートである。ブラウザは、setIntervalを監視処理として登録する(ステップ1601)。登録されたsetIntervalは、変更イベントを監視する。
図17〜図23は、初期化処理の終了後にユーザ操作やWebページ111の動作によりイベントが発生した場合の、リクエスト送信処理及びオブジェクト書換処理を示している。
図17は、フォームのsubmitが実行されたとき、又はsubmitボタンがクリックされたときに行われる送信処理のフローチャートである。ブラウザは、まず、submit関数として登録されている書換後submit関数を呼び出し、リクエスト先のURLを中継サーバ102を経由するURLに変更する(ステップ1701)。そして、保存されているsubmit0(本来のsubmit関数)を実行する(ステップ1702)。これにより、中継サーバ102に対してリクエストが送信される。
図18は、aタグがクリックされたときに行われる送信処理のフローチャートである。ブラウザは、まず、aタグのクリックリスナを用いてリクエスト先のURLを中継サーバ102を経由するURLに変更する(ステップ1801)。そして、aタグのリクエストを実行する(ステップ1802)。これにより、中継サーバ102に対してリクエストが
送信される。
図19は、XMLHttpRequestオブジェクトのopenが実行されたときに行われる送信処理のフローチャートである。ブラウザは、まず、XMLHttpRequest.prototype.open関数として登録されている書換後open関数を呼び出し、リクエスト先のURLを中継サーバ102を経由するURLに変更する(ステップ1901)。そして、保存されているopen0(本来のopen関数)を実行する(ステップ1902)。これにより、中継サーバ102に対してリクエストが送信される。
図20は、documentオブジェクトのcreateElementが実行されたときに行われるオブジェクト書換処理のフローチャートである。ブラウザは、まず、createElement0(本来のcreateElement関数)を実行して、新たな要素を生成する(ステップ2001)。そして、図21に示すような要素別処理を行う(ステップ2002)。
要素別処理では、ブラウザは、まず、生成された要素がaタグか否かをチェックし、その要素がaタグであれば、aタグのクリックリスナを登録する(ステップ2104)。
生成された要素がaタグでなければ、次に、その要素がフォームか否かをチェックする(ステップ2102)。生成された要素がフォームであれば、フォームのsubmit関数をsubmit0として保存し(ステップ2105)、フォームのsubmit関数を書換後submit関数に置き換える(ステップ2106)。
生成された要素がフォームでなければ、次に、その要素がボタンか否かをチェックする(ステップ2103)。生成された要素がボタンであれば、そのボタンのtypeが“submit”か否かをチェックする(ステップ2107)。そして、ボタンのtypeが“submit”であれば、そのボタンのクリックリスナとして書換後submit関数を登録する(ステップ2108)。
このような要素別処理によれば、生成された要素の種類に応じて、クリックリスナの追加やsubmit関数の書換等の変更が行われ、その要素に基づくイベントが発生したときに、中継サーバ102に対してリクエストが送信されるようになる。
図22は、document.write又はinnerHTMLによりWebページ111が変更され、DOM変更イベントが発生したときに行われるオブジェクト書換処理のフローチャートである。ブラウザは、まず、DOMイベントリスナとして登録されているDOM書換処理を実行して、生成された新たな要素を取得する(ステップ2201)。そして、図21の要素別処理を行う(ステップ2202)。
図23は、図16のステップ1601で登録された監視処理のフローチャートである。ブラウザは、まず、check関数を用いて、変更イベントによりDOM要素が生成された否かをチェックする(ステップ2301)。DOM要素が生成されると、生成されたDOM要素を取得し(ステップ2302)、各DOM要素について図21の要素別処理を行う(ステップ2303)。
図1のクライアント端末101、中継サーバ102、及び元サーバ103は、例えば、図24に示すような情報処理装置(コンピュータ)を用いて構成される。図24の情報処理装置は、CPU2401、メモリ2402、入力装置2403、出力装置2404、外部記憶装置2405、媒体駆動装置2406、およびネットワーク接続装置2407を備え、それらはバス2408により互いに接続されている。
メモリ2402は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)等を含み、処理に用いられるプログラムおよびデータを格納する。メモリ2402に格納されるプログラムには、ブラウザ及び書換スクリプト112が含まれ、メモリ2402に格納されるデータには、Webページ111のHTML文書が含まれる。CPU2401は、メモリ2402を利用してプログラムを実行することにより、クライアント端末101、中継サーバ102、及び元サーバ103の処理を行う。
入力装置2403は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示や情報の入力に用いられる。出力装置2404は、例えば、ディスプレイ、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせや処理結果の出力に用いられる。
外部記憶装置2405は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置2405に、プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2402にロードして使用する。
媒体駆動装置2406は、可搬記録媒体2409を駆動し、その記録内容にアクセスする。可搬記録媒体2409は、メモリカード、フレキシブルディスク、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。オペレータ又はユーザは、この可搬記録媒体2409にプログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2402にロードして使用する。
ネットワーク接続装置2407は、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う。また、情報処理装置は、必要に応じて、プログラムおよびデータを外部の装置からネットワーク接続装置2407を介して受け取り、それらをメモリ2402にロードして使用する。
図25は、図24の情報処理装置にプログラムおよびデータを提供する方法を示している。可搬記録媒体2409や外部装置2501のデータベース2511に格納されたプログラムおよびデータは、情報処理装置2502のメモリ2402にロードされる。外部装置2501は、そのプログラムおよびデータを搬送する搬送信号を生成し、通信ネットワーク上の任意の伝送媒体を介して情報処理装置2502に送信する。CPU2401は、そのデータを用いてそのプログラムを実行し、上述した処理を行う。
以上、図1から図25までを参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)元サーバのページ情報をクライアントコンピュータに転送する中継サーバから該クライアントコンピュータに、該ページ情報とともに送信されるプログラムであって、
前記クライアントコンピュータが前記ページ情報の記述に基づき前記元サーバへのリクエストを送信するとき、該リクエストに含まれるユニフォームリソースロケータ情報中の該元サーバのサーバ名を前記中継サーバのサーバ名に変更するように、該ページ情報を書き換える処理を前記クライアントコンピュータに実行させることを特徴とするプログラム。
(付記2)前記クライアントコンピュータが前記ページ情報の記述に基づき前記元サーバへのリクエストを生成するための新たな要素情報を生成したとき、該要素情報に基づいて生成されるリクエストに含まれるユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更するための書換情報を、該ページ情報に追加する処理を前記クライアントコンピュータにさらに実行させることを特徴とする付記1記
載のプログラム。
(付記3)前記クライアントコンピュータは、前記新たな要素情報がaタグである場合、該aタグがクリックされたときに生成されるリクエストに含まれるユニフォームリソースロケータ情報を変更するための書換情報を前記ページ情報に追加し、前記新たな要素情報がフォームである場合、該フォームのsubmit関数が実行されたときに生成されるリクエストに含まれるユニフォームリソースロケータ情報を変更するための書換情報を前記ページ情報に追加し、前記新たな要素情報がsubmitボタンである場合、該submitボタンがクリックされたときに生成されるリクエストに含まれるユニフォームリソースロケータ情報を変更するための書換情報を前記ページ情報に追加することを特徴とする付記2記載のプログラム。
(付記4)前記クライアントコンピュータは、前記ページ情報に含まれるフォームのsubmit関数が実行されたとき、又は該フォームのsubmitボタンがクリックされたときに生成されるリクエストに含まれるユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更することを特徴とする付記1又は2記載のプログラム。
(付記5)前記クライアントコンピュータは、前記ページ情報に含まれるaタグがクリックされたときに生成されるリクエストに含まれるユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更することを特徴とする付記1又は2記載のプログラム。
(付記6)前記クライアントコンピュータは、前記ページ情報に含まれるimgタグのsrc属性、linkタグのhref属性、又はscriptタグのsrc属性に記述されたユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更することを特徴とする付記1又は2記載のプログラム。
(付記7)前記クライアントコンピュータは、前記ページ情報に含まれるXMLHttpRequestオブジェクトのopen関数が実行されたときに生成されるリクエストに含まれるユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更することを特徴とする付記1又は2記載のプログラム。
(付記8)元サーバのページ情報と書換プログラムを中継サーバから受信し、
前記書換プログラムを実行することで、ユニフォームリソースロケータ情報中の前記元サーバのサーバ名が前記中継サーバのサーバ名に変更されるように、該ページ情報を書き換え、
前記ページ情報の記述に基づき前記元サーバへのリクエストを生成し、
前記リクエストに含まれるユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更し、
変更後のユニフォームリソースロケータ情報に基づいて前記リクエストを前記中継サーバに送信する
ことを特徴とするリクエスト送信方法。
(付記9)元サーバのページ情報と書換プログラムを中継サーバから受信する受信手段と、
前記書換プログラムを実行することで、ユニフォームリソースロケータ情報中の前記元サーバのサーバ名が前記中継サーバのサーバ名に変更されるように、該ページ情報を書き換える書換手段と、
前記ページ情報の記述に基づき前記元サーバへのリクエストを送信するとき、該リクエストに含まれるユニフォームリソースロケータ情報中の該元サーバのサーバ名を前記中継サーバのサーバ名に変更する変更手段と、
変更後のユニフォームリソースロケータ情報に基づいて前記リクエストを前記中継サーバに送信する送信手段と
を備えることを特徴とする情報処理装置。
URL書換システムの構成図である。 ブラウザの基本動作を示す図である。 第1のリクエスト送信動作を示す図である。 第2のリクエスト送信動作を示す図である。 第3のリクエスト送信動作を示す図である。 第4のリクエスト送信動作を示す図である。 Webページを示す図である。 書換スクリプトを示す図である。 初期化処理のフローチャートである。 フォーム書換処理のフローチャートである。 submitボタン書換処理のフローチャートである。 aタグ書換処理のフローチャートである。 XMLHttpRequest書換処理のフローチャートである。 DOM API書換処理のフローチャートである。 DOMイベント登録処理のフローチャートである。 setInterval登録処理のフローチャートである。 第1の送信処理のフローチャートである。 第2の送信処理のフローチャートである。 第3の送信処理のフローチャートである。 第1のオブジェクト書換処理のフローチャートである。 要素別処理のフローチャートである。 第2のオブジェクト書換処理のフローチャートである。 監視処理のフローチャートである。 情報処理装置の構成図である。 プログラムおよびデータの提供方法を示す図である。 従来のURL書換方法を示す図である。
符号の説明
11、101 クライアント端末
12、102 中継サーバ
13、103 元サーバ
21 書換済みWebページ
22、111 Webページ
31、121 送信部
32、122 読込部
33 書換部
34 解析部
112 書換スクリプト
701、702、703 リクエスト
801、802、803 スクリプト部分
2402 メモリ
2403 入力装置
2404 出力装置
2405 外部記憶装置
2406 媒体駆動装置
2407 ネットワーク接続装置
2408 バス
2501 外部装置
2502 情報処理装置
2511 データベース

Claims (5)

  1. 元サーバのページ情報をクライアントコンピュータに転送する中継サーバから該クライアントコンピュータに、該ページ情報とともに送信されるプログラムであって、
    前記クライアントコンピュータが前記ページ情報の記述に基づき前記元サーバへの第1のリクエストを送信するとき、該第1のリクエストに含まれるユニフォームリソースロケータ情報中の該元サーバのサーバ名を前記中継サーバのサーバ名に変更するように、該ページ情報を書き換え
    前記クライアントコンピュータが前記ページ情報の記述に基づき前記元サーバへの第2のリクエストを生成するための新たな要素情報を生成関数を用いて生成したとき、該要素情報に基づいて生成される第2のリクエストに含まれるユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更するように、該生成関数を書き換えるための書換情報を、該ページ情報に追加する
    処理を前記クライアントコンピュータに実行させることを特徴とするプログラム。
  2. 前記クライアントコンピュータは、前記新たな要素情報がaタグである場合、該aタグがクリックされたときに生成される前記第2のリクエストに含まれるユニフォームリソースロケータ情報を変更するように前記生成関数を書き換えるための書換情報を前記ページ情報に追加し、前記新たな要素情報がフォームである場合、該フォームのsubmit関数が実行されたときに生成される前記第2のリクエストに含まれるユニフォームリソースロケータ情報を変更するように前記生成関数を書き換えるための書換情報を前記ページ情報に追加し、前記新たな要素情報がsubmitボタンである場合、該submitボタンがクリックされたときに生成される前記第2のリクエストに含まれるユニフォームリソースロケータ情報を変更するように前記生成関数を書き換えるための書換情報を前記ページ情報に追加することを特徴とする請求項1記載のプログラム。
  3. 前記クライアントコンピュータは、前記ページ情報に含まれるXMLHttpRequestオブジェクトのopen関数が実行されたときに生成されるリクエストに含まれるユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更することを特徴とする請求項1又は2記載のプログラム。
  4. 元サーバのページ情報と書換プログラムを中継サーバから受信し、
    前記書換プログラムを実行することで、ユニフォームリソースロケータ情報中の前記元サーバのサーバ名が前記中継サーバのサーバ名に変更されるように、該ページ情報を書き換え、
    前記ユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更するように生成関数を書き換えるための書換情報を、前記ページ情報に追加し、
    前記ページ情報の記述に基づき前記元サーバへの第1のリクエストを生成し、
    前記第1のリクエストに含まれるユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更し、
    変更後のユニフォームリソースロケータ情報に基づいて前記第1のリクエストを前記中継サーバに送信し、
    前記ページ情報の記述に基づき前記元サーバへの第2のリクエストを生成するための新たな要素情報を前記生成関数を用いて生成し、
    前記第2のリクエストに含まれるユニフォームリソースロケータ情報中の前記元サーバのサーバ名を前記中継サーバのサーバ名に変更し、
    変更後のユニフォームリソースロケータ情報に基づいて前記第2のリクエストを前記中継サーバに送信する
    ことを特徴とするリクエスト送信方法。
  5. 元サーバのページ情報と書換プログラムを中継サーバから受信する受信手段と、
    前記書換プログラムを実行することで、ユニフォームリソースロケータ情報中の前記元サーバのサーバ名が前記中継サーバのサーバ名に変更されるように、該ページ情報を書き換えるとともに、該ユニフォームリソースロケータ情報中の該元サーバのサーバ名が該中継サーバのサーバ名に変更されるように生成関数を書き換えるための書換情報を、該ページ情報に追加する書換手段と、
    前記ページ情報の記述に基づき前記元サーバへの第1のリクエストを送信するとき、該第1のリクエストに含まれるユニフォームリソースロケータ情報中の該元サーバのサーバ名を前記中継サーバのサーバ名に変更し、前記ページ情報の記述に基づき該元サーバへの第2のリクエストを生成するための新たな要素情報が前記生成関数を用いて生成されたとき、該第2のリクエストに含まれるユニフォームリソースロケータ情報中の該元サーバのサーバ名を該中継サーバのサーバ名に変更する変更手段と、
    変更後のユニフォームリソースロケータ情報に基づいて前記第1及び第2のリクエストを前記中継サーバに送信する送信手段と
    を備えることを特徴とする情報処理装置。
JP2008143723A 2008-05-30 2008-05-30 ユニフォームリソースロケータ情報を書き換えるプログラム Expired - Fee Related JP5151696B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008143723A JP5151696B2 (ja) 2008-05-30 2008-05-30 ユニフォームリソースロケータ情報を書き換えるプログラム
US12/361,998 US20090300103A1 (en) 2008-05-30 2009-01-29 Storage medium recording a program for rewriting uniform resource locator information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008143723A JP5151696B2 (ja) 2008-05-30 2008-05-30 ユニフォームリソースロケータ情報を書き換えるプログラム

Publications (2)

Publication Number Publication Date
JP2009289206A JP2009289206A (ja) 2009-12-10
JP5151696B2 true JP5151696B2 (ja) 2013-02-27

Family

ID=41381125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008143723A Expired - Fee Related JP5151696B2 (ja) 2008-05-30 2008-05-30 ユニフォームリソースロケータ情報を書き換えるプログラム

Country Status (2)

Country Link
US (1) US20090300103A1 (ja)
JP (1) JP5151696B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0924401B1 (pt) * 2009-03-18 2020-05-19 Google Inc métodos, sistemas e meios não-transitórios de armazenamento para tradução de web com substituição de exibição
JP2012234236A (ja) * 2011-04-28 2012-11-29 Hitachi Ltd 負荷分散システム
WO2014078961A1 (en) * 2012-11-21 2014-05-30 Roofoveryourhead Marketing Ltd A browser extension for the collection and distribution of data and methods of use thereof
JP6164925B2 (ja) * 2013-05-15 2017-07-19 キヤノン株式会社 情報処理端末、その方法及びプログラム
WO2015070260A1 (en) * 2013-11-11 2015-05-14 Adallom, Inc. Cloud service security broker and proxy
US10324702B2 (en) 2014-09-12 2019-06-18 Microsoft Israel Research And Development (2002) Ltd. Cloud suffix proxy and a method thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3565490B2 (ja) * 1999-11-09 2004-09-15 インターナショナル・ビジネス・マシーンズ・コーポレーション クライアントサーバシステム、サーバ、クライアント、プロキシサーバ制御方法、プロキシサーバ機能提供方法および記憶媒体
US20010037359A1 (en) * 2000-02-04 2001-11-01 Mockett Gregory P. System and method for a server-side browser including markup language graphical user interface, dynamic markup language rewriter engine and profile engine
JP2005149387A (ja) * 2003-11-19 2005-06-09 Nec Corp リアルタイムWeb共有システム
KR100788693B1 (ko) * 2006-01-12 2007-12-26 삼성전자주식회사 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는방법 및 장치

Also Published As

Publication number Publication date
JP2009289206A (ja) 2009-12-10
US20090300103A1 (en) 2009-12-03

Similar Documents

Publication Publication Date Title
US9130975B2 (en) Generation of macros
KR101507629B1 (ko) 기존 애플리케이션들의 커스터마이징 및 분산을 위한 브라우저-기반 프록시 서버
US8924943B2 (en) Browser emulator system
JP5885527B2 (ja) 印刷システム、印刷サーバ、制御方法およびコンピュータプログラム
US10346502B2 (en) Mobile enablement of existing web sites
US7500181B2 (en) Method for updating a portal page
US20080082965A1 (en) Providing globalization functionalities for javascript applications
US20100199169A1 (en) Web browser extension for simplified utilization of web services
US20110035435A1 (en) Method and system for converting desktop application to web application
JP2008117093A (ja) ユーザ操作記録・再現方法及び装置
KR20080053293A (ko) 클라이언트 스크립트 웹 페이지에 대한 서버측 초기 콘텐츠렌더링
US8819539B1 (en) On-the-fly rewriting of uniform resource locators in a web-page
TW201037531A (en) Method for server-side logging of client browser state through markup language
JP5151696B2 (ja) ユニフォームリソースロケータ情報を書き換えるプログラム
CN108416021B (zh) 一种浏览器网页内容处理方法、装置、电子设备及可读介质
US9143378B2 (en) Rendering components within different browser environments
US8090702B2 (en) Analyzing web site traffic
JP4745819B2 (ja) 脆弱性判定システム及び検査装置
CN111506844B (zh) 页面处理方法、设备及计算机存储介质
US20110035433A1 (en) Webpage display method, computer system, and program
US8112500B2 (en) Technique of relaying communications between client apparatus and server apparatus
US20050198568A1 (en) Table display switching method, text data conversion program, and tag program
JP2010282587A (ja) マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法
JP2007079988A (ja) Wwwブラウザ、htmlページ共有システムおよびhtmlページ共有方法
US20040148337A1 (en) System and method for enabling communication between a web browser and a software agent infrastructure

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120730

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121119

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees