現在主流的網站開發語言無外乎ASP、PHP、ASP.net、JSP等。從開始簡單的hmtl到複雜的服務語言,走過了10多個年頭,各種技術層出不窮,單個的主流技術也在不斷翻新的版本,現在分析下各種語言的區別、優勢、劣勢、開發注意事項!
※ 最基本的網站開發語言——HTML
HTML,又叫超文本標記語言,是網站開發語言中最基本的語言,幾乎每個伺服器語言都需要它的支持。
而目前HTML最新的修行版本是HTML5
HTML5是當下最主流的網頁標準,它的出現給在線應用和手機遊戲開發者帶來了不少新機會。基於HTML5,開發者可以製作自己的在線應用和網絡遊戲,而且適合任何終端設備和眾多支持HTML5的瀏覽器。
HTML5的優勢:
1.HTML5可跨平台運行
HTML5最主要的優勢就在於它適合眾多平台,從PC瀏覽器到手機、平板電腦,甚至將來的智能電視,只要設備瀏覽器支持HTML5,都可以直接運行。
2.自適應網頁設計
HTML5能自動適應不同設備的屏幕大小,根據屏幕寬度,自動調整布局。
3. 即時更新
更新HTML5遊戲和在線遊戲就好像平時更新頁面一樣,能即時更新。
4.還沒有專門的HTML5應用商店
HTML5應用區別於手機原生應用的重要地方在於其沒有統一的應用商店,這樣當HTML5應用發行和更新的時候,也就無需經過審核過程。
HTML5的不足:
1.HTML5的運作情況無法預測
雖然HTML5原先旨在服務各種設備,但我們依然無法確保其能夠順利適應各種硬件標準。
2.HTML5聲音處理是個大問題
聲音顯然在遊戲開發中佔據重要位置,但遺憾的是,這是HTML5的可用API與原生應用環境相比略遜一籌。
3.瀏覽器的HTML5兼容性不統一
雖然HTML5支持大部分瀏覽器,但對於那些依然採用Internet Explorer 6或舊版Safari、Opera的用戶,如果沒有更新他們的瀏覽器他們就無法訪問所有HTML5內容。
※ 動態服務器頁面——ASP
ASP是微軟(Microsoft)所開發的一種後台腳本語言,可用來創建動態交互式網頁並建立強大的web應用程序。當服務器收到對ASP文件的請求時,它會處理包含在用於構建發送給瀏覽器的HTML網頁文件中的服務器端腳本代碼。除服務器端腳本代碼外,ASP文件也可以包含文本、HTML和com組件調用。
ASP的優勢:
1.實現規模效益
ASP擁有應用系統所有權,能以一對多的租賃的形式提供有品質保證的應用技術服務,實現規模效益。
2.節約費用
由於省去了購買軟件和硬件等的前期費用,用戶可以租用較高級的應用軟件。
3.快速實現各種應用服務
ASP商有整合各方面資源的能力,可在短期內為用戶提供所需的解決方案。
4.強大的可擴展性
ASP具有強大的擴展性,可以實現與多種網絡、硬件設備的連接.
ASP的不足:
1.網絡的安全性和可靠性
企業將經營數據放在開放的平台上,最大的擔憂就是如何保證這些數據不被其他人破壞。
2.特殊需求難以滿足
由於ASP提供的是一對多的服務,所以用戶的一些特殊需求很難得到滿足。
3.需要很高的信用度
在實現ERP等高端的ASP應用時,用戶需要提供核心的經營資料,需要ASP商有很高的信用度。
4.缺乏行業標準
缺乏可以共同遵循的行業標準,ASP還處在發展初期,大家對它的理解不同,如產品和服務標準,收費標準等,不利於行業的健康發展。
※ 超文本預處理器——PHP
PHP的全名非常有趣,它是一個巢狀的縮寫名稱——「PHP: Hypertext Preprocessor」,打開縮寫還是縮寫。PHP是一種HTML 內嵌式的語言 。而 PHP 獨特的語法混合了C,Java,Perl以及 PHP 式的新語法。它可以比 CGI 或者 Perl 更快速地執行動態網頁。
PHP的優勢
1.源代碼完全公開
PHP提供豐富的函數,而且往後還會不斷地有新的函數庫加入,以及不停地更新,這使得在程式設計方面有着更好的資源,同時還能在幾乎所有平台上良好工作。
3.快捷性
程序開發快,運行快,技術本身學習快。因為PHP可以被嵌入於HTML語言,它相對於其他語言。編輯簡單,實用性強,更適合初學者。
4.跨平台性強
由於PHP是運行在服務器端的腳本,可以運行在UNIX、LINUX、WINDOWS、Mac OS、Android等平台
PHP的不足
1. 對遞歸的不良支持
遞歸是一種函數調用自身的機制,這是一種強大的特性可以把某些複雜的東西變得很簡單,但不幸的是,PHP並不擅長遞歸。
2.許多PHP模塊都不是線程安全的
PHP的發明者說PHP的核心是線程安全的,但是非核心模塊不一定是。如果你想要在PHP腳本中使用這種模塊,這有可能會使你的腳本未必合適Apache的多線程模式。
3.不標準的日期格式字符
很多程序員對日期格式字符都很熟悉,它是從UNIX和C語言中來的,而且其他一些編程語言採用了這個標準,但是很奇怪的,PHP有它自己的一套完全不兼容的日期格式字符。
混亂的許可證
你也許認為PHP是免費的,所有的在手冊中提到的PHP模塊也是免費的。錯了!例如,如果你想在PHP中生成PDF文件,你會在手冊中發現兩個模塊:PDF 和 ClibPDF,且這兩個都是有商業許可證的。所以,你所使用的每個模塊,你都要確保你同意他的許可證。
官方最新發佈版本:PHP7
2015年11月,PHP7正式版本的發佈,對於上一個系列的PHP5.*,可以說是一個大規模的革新,尤其是在性能方面實現跨越式的大幅提升。
※ 不僅僅是ASP的簡單升級版——ASP.NET
ASP.net是Microsoft.net的一部分,作為戰略產品,不僅僅是 Active Server Page (ASP) 的下一個版本;它還提供了一個統一的 Web 開發模型,其中包括開發人員生成企業級 Web 應用程式所需的各種服務。在語法上,ASP.NET很大程度上與 ASP 相容,同時它還提供一種新的編程模型和結構,可生成伸縮性和穩定性更好的應用程式,並提供更好的安全保護。可以通過在現有 ASP 應用程式中逐漸添加 ASP.NET 功能,能隨時增強 ASP 應用程式的功能。
ASP.NET的優點
1.可管理性
ASP.NET 使用基於文本的、分級的配置系統,簡化了將設置應用於服務器環境和 Web 應用程序的工作。因為配置信息是存儲為純文本的,因此可以在沒有本地管理工具的幫助下應用新的設置。配置文件的任何變化都可以自動檢測到並應用於應用程序。
2.增強的性能
ASP.NET 是運行在服務器上的已編譯代碼。與傳統的 Active Server Pages (ASP) 不同,ASP.NET 能利用早期綁定、實時編譯、本機優化和全新的緩存服務來提高性能。
3.擴展性和可用性
ASP.NET 被設計成可擴展的、具有特別專有的功能來提高群集的、多處理器環境的性能。此外,Internet 信息服務 (IIS) 和 ASP.NET 運行時密切監視和管理進程,以便在一個進程出現異常時,可在該位置創建新的進程使應用程序繼續處理請求。
4.與現有 ASP 應用程序的兼容性
ASP 和 ASP.NET 可並行運行在 IIS Web 服務器上而互不衝突;不會發生因安裝 ASP.NET 而導致現有 ASP 應用程序崩潰的可能。ASP.NET 僅處理具有 .ASPx 文件擴展名的文件。具有 .ASP 文件擴展名的文件繼續由 ASP 引擎來處理。然而,應該注意的是會話狀態和應用程序狀態並不在 ASP 和 ASP.NET 頁面之間共享。
ASP.NET的不足
在內存使用和執行時間方面耗費非常大,者大部分歸根於較長的代碼路徑。對基於Web的應用程序,這些局限可能是嚴重的問題,因為Web上,應用程序可能擴展為每秒成千上萬的用戶。
※ Java服務器頁面——JSP
JSP其根本是一個簡化的Servlet設計,而JSP技術優點類似ASP技術,它是在傳統網頁HTML文件中插入Java程勛短,從而形成JSP文件。
Servlet設計是HTML代碼和後台程序分開的,當伺服器接到客戶端的請求後,Servlet就會進行應答。當請求被Servlet載入時,便處於已執行狀態。對於以後其他用戶的請求,它並不打開進程,而是打開一個線程,將結果發送給客戶。由於線程與線程之間可以通過生成自己的父線程來實現資源共用,這樣就減輕了伺服器的負擔,所以,Java Servlet可以用來做大規模的應用服務。
JSP的優點
1.系統的多平台支持
基本上可以在所有平台上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴展。相比ASP的局限性JSP的優勢是顯而易見的。
2.強大的可伸縮性
從只有一個小的Jar文件就可以運行Servlet/JSP,到由多台服務器進行集群和負載均衡,到多台Application進行事務處理,消息處理,一台服務器到無數台服務器,Java顯示了一個巨大的生命力。
3.多樣化和功能強大的開發工具支持
這一點與ASP很像,Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,並且其中許多已經可以順利的運行於多種平台之下。
4.支持服務器端組件
web應用需要強大的服務器端組件來支持,開發人員需要利用其他工具設計實現複雜功能的組件供web頁面調用,以增強系統性能。JSP可以使用成熟的JAVA BEANS 組件來實現複雜商務功能。
JSP的不足:
(1) 與ASP也一樣,Java的一些優勢正是它致命的問題所在。正是由於為了跨平台的功能,為了極度的伸縮能力,所以極大的增加了產品的複雜性。
(2) Java的運行速度是用class常駐內存來完成的,所以它在一些情況下所使用的內存比起用戶數量來說確實是「最低性能價格比」了。
目前可以說,ASP確實快過時了,在未來PHP,JSP和ASP.net將會有巨大的潛力。
※ ASP、PHP、ASP.net、JSP的開發難度比較
PHP的搭建服務器環境相對複雜(需要安裝Apache + MySql + PHP),而Asp的搭建環境比較簡單(只需要安裝IIS就可以了),所以學PHP的門檻比Asp的門檻要高,所以很多人就偏向Asp學習的人就多了,自然研究Asp漏洞的人就多了,而PHP會的人就少,所以研究漏洞的人就更少了,從這點來說PHP的安全性比ASP的安全性要高些。而JSP我認為是最難的,開發時間最長,適合團隊開發。至於ASP.net開發容易周期短適合中小型項目、安全穩定方面都還可以。