網(wǎng)站的一般工作原理指Web服務(wù)器與客戶端瀏覽器交互的過(guò)程,說(shuō)白了就是,網(wǎng)站服務(wù)器上的文件和數(shù)據(jù)庫(kù)最終成為客戶所看到的華麗或樸素的頁(yè)面的過(guò)程,這個(gè)過(guò)程包括3個(gè)問(wèn)題:
1)如何根據(jù)用戶請(qǐng)求將指定的數(shù)據(jù)送達(dá)客戶端——互聯(lián)網(wǎng)解決
客戶機(jī)與服務(wù)器之間通過(guò)HTTP協(xié)議進(jìn)行通信。首先,客戶通過(guò)瀏覽器向Web服務(wù)器發(fā)送HTTP請(qǐng)求,這個(gè)請(qǐng)求通過(guò)互聯(lián)網(wǎng)傳送到被訪問(wèn)的服務(wù)器,服務(wù)器響應(yīng)請(qǐng)求并進(jìn)行處理之后生成特定的HTML文檔,然后再用HTFP協(xié)議將此HTML文檔通過(guò)互聯(lián)網(wǎng)返回到客戶端的瀏覽器顯示出來(lái)。
2)網(wǎng)站的數(shù)據(jù)如何變成頁(yè)面數(shù)據(jù)——網(wǎng)站程序解決
這里的“網(wǎng)站程序”指服務(wù)器上存放的的腳本、腳本解析程序、公用組件和數(shù)據(jù)庫(kù)系統(tǒng)的集合。當(dāng)然,如果網(wǎng)站是全靜態(tài)頁(yè)面,當(dāng)然就不存在解析的問(wèn)題了。這些程序相互協(xié)作,將原始的網(wǎng)站數(shù)據(jù)(文件形式或數(shù)據(jù)庫(kù)形式)解釋(或者說(shuō):變換)成特定編碼格式的用戶數(shù)據(jù)。網(wǎng)頁(yè)里最常見的編碼格式有:
HTML,GIF,BMP,PNG,MIDI(“正規(guī)”名稱為text/html,image/gif,image/bmp,iniage/png,audio/mid)。對(duì)任何一次客戶請(qǐng)求,一旦解釋完畢,程序在本次連接中的使命也就結(jié)束了,釋放所有的資源。
3)客戶端如何將頁(yè)面數(shù)據(jù)顯示為頁(yè)面(所謂頁(yè)面就是圖形界面上的文本、圖像、圖形的集合)——瀏覽器解決
網(wǎng)站的Web服務(wù)器接收到的HTTP請(qǐng)求通常分為兩種情況:一種是請(qǐng)求一個(gè)靜態(tài)的HTML網(wǎng)頁(yè),此時(shí)Web服務(wù)器在自身服務(wù)器上查找到相應(yīng)的頁(yè)面并將該頁(yè)面發(fā)送出去即可;另一種是請(qǐng)求一個(gè)以.asp或者.jsp結(jié)尾的動(dòng)態(tài)網(wǎng)頁(yè),此時(shí)Web服務(wù)器無(wú)法自行直接處理,需要將這個(gè)請(qǐng)求轉(zhuǎn)交給應(yīng)用程序服務(wù)器處理,若應(yīng)用程序服務(wù)器也不能自行完成全部處理,則還將根據(jù)需要訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行相應(yīng)的處理,最終再將處理結(jié)果生成HTML文檔,由Web服務(wù)器發(fā)送回客戶端瀏覽器。