Web開發的發展歷史


了解一下Web開發相關的歷史,相關技術的演進歷程,知其前世今生,非常有助於加深Web開發相關技術的理解和認識。

下面是對網上幾篇相關文章的總結和摘要: 

1. Web開發的發展史 

對過去的15年來,Web開發從最初的純HTML到CGI、PHP/JSP/ASP、Ajax、Rails、NodeJS的這個過程進行了簡要的介紹。

http://blog.jobbole.com/45169/

2. Web開發技術的演變

靜態頁面時代、CGI時代、PHP、J2EE、Web層框架、摒棄EJB運動、Ajax、Ruby on Rails、JSF和CDI(可視化)、異步化的發展趨勢。

http://blog.jobbole.com/45170/

 

1)靜態內容的網站

HTML技術,主要是文本和圖片(包括gif動態圖片)。

特點:簡單,只能做信息的展示,無法同用戶進行交互。

 

2)最早的動態網站

主要采用CGI/Perl腳本技術,能夠實現內容動態,具備了交互性,服務器能夠訪問文件系統或數據庫。

缺點:伸縮性差(為每個請求分配一個新的進程)、安全性差(直接使用系統環境變量和文件系統)、腳本組織混亂並且缺少一種結構化的構造動態應用程序的方式。

 

3)有了參考模型的動態網站

主要采用PHP、ASP、JSP等技術,在一個比較通用的參考架構下,能夠構造出伸縮性良好、安全的Web應用程序。

 

1994年,Rasmus Lerdorf創建了PHP。

剛剛開始只是一個簡單的用Perl語言編寫的程序,用來統計他自己網站的訪問者。后來又用C語言重新編寫,包括可以訪問數據庫。多年來,PHP經過不斷的發展已經成為當前最熱門的Web開發語言。如今全世界82%的網站使用PHP,ASP.net是17%,Java是2.9%(數據來源:http://www.csdn.net/article/1970-01-01/2825720)。1995年,正式對外發布了1.0版,目前最新版是PHP 7.1.10(2016年12月1日發布)。

1995年,PHP1就是個快速實用的工具包。

1997年11月,PHP2是個基本完善的程序包。

1998年6月,PHP3有了更好的執行效果和清晰的結構,強大之處在於可擴展性,吸引了全世界大量的開發者加入並提交新模塊。

2000年5月,PHP4全新的引擎,性能提升了近10倍。同時,提高跨平台能力,開始支持面向對象(雖然還不完善)。

2004年7月,PHP5采用了第二代的Zend引擎。最大特色是引入面向對象的全部機制,引進了類型提示和異常處理。

PHP6,胎死腹中,是一個失敗的專案,雖然做了一些改進,但始終沒能發布正式版本,是一個被直接跳過的版本。

2015年11月,PHP 7(PHP NG):性能方面實現了跨越式提升,並引入了一些新特性。參考:PHP7革新與性能優化

更多內容可參考:PHP的歷史 http://php.net/manual/zh/history.php.php PHP發展史

 

1996年,ASP 1.0誕生,簡化了Web開發。

原來要寫C語言,太難了;有了ASP只需要寫寫VBScript腳本或者JavaScript腳本即可,而且還有內部組件實現了cookie等高級功能,ADO(ActiveX Data Object)簡化了數據庫的相關操作。

1998年,微軟發布了ASP 2.0。

與ASP 1.0的主要區別在於它的外部組件是可以初始化的,這樣,在ASP程序內部的所有組件都有了獨立的內存空間,並可以進行事務處理。

2000年,微軟發不了ASP 3.0,隨着Windows 2000一同附帶。

優勢在於它使用了COM+,因而其效率會比它前面的版本要好,並且更穩定。

2001年,ASP·NET出現了。

幾乎完全是基於組件和模塊化的,Web應用程序的開發人員使用這個開發環境可以實現更加模塊化的、功能更強大的應用程序。

 

Java web的歷史待補充。

1997年6月,SUN公司的Pavni Diwanji編寫了Servlet 1.0規范。

1999年8月,Servlet 2.2發布,開始成為J2EE的一部分。

當前Servlet最新版是2013年5月發布的3.1, 屬於Java EE 7,支持非阻塞I/O和WebSocket。

Servlet 4.0正在開發過程。

參考:https://en.wikipedia.org/wiki/Java_servlet

Java EE的發展歷程:https://en.wikipedia.org/wiki/Java_EE_version_history

Java web開發技術的發展(從Servlet、JSP到模型一、模型二、框架、可視化開發):http://blog.csdn.net/javaeeteacher/article/details/6478450

 

4)Ajax:異步JavaScript和XML

局部更新,響應更快,真正用Web應用取代了Web頁面。典型的產品如Google Mail和Google Map。

 

5)Ruby on Rails:通過約定的規范方式開發Web應用

基於Ruby on Rails 5分鍾構建博客的演示完全征服了全世界的開發者。

第一次將廣泛應用於桌面應用的開發模式——MVC,搬到了Web應用開發領域。

 

6)客戶端開發技術的崛起

2007年到2010年的三種開發潮流:

一是智能手機和移動應用;二是非常流行的JavaScript庫——jQuery;三是Node.JS發布,通過JavaScript開發高性能的服務端程序!

 

7)客戶端開發技術的規范化

客戶端框架如Backbone、Ember、Derby、Meteor、AngularJS等等,簡化了客戶端的開發,並且也逐步形成了MVC的模式。

 

8)網絡架構異步化分布式的發展趨勢

 到了這里,可以說上層的各類技術都發展的差不多了,底層的技術又有了新的突破。

Netty是由JBOSS提供的一個java開源框架。
Netty提供異步的、事件驅動的網絡應用程序框架和工具,用以快速開發高性能、高可靠性的網絡服務器和客戶端程序。
Netty 是一個基於NIO的客戶,服務器端編程框架,使用Netty 可以確保你快速和簡單的開發出一個網絡應用,例如實現了某種協議的客戶,服務端應用。
Netty相當簡化和流線化了網絡應用的編程開發過程,例如,TCP和UDP的socket服務開發。

這是一段非常常見的、很官方的介紹。前面都好理解,從“基於NIO”就不知所雲了。

NodeJS也是一個異步化的、基於JavaScript的開發框架。

Java社區很快出現了和NodeJs有相同設計思路的項目,Vertx就是其中的優秀代表。
它充分借鑒了NodeJs和Erlang/OTP Actor模型的優秀設計,
利用分布式消息機制進行對象間通信,利用Netty進行網絡異步操作,
方法調用倡導異步調用,有自己的模塊化機制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM