回覆列表
-
1 # 古人誠不欺我呀
-
2 # 戲裡話外
簡單一點吧,靜態頁面就是你的瀏覽器來把程式碼轉成看到的樣子。
動態頁面就是網站伺服器轉成你看到的樣子。
動態頁面每次操作要伺服器翻譯一次再發給你。
靜態頁面直接給你,你瀏覽器自己翻譯。
再簡單一點,好比你去飯店吃飯,靜態頁面就是已經做好的小菜,你選好直接吃。
動態頁面就是你點菜,後廚現給你做。
你就不要,非要老闆做個豬八戒,老闆再給你捏一個豬八戒,這就是動態頁面。
具體的說,就是動態頁面對伺服器有壓力(老闆有壓力)。
伺服器(老闆)要給你現做你需要的東西,佔用他的時間和能力。
靜態頁面沒有,不需要,直接拿走回家琢磨怎麼吃就行了。
如果你還需要更細緻一些的說明,比如為什麼用靜態,或者安全性,或者效能什麼的,可以繼續問,我繼續答。
這個問題裡你沒問,就不說那些了。
一、靜態web頁面:
1、在靜態Web程式中,客戶端使用Web瀏覽器(IE、FireFox等)經過網路(Network)連線到伺服器上,使用HTTP協議發起一個請求(Request),告訴伺服器我現在需要得到哪個頁面,所有的請求交給Web伺服器,之後WEB伺服器根據使用者的需要,從檔案系統(存放了所有靜態頁面的磁碟)取出內容。之後透過Web伺服器返回給客戶端,客戶端接收到內容之後經過瀏覽器渲染解析,得到顯示的效果。
2、為了讓靜態web頁面顯示更加好看,使用javascript/VBScript/ajax(AJAX即“Asynchronous Javascript And XML”(非同步JavaScript和XML),是指一種建立互動式網頁應用的網頁開發技術。)但是這些特效都是在客戶端上藉助於瀏覽器展現給使用者的,所以在伺服器上本身並沒有任何的變化。
3、靜態web無法連線資料庫;
4、靜態web資源開發技術:HTML;
5、由於現在的web頁面中,大量使用JS,導致瀏覽器開啟頁面,就會佔用大量的記憶體,服務端的壓力是減輕了,但壓力轉移到了客戶端。
二、動態web頁面:
動態WEB中,程式依然使用客戶端和服務端,客戶端依然使用瀏覽器(IE、FireFox等),透過網路(Network)連線到伺服器上,使用HTTP協議發起請求(Request),現在的所有請求都先經過一個WEB Server來處理。
如果客戶端請求的是靜態資源(*.htm或者是*.htm),則將請求直接轉交給WEB伺服器,之後WEB伺服器從檔案系統中取出內容,傳送回客戶端瀏覽器進行解析執行。
如果客戶端請求的是動態資源(*.jsp、*.asp/*.aspx、*.php),則先將請求轉交給WEB Container(WEB容器),在WEB Container中連線資料庫,從資料庫中取出資料等一系列操作後動態拼湊頁面的展示內容,拼湊頁面的展示內容後,把所有的展示內容交給WEB伺服器,之後透過WEB伺服器將內容傳送回客戶端瀏覽器進行解析執行。
再進一步深入分析動態web的訪問過程:瀏覽器訪問web時,看似是直接訪問的jsp頁面,其實是,最先到達的地方是伺服器,伺服器建立好req和resp物件後再給jsp頁面使用。在jsp中完成設定字符集和取得表單引數後再呼叫servlet,完成業務處理。然後返回到jsp,jsp就會生成相應的html頁面。該頁面會返回到伺服器,再由伺服器,透過response物件返回給客戶端。
其區別主要為:
1、靜態頁面就是設計者把頁面上所有東西都設定好、做死了,然後放上去,不管是誰在任何時候看到的頁面內容都是一樣的,一成不變(除非手動修改頁面內容)。靜態html頁面檔案,可以直接用本地的瀏覽器開啟。比如:file:///Users/Phil/Documents/DevOps/HBuilderProjects/testJSP/index.html。
2、動態頁面的內容一般都是依靠伺服器端的程式來生成的,不同人、不同時候訪問頁面,顯示的內容都可能不同。網頁設計者在寫好伺服器端的頁面程式後,不需要手工控制,頁面內容會按照頁面程式的安排自動更改變換