W3Schools 페이지에서 사용하는 SQL 엔진의 특정 경우 :
사파리, 크롬 및 오페라 브라우저
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에 의해 정의되었으며, FireFox (또는 Explorer)가 아닌 Opera, Safari 및 Chrome (AFAIK)에 의해 실제로 구현되었습니다. 세 브라우저 모두 서로 다른 버전의 SQLite를 내장하여 "Web SQL Database"를 구현 한 것으로 보입니다.
이 시점에서 W3C 페이지는 다음을 주장합니다.
"주의하십시오.이 사양은 더 이상 활성 유지 관리가 아니며 Web Applications Working Group은 더 이상 유지 관리하지 않습니다."
Chrome 브라우저 (Windows 10의 경우 56.0.2924.87 버전)를 테스트했으며 SQLite 3.10.2를 사용하는 것 같습니다. Opera (Windows 10의 경우 버전 12.15)는 SQLite 3.7.9를 사용합니다.
오페라는 "약"에서 충분히 명확합니다.
그리고 사파리 클라이언트 측 스토리지 및 오프라인 응용 프로그램 가이드 프로그래밍 도 있음을 언급
Safari 3.1 및 iOS 2.0부터 Safari는 HTML5 JavaScript 데이터베이스 클래스를 지원합니다. SQLite를 기반으로하는 JavaScript 데이터베이스 클래스는 쿠키에 편리하게 저장하기에 너무 큰 (또는 위험하기에는 너무 중요한) 콘텐츠의 로컬 저장소를위한 관계형 데이터베이스를 제공합니다. 사용자가 쿠키를 지울 때 실수로 삭제).
Chrome을 보지 않았지만 내 추측은 분명합니다.
FireFox, Edge 및 인터넷 탐색 브라우저
FireFox 브라우저 를 사용하는 경우 (Mac OS X 10.12에서 테스트) 동일한 W3School 페이지는 완전히 다른 방식으로 동작합니다. 브라우저 에서는 쿼리 를 수행하지 않지만 서버 로 요청을 보냅니다 . 서버 측에서는 실제로 MS Access 데이터베이스와 같은 것을 사용한다고 생각합니다 . 이를 확인하는 한 가지 방법은 (표준)을 확인하는 것입니다 information_schema
.
다음 쿼리를 실행하면 (표준 호환 데이터베이스에서 사용자가 액세스 할 수있는 테이블 목록을 제공함)
SELECT * FROM information_schema.tables;
다음과 같은 오류 메시지가 나타납니다 .
Could not find file 'C:\Windows\SysWOW64\inetsrv\information_schema.mdb'.
소프트웨어가 .MDB 파일을 찾는 경우 서버 측 에서 Microsoft Jet 데이터베이스 엔진 (또는 이와 동등한 것)을 사용하고 있으며 Access 및 .MDB 형식 파일 을 사용하고 있음을 의미합니다. 2003을 포함합니다. Access 2007 이상 버전은 기본적으로 .ACCDB 형식 파일을 사용합니다.
Microsoft Internet Explorer 11 은 동일한 방식으로 작동합니다 (Windows 10에서). Windows 10에서도 Edge도 마찬가지 입니다.