插曲
在開始主題之前,先來統一幾個概念。
實際上,關于互聯網(internet,國際標準首字母是小寫)、因特網(Internet,國際標準首字母是大寫)和計算機網絡三者的概念并沒有完整統一的定義,這里給出作者本人通過查閱資料獲悉的參考定義。
廣義互聯網(internet)
互聯網:凡是能彼此通信的設備組成的網絡就叫互聯網
計算機網絡:將地理位置不同的具有獨立功能的多臺計算機及其外部設備,通過通信線路連接起來,在網絡操作系統,網絡管理軟件及網絡通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。簡單來說即連接兩臺或多臺計算機進行通信的系統。
通過二者的定義可以看出,廣義上,我們可以將互聯網等同于計算機網絡。
可是,通常大家口中說的“互聯網”更傾向于是指因特網。但因特網并不是全球唯一的互聯網絡。例如在歐洲,跨國的互聯網絡就有“歐盟網”(Euronet),“歐洲學術與研究網”(EARN),“歐洲信息網”(EIN),在美國還有“國際學術網”(BITNET),世界范圍的還有“飛多網”(全球性的BBS系統)等。
因特網(Internet)
Internet是在美國早期的軍用計算機網ARPANET(阿帕網)的基礎上經過不斷發展變化而形成的,是網絡與網絡之間所串連成的龐大網絡,這些網絡以一組標準的網絡TCP/IP協議族相連,連接全世界幾十億個設備,形成邏輯上的單一巨大國際網絡。它是由從地方到全球范圍內幾百萬個私人的、學術界的、企業的和政府的網絡所構成,通過電子、無線和光纖網絡技術等等一系列廣泛的技術聯系在一起。這種將計算機網絡互相聯接在一起的方法可稱作“網絡互聯”,在這基礎上發展出覆蓋全世界的全球性互聯網絡稱互聯網,即是互相連接一起的網絡。
上面冗長的定義可以說明,狹義上,互聯網就是因特網。
在不引起歧義的情況下,“互聯網”一詞可以根據上下文語義理解即可。
因特網提供的服務有(但不限于):
- 萬維網(World Wide Web,又稱環球信息網,提供信息發布、搜索、查詢、娛樂、購物等服務)
- 電子郵件
- 點對點網絡
- 文件共享
- IP電話
- 遠程登錄Telnet
萬維網(WWW)
萬維網(英語:World Wide Web),亦作“WWW”、“Web”,是一個由許多互相鏈接的超文本組成的系統,通過互聯網訪問。在這個系統中,每個有用的事物,稱為一樣“資源”;并且由一個全局“統一資源標識符”(URI)標識;這些資源通過超文本傳輸協議(Hypertext Transfer Protocol)傳送給用戶,而后者通過點擊鏈接來獲得資源。
萬維網并不等同互聯網,萬維網只是互聯網所能提供的服務其中之一,是靠著互聯網運行的一項服務。
萬維網的核心部分是由三個標準構成的:
統一資源標識符(URI),這是一個統一的為資源定位的系統。
超文本傳送協議(HTTP),它負責規定客戶端和服務器怎樣互相交流。
超文本標記語言(HTML),作用是定義超文本文檔的結構和格式。
正文
言歸正傳,我們通過瀏覽器訪問萬維網中的某個網站時會從服務器得到一個超文本標記文檔,然后瀏覽器將文檔渲染后展示在顯示器上,這就是我們得到的頁面。頁面中可以包含文本、圖像、聲音、FLASH動畫、客戶端腳本(JavaScript)和ActiveX控件及JAVA小程序(Java Applet顯然已經退出舞臺)等,有些頁面還可以注冊、登錄以及顯示當前用戶的相關信息。
我經常看到頁面中顯示一些廣告,可怕的是,廣告的內容正是我前幾天搜索過或購買過的產品。這個現象似乎來得有點夸張。
瀏覽器從服務器得到的超文本標記文檔的后綴通常分為兩大類:
- 靜態頁面:htm、html、shtml、xml;
- 動態頁面:asp、jsp、php、perl、cgi;
在我們開始區分靜態網頁和動態網頁之前,先明確一下二者的共同之處。首先,它們的目標都是呈現內容給用戶;其次,內容都是用超文本標記語言(HTML)表示的。既然它們有著相同的使命,那為什么會有所區別呢?
靜態網頁
靜態網頁是指存放在服務器文件系統中實實在在的HTML文件。當用戶在瀏覽器中輸入頁面的URL,然后回車,瀏覽器就會將對應的html文件下載、渲染并呈現在窗口中。早期的網站通常都是由靜態頁面制作的。
開發技術
通常,使用HTML或XML即可完成靜態頁面的制作。
特點
- 靜態網頁每個網頁都有一個固定的URL,且網頁URL以.htm、.html、.shtml等常見形式為后綴,而不含有“?”;(動態網頁中的“?”對搜索引擎檢索存在一定的問題,搜索引擎一般不可能從一個網站的數據庫中訪問全部網頁,或者出于技術方面的考慮,搜索蜘蛛不去抓取網址中“?”后面的內容。)
- 網頁內容一經發布到網站服務器上,無論是否有用戶訪問,每個靜態網頁的內容都是保存在網站服務器上的,也就是說,靜態網頁是實實在在保存在服務器上的文件,每個網頁都是一個獨立的文件;
- 靜態網頁的內容相對穩定,因此容易被搜索引擎檢索;
- 靜態網頁沒有數據庫的支持,在網站制作和維護方面工作量較大,因此當網站信息量很大時完全依靠靜態網頁制作方式比較困難;
- 靜態網頁的交互性較差,在功能方面有較大的限制。
- 頁面瀏覽速度迅速,過程無需連接數據庫,開啟頁面速度快于動態頁面。
- 減輕了服務器的負擔,工作量減少,也就降低了數據庫的成本。
優點
- 可以公開(即副本可以證明給任何人)。
- 托管沒得任何特殊的要求。(不需要特殊的中間軟件比如超文本預處理器、公共網關接口)
- 沒得網絡服務器或應用服務器,比如直接從CD-ROM(激光唱片-只讀存儲器)或USB閃存驅動器讀取內容,可以通過網絡瀏覽器直接訪問。
- 網站更安全,HTML頁面不會受Asp相關漏洞的影響;而且可以減少攻擊,防SQL注入。數據庫出錯時,不影響網站正常訪問。
- 不需要編譯,所以速度快,節省服務器資源。
- 網址格式友好,搜索引擎容易識別。
缺點
- 內容是固定的,交互性差,內容更新維護復雜。
- 沒有自動化的工具,維護大量的靜態頁面文件是不現實的。
- 無法充分支持用戶/客戶的需求(外觀選擇,瀏覽器的支持,Cookie)。
動態網頁
動態網頁是相對于靜態網頁而言的。當瀏覽器請求服務器的某個頁面時,服務器根據當前時間、環境參數、數據庫操作等動態的生成HTML頁面,然后在發送給瀏覽器(后面的處理就跟靜態網頁一樣了)。很明顯,動態網頁中的“動態”是指服務器端頁面的動態生成,相反,“靜態”則指頁面是實實在在的、獨立的文件。
開發技術
動態網頁的生成技術有多中,常見的有:
- HTML+JavaScript(Node.js)
- HTML+PHP
- HTML+ASP.NET(或ASP)
- HTML+JSP
- HTML+CGI(早期的動態網頁技術)
關于這幾類技術細節,不在本文的描述范圍。
特征
- 動態網頁一般以數據庫技術為基礎,可以大大降低網站維護的工作量;
- 采用動態網頁技術的網站可以實現更多的功能,如用戶注冊、用戶登錄、在線調查、用戶管理、訂單管理等等;
- 動態網頁實際上并不是獨立存在于服務器上的網頁文件,只有當用戶請求時服務器才返回一個完整的網頁;
- 動態網頁地址中的“?”對搜索引擎檢索存在一定的問題,搜索引擎一般不可能從一個網站的數據庫中訪問全部網頁,或者出于技術方面的考慮,搜索蜘蛛不去抓取網址中“?”后面的內容,因此采用動態網頁的網站在進行搜索引擎推廣時需要做一定的技術處理才能適應搜索引擎的要求。
好處
- 維護方便,能實現人們需要的各種需求。
- 查詢信息方便,能存儲大量數據,需要時能立即查詢。
不足
- 動態網站用到數據庫,所以對數據庫的安全和保密性要求較高,要專業技術人員提供維護才能保證網站的安全。
- 動態網站不利于搜索引擎收錄。
- 動態網站制作成本較高。
偽靜態
并非所有后綴為html htm的頁面都是靜態頁面,動態頁面也可以通過服務器端的技術實現采用靜態頁面的后綴,常見的是Apache和Nginx的Rewrite技術,也就是通常稱作偽靜態的頁面,實際上還是動態頁面,只不過是靜態化了。
偽靜態是相對真實靜態來講的。通常我們為了增強搜索引擎的友好面。都將文章內容生成靜態頁面。但是有的朋友為了實時的顯示一些信息?;蛘哌€想運用動態腳本解決一些問題。不能用靜態的方式來展示網站內容。但是這就損失了對搜索引擎的友好面。怎么樣在兩者之間找個中間方法呢,這就產生了偽靜態技術。就是展示出來的是以html一類的靜態頁面形式,但其實是用ASP一類的動態腳本來處理的。
偽靜態與靜態頁面的區別
從URL結構以及頁面名稱看,偽靜態和靜態頁面是一樣的。偽靜態的頁面后綴可以是html htm 或者是目錄格式偽靜態只是改變了URL的表現形式,實際上還是動態頁面靜態頁面可以節省服務器資源,而偽靜態嚴格說是增加服務器資源消耗的總結,在SEO方面,偽靜態和靜態頁面的功能是相同的,但是偽靜態本質上還是動態頁面,所以消耗資源是和動態頁面一樣的,而且因為Rewrite服務器還需要消耗額外的資源。
誤區:會動的就是動態頁面
在HTML格式的頁面上,也可以出現各種動態的效果,如.GIF格式的動畫、FLASH、翻滾字母等,這些“動態效果”僅僅是有客戶端呈現的視覺上的動態,與動態網頁并不是同一個概念。
和諧統一
靜態網頁和動態網頁各有特點,網站采用動態網頁還是靜態網頁主要取決于網站的功能需求和網站內容的多少,如果網站功能比較簡單,內容更新量不是很大,采用純靜態網頁的方式會更簡單,反之一般要采用動態網頁技術來實現。
靜態網頁是網站建設的基礎,靜態網頁和動態網頁之間也并不矛盾,為了網站適應搜索引擎檢索的需要,即使采用動態網站技術,也可以將網頁內容轉化為靜態網頁發布。
動態網站也可以采用靜動結合的原則,適合采用動態網頁的地方用動態網頁,如果必要使用靜態網頁,則可以考慮用靜態網頁的方法來實現,在同一個網站上,動態網頁內容和靜態網頁內容同時存在也是很常見的事情。