在前面對Active Server Pages的介紹中,IIS的主要功能是支持靜態(tài)HTML主頁,當用戶向一個使用IIS的服務(wù)器提出請求后,服務(wù)器將會從自己的硬盤或者內(nèi)存中提出一個靜態(tài)主頁發(fā)送到用戶的瀏覽器上,IIS的主要作用就是作為用戶瀏覽器到服務(wù)器硬盤的一些文件的一個有效的接口。
注意
早期的IIS版本包括一個稱做Internet Database Connector(IDC)的工具,IDC可以從數(shù)據(jù)庫中接受和存儲數(shù)據(jù),你仍然可以利用IDC做這種工作,但是顯然Active Server Pages可以做的更好。
從這個意義上,IIS和其他的Web Server沒有什么區(qū)別,任何Web Server的主要作用都是支持靜態(tài)HTML主頁,理解其對HTML的支持過程如下步驟所列。
1.作為一個用戶首先是在瀏覽器的地址欄中添上要訪問的主頁地址并回車觸發(fā)這個申請?! ?
2.瀏覽器將申請發(fā)送到諸如IIS的Web Server上?! ?
3.Web Server接收這些申請并根據(jù).cfm或.cfml的后綴名意識到這是HTML文件?! ?
4.Web Server從當前硬盤或內(nèi)存中讀取正確的HTML文件然后將它送回用戶瀏覽器。
5.cfmL文件將會被用戶的瀏覽器解釋并將結(jié)果顯示在用戶瀏覽器上?! ?
當然,這種過程可能會更加復雜一些,(例如,F(xiàn)orm中的內(nèi)容以及查詢字串的傳遞)。在大多數(shù)情況下,對于各種典型的Web Server來說,這種過程是按部就班的,Web Server接收文件申請并從內(nèi)存或者硬盤中讀取正確的文件。
Active Server Pages改變了這一切,在IIS仍然支持靜HTML主頁的前提下,利用Active Server Pages可以根據(jù)用戶要求在Web Server上建立新的主頁?! ?
為了便于理解它和支持靜態(tài)主頁的區(qū)別,我們將它分成以下步驟:
1.一個用戶在瀏覽器的網(wǎng)址欄中添入Active Server Pages文件名稱,并回車觸發(fā)這個Active Server Pages的申請?! ?
2.瀏覽器將這個Active Server Pages的求發(fā)送給IIS
3.Web Server接收這個申請要求并由于其.asp的后綴意識到這是個Active Server Pages要求?!?
4.Web Server從硬盤或者內(nèi)存中接收正確的ASP文件?! ?
5.Web Server將這個文件發(fā)送到一個叫做ASP.DLL特定文件中。
6.Active Server Pages文件將會從頭至尾被執(zhí)行并根據(jù)命令要求生成響應(yīng)的靜態(tài)主頁。
7.cfmL主頁將被送回瀏覽器
8.cfmL主頁將會被用戶瀏覽器解釋執(zhí)行并顯示在用戶瀏覽器上
注意
為了清晰的說明問題,以上步驟已經(jīng)進行了很大的簡化,一個Active Server Pages并不一定每一次都重新編譯解釋,如果再次接受以前的那個請求而且沒有任何變化,Active Server Pages會從Cache中提出結(jié)果而不是再次運行。
對于Web Server來說,Active Server Pages于HTML有著本質(zhì)的區(qū)別,HTML是不經(jīng)任何處理送回給瀏覽器,而Active Server Pages的每一個命令都首先被用來生成HTML文件,因此、Active Server Pages允許生成動態(tài)內(nèi)容?! ?
另一方面,對于瀏覽器來說,Active Server Pages和HTML幾乎是沒有區(qū)別的,僅僅是后綴為.asp和.cfm的區(qū)別,當我們在客戶端提出Active Server Pages的申請后,我們的瀏覽器接受的是HTML格式的文件。因此它適用于任何瀏覽器。