W3Schoolsのページで使用されているSQLエンジンの特定の場合:
Safari、Chrome、Operaブラウザ
Safariブラウザー(Mac OS X 10.12でテストしました)を使用している場合、ページはSQLiteを使用しており、ブラウザー自体に組み込まれているようです。「SQLの実行」ボタンを押すと、外部リソースは使用されません。さらにリバースエンジニアリングを行うと、次のJavaScriptコードを使用して、ページがデータベースを初期化していることがわかります。
function w3WebSQLInit() {
var w3DBObj = this;
w3Database = window.openDatabase('W3SchoolsDemoDatabase', '1.0', 'W3SchoolsDemoDatabase', 2 * 1024 * 1024);
...
}
window.openDatabase
コードがWeb SQLデータベースを使用していることを意味します。これは数年前にW3Cによって定義され、Opera、Safari、およびChrome(AFAIK)によって実践されましたが、FireFox(またはExplorer)によってではありませんでした。3つのブラウザはすべて、異なるバージョンのSQLiteを内部に埋め込むことによって「Web SQLデータベース」を実装しているようです。
この時点で、W3Cページは次のように主張しています。
「注意してください。この仕様は現在アクティブなメンテナンスが行われておらず、Webアプリケーションワーキンググループはそれをさらにメンテナンスする予定はありません。」
Chromeブラウザー(Windows 10では56.0.2924.87バージョン)をテストしましたが、SQLite 3.10.2を使用しているようです。Opera(Windows 10ではバージョン12.15)はSQLite 3.7.9を使用します。
Operaの「約」は十分明確です。
また、Safariクライアント側ストレージおよびオフラインアプリケーションプログラミングガイドでは、
Safari 3.1およびiOS 2.0以降、SafariはHTML5 JavaScriptデータベースクラスをサポートしています。JavaScriptデータベースクラスは、SQLiteに基づいており、大きすぎてCookieに保存するには大きすぎる(またはリスクにとって重要すぎる)コンテンツのローカルストレージ向けのリレーショナルデータベースを提供しますユーザーが自分のCookieを消去したときに誤って削除した場合)。
私はChromeを調べませんでした...私の推測は明白です。
FireFox、Edge、およびInternet Explorerブラウザ
FireFoxブラウザーを使用している場合(私はMac OS X 10.12でテストしました); 同じW3Schoolページは根本的に異なる方法で動作します。ブラウザではクエリを実行しませんが、サーバーにリクエストを送信します。サーバー側では、MS Accessデータベースのようなものを実際に使用していると思います。これを確認する1つの方法は、(標準)を確認することですinformation_schema
。
次のクエリを発行すると(標準に準拠したデータベースでは、ユーザーがアクセスできるテーブルのリストが表示されます):
SELECT * FROM information_schema.tables;
次の(わかりづらい)エラー応答が表示されます。
Could not find file 'C:\Windows\SysWOW64\inetsrv\information_schema.mdb'.
ソフトウェアが.MDBファイルを探している場合は、サーバー側でMicrosoft Jetデータベースエンジン(または同等の何か)を使用しており、Accessのバージョンに対応するAccessの.MDB形式のファイルを使用しています。 2003を含みます(Access 2007以降のバージョンでは、デフォルトで.ACCDB形式のファイルが使用されます)。
Microsoft Internet Explorer 11は同じように動作します(Windows 10の場合)。Edgeも同様です(Windows 10の場合)。