Web數(shù)據(jù)庫訪問原理
Web數(shù)據(jù)庫技術(shù)采用三層或多層體系結(jié)構(gòu),前端采用基于瘦客戶機的瀏覽器技術(shù),通過Web服務(wù)器及中間件訪問數(shù)據(jù)庫,如圖5-19所示。
目前,主要應(yīng)用的Web數(shù)據(jù)庫訪問技術(shù)包括以下幾個方面。
1.公共網(wǎng)關(guān)接口技術(shù)CGI
CGI是Web服務(wù)器運行時外部程序的規(guī)范,按照CGI編寫的程序可以擴展服務(wù)器的功能,完成服務(wù)器本身不能完成的工作,外部程序執(zhí)行時可以生成HTML文檔,并將文檔返回Web服務(wù)器。CGI應(yīng)用程序能夠與瀏覽器進行交互作用,還可以通過數(shù)據(jù)庫的API與數(shù)據(jù)庫服務(wù)器等外部數(shù)據(jù)源進行通信。如一個CGI程序可以從數(shù)據(jù)庫服務(wù)器中獲取數(shù)據(jù),然后格式化為HTML文檔后發(fā)送給瀏覽器,也可以將從瀏覽器獲得的數(shù)據(jù)存人數(shù)據(jù)庫。幾乎所有的服務(wù)器軟件都支持CGI,開發(fā)者可以使用任何一種Web服務(wù)器內(nèi)置語言編寫CGI,其中包括流行的C、C++、Visual Basie和Delphi等。按照應(yīng)用環(huán)境的不同,CGI又可以分為標準CGI和間接CCI。
標準CGI使用命令行參數(shù)或環(huán)境變量來表示服務(wù)器的詳細請求,服務(wù)器與瀏覽器間的通信采用標準輸人輸出方式。當服務(wù)器接收瀏覽器發(fā)來的CGI請求時,服務(wù)器對該請求進行分析,設(shè)置所需的環(huán)境變量或命令參數(shù),然后創(chuàng)建一個子進程啟動CGI程序,CGI執(zhí)行完畢后,使用標準輸出將執(zhí)行結(jié)果返回給服務(wù)器。CGI的輸出可以有許多類型,例如,HTML文檔、圖像、純文本或聲音文件等,它還可以輸出指向其他文檔的鏈接。
間接CGI又稱為緩沖CGI,或者WinCGI。在CGI程序(不支持標準輸人輸出)和CGI接口之間插人一個緩沖程序,緩沖程序與CGI接口間用標準輸人輸出進行通信。這樣。CGI程序采用緩沖區(qū)(臨時文件)而不是標準輸人/輸出來進行數(shù)據(jù)通信。當服務(wù)器接收到瀏覽器的請求時,創(chuàng)建一個子進程啟動緩沖程序,緩沖子進程與服務(wù)器進行通信。它通過標準輸人陣俞出、命令行參數(shù)和環(huán)境變量獲得有關(guān)數(shù)據(jù),并將這些數(shù)據(jù)保存在一輸人緩沖區(qū)中。然后緩沖子進程再創(chuàng)建一個子進程啟動CGI程序,CGI程序讀取輸人緩沖區(qū)的內(nèi)容,處理瀏覽器的請求,將輸出的內(nèi)容保存在輸出緩沖區(qū)中。緩沖進程通過命令行參數(shù)或環(huán)境變量等方式,傳送輸人緩沖區(qū)和輸出緩沖區(qū)的地址(或臨時文件)到CGI子進程。緩沖進程與CGI子進程保持同步以監(jiān)測CGI程序的執(zhí)行狀態(tài)。當緩沖進程得到CGI子進程的輸出時,設(shè)置有關(guān)環(huán)境并終止該子進程,然后通過標準輸出與服務(wù)通信,通過服務(wù)器CGI程序的輸出結(jié)果返回給瀏覽器。相似地,服務(wù)器進程與緩?fù)膺M程也應(yīng)保持同步以監(jiān)測緩沖進程執(zhí)行的狀態(tài)。間接CGI最明顯的特點是服務(wù)器與CGI程序間的數(shù)據(jù)交換是通過緩沖區(qū)而不是標準輸人輸出進行的。
可以看出,CGI程序應(yīng)用是作為一個獨立的外部應(yīng)用來運行的,與服務(wù)器上的其他進程競爭處理器資源,這將導(dǎo)致運行速度減慢。而且,用CGI開發(fā)支持Web應(yīng)用程序也是一個比較困難的過程。開發(fā)人員不僅要掌握HTML語言,還要掌握低級編程語言。CGI的另外一個眾所周知的缺陷是不提供狀態(tài)管理功能,如果沒有狀態(tài)管理,那么瀏覽器的每一次請求,都需要一個連接的建立與釋放的過程,效率較低。另外,必須用某個特定數(shù)據(jù)庫服務(wù)器的專用SQL語言來手工編寫數(shù)據(jù)庫接口,其移植性也不好。
2.專用API
目前生產(chǎn)Web服務(wù)器和數(shù)據(jù)庫服務(wù)器的各大公司紛紛推出各自專用的API進行Web與數(shù)據(jù)庫的連接。Netscape公司推出了NSAPI。微軟公司推出了用于連接其Weh服務(wù)器IIS與數(shù)據(jù)庫的ISAPI。Oracle使用標準的Wel)公共網(wǎng)關(guān)接口,將其PL/SQL開發(fā)環(huán)境與Web連接在一起,使用Oracle Web Server,通過weh客戶機可直接調(diào)用Oracle的存儲過程來生成動態(tài)的Web文檔。sybase的Web .sql把Web服務(wù)器和sybase sQL server及其他的數(shù)據(jù)庫環(huán)境(通過Omni Connect)集成在一起,在使用CGI與Web服務(wù)器進行協(xié)作的同時,還可以使用Netseape的NSAPI直接與Web服務(wù)器連接。運用InforMix的WebDataBade模塊就無須再進行傳統(tǒng)的CGI編程,它將所有的Web結(jié)點內(nèi)容和應(yīng)用邏輯集中存儲在服務(wù)器中,可以很容易地建立動態(tài)的、多媒體功能豐富的Web應(yīng)用。
3.服務(wù)器端腳本編程技術(shù)
當前較流行的幾種有代表性的服務(wù)器端的腳本編程技術(shù)是ASP(ACtive Server Page)、PHP(Personal Home Page)和JSP(Java Server Pages)。
ASP是微軟公司于1996年11月推出的Web應(yīng)用程序開發(fā)技術(shù)。在有關(guān)文檔中ASP被描述為:一個服務(wù)器端的腳本環(huán)境,可以生成和運行動態(tài)的、交互的、高性能的Weh服務(wù)器應(yīng)用程序。ASP是目前公認的建立 Windows NT動態(tài)站點最好的工具。它與ADO(Active Data Object)的充分結(jié)合,提供了強大的數(shù)據(jù)庫訪問功能,成為了進行網(wǎng)上數(shù)據(jù)庫管理的重要手段。
Asp內(nèi)含IIS當中,提供一個服務(wù)器端(server-side)的seripting環(huán)境。站點服務(wù)器會自動將ASP的程序碼,解釋為標準HTML格式的主頁內(nèi)容,再送到用戶端的瀏覽器上顯示出來。用戶端只要使用常規(guī)可執(zhí)行HTML碼的瀏覽器,即可瀏覽。
ASP雖然具有強大優(yōu)勢,但它在安全性上仍存在一些問題,例如,可能引起NT內(nèi)存泄露,以及最初只能在Windows 9x/NT/2000環(huán)境下運行等。對于前者,微軟公司已經(jīng)推出了補丁程序,以彌補它的不足;而對于后者,已經(jīng)有人開發(fā)了在非微軟的Wel)服務(wù)器上支持AsP語言的軟件,如Apache_ASP、chiliSoft ASP等,可以在Red Hat、SuSE等操作系統(tǒng)下運行AsP腳本。數(shù)據(jù)庫的支持包含了Oracle、sybase、MysQL等。
PHP是一種基于服務(wù)器端來創(chuàng)建動態(tài)網(wǎng)頁的嵌人式腳本語言。當一個訪問者打開主頁時,服務(wù)端便執(zhí)行PHP的命令并將執(zhí)行結(jié)果發(fā)送至訪問者的瀏覽器中,這類似于ASP,然而PHP和ASP不同之處在于PHP開放源碼和跨越平臺,PHP可以遠行在Windows NT和多種版本的UNIX上。它大量地借用C、Java和Perl語言的語法,并結(jié)合PHP自己的特性,較Web開發(fā)者能夠快速地寫出動態(tài)頁面。它支持目前絕大多數(shù)數(shù)據(jù)庫,是開發(fā)企業(yè)網(wǎng)站的利器。PHP是完全免費的,使用者可以自由下載,甚至可以不受限制地獲得源代碼,加進自己需要的特色。
JSP是Sun公司倡導(dǎo)的、許多公司參與一起建立的一種新一代網(wǎng)站開發(fā)語言。它完全解決了目前ASP、PHP的通?。_本級執(zhí)行。JSP可以在ServerIet和JavaBean的支持下,完成功能強大的站點程序。
ASP、PHP和JSP各有所長,學(xué)習(xí)者可以選擇某種適合自己的技術(shù)來進一步學(xué)習(xí)。
本文發(fā)布于UEO營銷型網(wǎng)站建設(shè)公司尚品中國http://www.londe303.com/
建站流程
-
網(wǎng)站需求
-
網(wǎng)站策劃方案
-
頁面設(shè)計風格
-
確認交付使用
-
資料錄入優(yōu)化
-
程序設(shè)計開發(fā)
-
后續(xù)跟蹤服務(wù)
-
聯(lián)系電話
010-60259772
熱門標簽
- 網(wǎng)站建設(shè)
- 食品網(wǎng)站建設(shè)
- 微信小程序開發(fā)
- 小程序開發(fā)
- 無錫網(wǎng)站建設(shè)
- 研究所網(wǎng)站建設(shè)
- 沈陽網(wǎng)站建設(shè)
- 廊坊網(wǎng)站建設(shè)
- 鄭州網(wǎng)站建設(shè)
- 婚紗攝影網(wǎng)站建設(shè)
- 手機端網(wǎng)站建設(shè)
- 高校網(wǎng)站制作
- 天津網(wǎng)站建設(shè)
- 教育網(wǎng)站建設(shè)
- 品牌網(wǎng)站建設(shè)
- 政府網(wǎng)站建設(shè)
- 北京網(wǎng)站建設(shè)
- 網(wǎng)站設(shè)計
- 網(wǎng)站制作
最新文章
推薦新聞
更多行業(yè)-
網(wǎng)站建設(shè)時怎樣設(shè)計布局效果比較好?
在網(wǎng)站的建設(shè)中,除了企業(yè)的不同需求,我們還考慮了頁面的布局。 對于專...
2020-03-16 -
尚品中國之百度算法匯總盤點(一)
2013年,百度為了提供給用戶更加優(yōu)質(zhì)便捷的搜索體驗,百度搜索發(fā)布...
2019-07-23 -
網(wǎng)站建設(shè)中存在的一些問題
隨著互聯(lián)網(wǎng)的發(fā)展,很多中小企業(yè)都認識到了網(wǎng)站建設(shè)的重要性,中小企業(yè)網(wǎng)站...
2015-01-14 -
網(wǎng)站制作教程之實現(xiàn)客戶端驗證
創(chuàng)建了表單,用戶輸入數(shù)據(jù)后,需要對輸入的數(shù)據(jù)進行驗證。驗證數(shù)據(jù)首先要找...
2015-12-14 -
網(wǎng)站的完善、更新及維護
在網(wǎng)站投人運營后,還要根據(jù)需要和用戶的反饋對網(wǎng)站的內(nèi)容及表達形式進行完...
2014-07-22 -
微信小程序開發(fā)需要做哪些前期準備工作
微信小程序是一種輕量級的應(yīng)用,它可以在微信平臺上直接運行。如果你想開發(fā)...
2023-05-19
預(yù)約專業(yè)咨詢顧問溝通!
免責聲明
非常感謝您訪問我們的網(wǎng)站。在您使用本網(wǎng)站之前,請您仔細閱讀本聲明的所有條款。
1、本站部分內(nèi)容來源自網(wǎng)絡(luò),涉及到的部分文章和圖片版權(quán)屬于原作者,本站轉(zhuǎn)載僅供大家學(xué)習(xí)和交流,切勿用于任何商業(yè)活動。
2、本站不承擔用戶因使用這些資源對自己和他人造成任何形式的損失或傷害。
3、本聲明未涉及的問題參見國家有關(guān)法律法規(guī),當本聲明與國家法律法規(guī)沖突時,以國家法律法規(guī)為準。
4、如果侵害了您的合法權(quán)益,請您及時與我們,我們會在第一時間刪除相關(guān)內(nèi)容!
聯(lián)系方式:010-60259772
電子郵件:394588593@qq.com