動態網頁與靜態網頁的格式有什么區別?
靜態頁面和動態頁面的區別 一、靜態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對象返回給客戶端。 為什么需要web服務器?(web server)1)不管什么web資源,想被遠程計算機訪問,都必須有一個與之對應的網絡通信程序,當用戶來訪問時,這個網絡通信程序讀取web資源數據,并把數據發送給來訪者。2)WEB服務器就是這樣一個程序,它用于完成底層網絡通迅,處理http協議。使用這些服務器,We應用的開發者只需要關注web資源怎么編寫,而不需要關心資源如何發送到客戶端手中,從而極大的減輕了開發者的開發工作量。 常用動態web資源開發技術:JSP/Servlet、ASP、PHP等。 三、關于兩者區別的簡單直接的描述1、靜態頁面就是設計者把頁面上所有東西都設定好、做死了,然后放上去,不管是誰在任何時候看到的頁面內容都是一樣的,一成不變(除非手動修改頁面內容)。靜態html頁面文件,可以直接用本地的瀏覽器打開。比如:file:///Users/Phil/Documents/DevOps/HBuilderProjects/testJSP/index.html。2、動態頁面的內容一般都是依靠服務器端的程序來生成的,不同人、不同時候訪問頁面,顯示的內容都可能不同。網頁設計者在寫好服務器端的頁面程序后,不需要手工控制,頁面內容會按照頁面程序的安排自動更改變換。3、html是w3c規范的一種網頁書寫格式,是一種統一協議語言,靜態網頁。我們上網看的網頁都是大部分都是基于html語言的。jsp是一種基于動態語言,jsp可以實現html的所有任務,4、HTML(Hypertext Markup Language)文本標記語言,它是靜態頁面,和JavaScript一樣解釋性語言,為什么說是解釋性語言呢?因為,只要你有一個瀏覽器那么它就可以正常顯示出來,而不需要指定的編譯工具,只需在TXT文檔中寫上HTML標記就可以正常顯示。JSP(Java Server Page)是Java服務端的頁面,所以它是動態的,它是需要經過JDK編譯后把內容發給客戶端去顯示,我們都知道,Java文件編譯后會產生一個class文件,最終執行的就是這個class文件,5、JSP的前身是servlet;6、html和jsp的表頭不一樣,這個是JSP的頭“ <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>”在表頭中有編碼格式和倒入包等。也是很好區分的,在jsp中用<%%>就可以寫Java代碼了,而html沒有<%%>。7、,不認識jsp或者asp什么什么的,但是有時候界面需要邏輯控制,所以我們就用相應的技術來實現,這樣比較方便。而jsp在后臺通過服務器解析為相應的html,然后在供瀏覽器識別顯示。例如<%if(flag == a){<label>a<label>}else {<label>b<label>}%>服務器在讀取到這段代碼后,根據相應的業務邏輯,編譯成相應的servlet,再由servlet輸出到頁面(輸出的就是html)。 四、實驗測試1、在HBuilder中創建jsp頁面,其內置的web靜態服務器不能解析jsp表頭,只能作為文本顯示輸出,但是可以解析其中的html部分。瀏覽器不能直接打開jsp文件。jsp頁面如果想正確的顯示,需要web容器進行解析。2、在IntelliJ中創建web application,需要啟動tomcat,才能運行jsp,可以順利解析jsp的表頭。