成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

web程序開發(fā)概述

2024-03-23    分類: 網站建設

說到web程序開發(fā),必須先來說說什么是web應用程序。

Web應用程序是互聯網的產物。網絡誕生以前,軟件程序只能部署在單機上。局域網發(fā)明后,客戶端/服務器端(即c/s模式)的程序架構模式成為主流,隨著Internet和WWW的流行,以往的主機/終端和C/S都無法滿足當前的全球網絡開放、互連、信息隨處可見和信息共享的新要求,于是就出現了B/S型模式,即瀏覽器/服務器結構。它是C/S架構的一種改進,可以說屬于三層C/S架構。主要是利用了不斷成熟的WWW瀏覽器技術,用通用瀏覽器就實現了原來需要復雜專用軟件才能實現的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構造技術。通俗來講,web程序是一種運行在互聯網上的程序,它借助瀏覽器來運行,通過Web來訪問。Web應用程序大好處是用戶只需要有瀏覽器就可以訪問,不需要再安裝其他軟件。

B/S模式是web程序的重中之重,理解了B/S模式就理解了web程序,所以我們要著重講講,下圖是B/S的架構圖:

相對于其他幾種應用程序體系結構,B/S架構的web應用程序大的優(yōu)點是總體擁有成本低、維護方便、 分布性強、開發(fā)簡單,可以不用安裝任何專門的軟件就能 實現在任何地方進行操作,客戶端零維護,系統(tǒng)的擴展非常容易,只要有一臺能上網的電腦就能使用。傳統(tǒng)的C/S架構如果部署的客戶端比較多,系統(tǒng)管理人員如果需要在眾多電腦之間來回奔跑,效率和工作量是可想而知的,但B/S架構的軟件只需要管理服務器就行了,所有的客戶端只是瀏覽器,需要做的維護非常少。無論用戶的規(guī)模有多大,有多少分支機構都不會增加任何維護升級的工作量,所有的操作只需要針對服務器進行;如果是異地,只需要把服務器連接專網即可,實現遠程維護、升級和共享。

當然,Web應用程序首先是應用程序,和用標準的程序語言,如C、C++、DELPHI等語言編寫出來的程序沒有什么本質上的不同。

下面我重點來說說web開發(fā)技術的演化

靜態(tài)網頁的誕生(HTML)

1989年,在歐洲粒子物理實驗室的IT部門工作的Tim Berners-Lee向其領導提出了一項名為Information Management: A Proposal的提議:使來自世界各地的遠程站點的研究人員能夠組織和匯集信息,在個人計算機上訪問大量的科研文獻,并建議在文檔中鏈接其他文檔,這就是Web的原型。1991年,Tim Berners Lee在alt.hypertext新聞組貼出了一份關于World Wide Web的簡單摘要,標志了Web頁面在Internet上的首次登場。最早Web主要被一幫科學家們用來共享和傳遞信息,全世界的Web服務器也就幾十臺。第一個Web瀏覽器是Berners Lee在NeXT機器上實現,也只能跑在NeXT機器上,蘋果和喬布斯的粉絲對NeXT的歷史肯定耳熟能詳。真正使得Web開始流行起來的是Mosaic瀏覽器,這便是曾經大名鼎鼎的Netscape Navigator的前身。Berners Lee在1993年建立了萬維網聯盟(World Wide Web Consortium,W3C),負責Web相關標準的制定。瀏覽器的普及和W3C的推動,使得Web上可以訪問的資源逐漸豐富起來。這個時候Web的主要功能就是瀏覽器向服務器請求靜態(tài)HTML信息。95年的時候馬云在美國看到了互聯網,更準確的說他其實看到的就是Web,阿里早先做的黃頁也就是把企業(yè)信息通過進行HTML展示的Web應用。

在互聯網早期,網站只是簡單的信息呈現,網民不能與網站互動,通俗的說就是能看不能寫,后來人們把這個時期叫做web1.0時代。

動態(tài)內容的出現:CGI

最初在瀏覽器中主要展現的是靜態(tài)的文本或圖像信息,GIF圖片則第一次為HTML頁面引入了動態(tài)元素。不過人們已經不僅僅滿足于訪問放在Web服務器上的靜態(tài)文件,JavaScript誕生之后,可以用來更改前端DOM的樣式,實現一些類似于時鐘之類的小功能。那時候的JavaScript僅限于此,大部分的前端界面還很簡單,顯示的都是純靜態(tài)的文本和圖片。這種靜態(tài)頁面不能讀取后臺數據庫中的數據,1993年CGI(Common Gateway Interface)出現了,Web上的動態(tài)信息服務開始蓬勃興起。CGI定義了Web服務器與外部應用程序之間的通信接口標準,因此Web服務器可以通過CGI執(zhí)行外部程序,讓外部程序根據Web請求內容生成動態(tài)的內容。Perl因為跨操作系統(tǒng)和易于修改的特性成為CGI的主要編寫語言。當然,CGI可以用任何支持標準輸入輸出和環(huán)境變量的語言編寫,比如Shell腳本,C/C++語言,只要符合接口標準即可。比如你用C語言編寫CGI程序,你把希望返回的HTML內容通過printf輸出就可以發(fā)送給Web服務器,進而返回給用戶。

Web編程腳本語言:PHP/ASP/JSP

為了使得Web更加充滿活力,以PHP、JSP、ASP.NET為代表的動態(tài)頁面技術相繼誕生。這個時候我們已經可以在Web上提供動態(tài)功能了,比如網站訪問的計數,表單的處理。CGI對每個請求都會啟動一個進程來處理,因此性能上的擴展性不高。另外,想象一下用在Perl和C語言中的程序中去輸出一大堆復雜的HTML字符串,是不是有點蛋疼,可讀性和維護性是個大問題。為了處理更復雜的應用,一種方法是把HTML返回中固定的部分存起來(我們稱之為模版),把動態(tài)的部分標記出來,Web請求處理的時候,你的程序先生成那部分動態(tài)的內容,再把模版讀入進來,把動態(tài)內容填充進去,形成最終返回。舉個例子,搜索一個關鍵詞,搜索引擎的Web服務器可以先從后臺索引服務器里拿到數據,然后把這些數據填充到返回結果的HTML模版中,返回給瀏覽器。但是這件事情自己來做顯然太繁瑣而且是重復勞動。于是1994年的時候,PHP誕生了,PHP可以把程序(動態(tài)內容)嵌入到HTML(模版)中去執(zhí)行,不僅能更好的組織Web應用的內容,而且執(zhí)行效率比CGI還更高。之后

PHP(PHP:Hypertext Preprocessor)最初是由Rasmus Lerdorf在1995年開始開發(fā)的,現在PHP的標準由PHP Group維護。PHP是一種開源的通用計算機腳本語言,尤其適用于網絡開發(fā)并可嵌入HTML中使用。PHP的語法借鑒吸收C語言、Java和Perl等流行計算機語言的特點,易于一般程序員學習。PHP的主要目標是允許網絡開發(fā)人員快速編寫動態(tài)頁面。

JSP(JavaServer Pages)是由Sun公司倡導和許多公司參與共同創(chuàng)建的一種使軟件開發(fā)者可以響應客戶端請求,從而動態(tài)生成HTML、XML或其他格式文檔的Web網頁的技術標準。JSP技術是以Java語言為基礎的。1999年,JSP1.2規(guī)范隨著J2EE1.2發(fā)布。

ASP(Active Server Pages)1.0是Microsoft(微軟公司)開發(fā)的服務器端腳本環(huán)境,可用來創(chuàng)建動態(tài)交互式網頁并建立強大的web應用程序。 在1996年隨著IIS 3.0 而發(fā)布。2002年,ASP.NET發(fā)布,用于替代ASP。

隨著這些動態(tài)服務器頁面技術的出現,頁面不再是靜止的,頁面可以獲取服務器數據信息并不斷更新。以Google為代表的搜索引擎以及各種論壇相繼出現,使得Web充滿了活力。

分布式企業(yè)計算平臺:J2EE/.Net

Web開始廣泛用于構建大型應用時,在分布式、安全性、事務性等方面的要求催生了J2EE(現在已更名為Java EE)平臺在1999年的誕生,從那時開始為企業(yè)應用提供支撐平臺的各種應用服務器也開始大行其道。Java Servlet、Java Server Pages (JSP)和Enterprise Java Bean (EJB )是Java EE中的核心規(guī)范,Servlet和JSP是運行在服務器端的Web組件,EJB運行在服務器端的業(yè)務組件,是一種分布式組件技術。

從Web誕生至2005年,一直處于后端重、前端輕的狀態(tài)。

前端技術的發(fā)展:

XHTML

1999 W3C 發(fā)布 HTML 4.01 標準,同年微軟推出用于異步數據傳輸的 ActiveX,隨即各大瀏覽器廠商模仿實現了 XMLHttpRequest(AJAX 雛形)。

2000: W3C 采用了一個大膽的計劃,把 XML 引入 HTML,XHTML1.0 作為 W3C 推薦標準發(fā)布

2001.5 W3C 推出了 CSS 3.0 規(guī)范草案

2002-2006 XHTML 2.0 最終放棄

2009 W3C 宣布 XHTML2.0 不再繼續(xù),宣告死亡

JavaScript

Web應用同時涉及到瀏覽器端和服務器端,之前的介紹除了簡單提到了CSS規(guī)范之外,主要關注的是服務器端的技術發(fā)展。在客戶端,1995年NetScape公司設計的JavaScript被用作瀏覽器上運行腳本語言為網頁增加動態(tài)性。微軟隨后推出類似JScript,但是缺乏統(tǒng)一的語言規(guī)范,使得瀏覽器兼容性成為一個程序員的夢魘。JavaScript最終被提交到歐洲計算機制造商協會(ECMA),做為中立的ECMA開始了標準化腳本語言之路,并將其命名為ECMAScript。JavaScript可以響應瀏覽器端的用戶事件,檢測表單的正確性,動態(tài)修改HTML頁面結構DOM,因此可以減少與服務器端的通信開銷,并且做出很酷的頁面動態(tài)效果。2005年出現的AJAX這個概念使得JavaScript再次大放異彩。

ECMAScript6

JavaScript語言是ECMAScript標準的一種實現,截止2017年2月,ECMAScript一共發(fā)布了7個版本。

1997年6月, ECMAScript 1.0標準發(fā)布。

1998年6月,ECMAScript 2.0發(fā)布。

1999年12月,ECMAScript 3.0發(fā)布。

2007年10月,Mozilla主張的ECMAScript 4.0版草案發(fā)布,對3.0版做了大幅升級,該草案遭到了以Yahoo、Microsoft、Google為首的大公司的強烈反對,JavaScript語言的創(chuàng)造者Brendan Eich和IE架構師Chris Wilson甚至在博客上就ES4向后兼容性問題打起了口水仗,最后由于各方分歧太大,ECMA開會決定廢棄中止ECMAScript 4.0草案。經各方妥協,在保證向下兼容的情況下,將部分增強的功能放到ECMAScript 3.1標準中,將原有ECMAScript 4.0草案中激進的功能放到以后的標準中。不久,ECMAScript 3.1就改名為ECMAScript 5。

2009年12月,本著Don’t break the web原則,ECMAScript 5發(fā)布。新增了strict模式、屬性getter和setter等。

2011年6月,ECMAScript 5.1發(fā)布。

2015年6月,ECMAScript 6.0發(fā)布。該版本增加了許多新的語法,包括支持let、const、Arrow function、Class、Module、Promise、Iterator、Generator、Set、Map、async、Symbol、Proxy、Reflect、Decorator等。TC39委員會計劃以后每年都發(fā)布一個新版本的ECMAScript,所以ECMAScript 6.0改名為ECMAScript 2015。

2016年6月,在ECMAScript 2015的基礎上進行了部分增強,發(fā)布了ECMAScript 2016。

在ECMAScript的各個版本中,ECMAScript 6.0無疑最受人矚目的,它增加了許多新特性,極大拓展了JavaScript語法和能力,以至于許多瀏覽器都只能支持部分ES6中的新特性。隨之,Babel和TypeScript逐漸流行起來,編寫ES6代碼,然后用Babel或TypeScript將其編譯為ES5等瀏覽器支持的JavaScript。

ECMAScript以后每年將會發(fā)布一個新版本,這無疑將持續(xù)促使瀏覽器廠商不斷為JavaScript注入新的功能與特性,JavaScript走上了快速發(fā)展的正軌。

javascript技術發(fā)展的過程中出現了很多優(yōu)秀的類庫和組件,其中,jQuery獨領風騷,幾乎成了所有網站的標配。Dojo、YUI、ExtJS等提供了很多組件,這使得開發(fā)復雜的企業(yè)級Web應用成為可能。

AJAX

在Web最初發(fā)展的階段,前端頁面要想獲取后臺信息需要刷新整個頁面,這是很糟糕的用戶體驗。

AJAX即Asynchronous JavaScript and XML(異步的JavaScript與XML技術),指的是一套綜合了多項技術的瀏覽器端網頁開發(fā)技術,可以基于JavaScript的XmlHttpRequest的用于創(chuàng)建交互性更強的Web應用。AJAX是一種已有技術的mashup,多種技術組合在一起形成了其特色和優(yōu)勢,早在1998年就已經開始有人使用。Google在地圖和Gmail等產品中對這項技術的深入應用,以及AJAX這個吸引眼球的名字的提出,使其正式站在了聚光燈下,開始吸引無數人的目光。我們知道Web應用中用戶提交表單時就向Web服務器發(fā)送一個請求,服務器接收并處理傳來的表單,并返回一個新的網頁。而前后兩個頁面中的往往大部分HTML代碼是一樣的,每次都返回整個頁面內容是一種帶寬資源的浪費。而AJAX應用僅向服務器發(fā)送并取回必須的數據,并在客戶端采用JavaScript處理來自服務器響應,更新頁面的局部信息。這樣不僅瀏覽器和服務器的數據交換大大減少,而且客戶端也可以更加快速地響應用戶操作。如果你用Gmail就應該知道,Gmail從來都不刷新頁面,所有的請求都是通過AJAX獲取數據進行局部更新。AJAX的出現,以及諸如EXTJS、DOJO等一些前端開發(fā)框架的出現,也使得單頁應用(Single Page Application)在這個時候流行起來。

隨著AJAX的流行,越來越多的網站使用AJAX動態(tài)獲取數據,這使得動態(tài)網頁內容變成可能,像Facebook這樣的社交網絡開始變得繁榮起來,前端一時間呈現出了欣欣向榮的局面。

AJAX使得瀏覽器客戶端可以更方便地向服務器發(fā)送數據信息,這促進了Web 2.0的發(fā)展。

HTML5

1999年,W3C發(fā)布了HTML 4.0.1版本,在之后的幾年,沒有再發(fā)布更新的Web標準。隨著Web的迅猛發(fā)展,舊的Web標準已不能滿足Web應用的快速增長。

2004年6月,Mozilla基金會和Opera軟件公司在萬維網聯盟(W3C)所主辦的研討會上提出了一份聯合建議書,其中包括Web Forms 2.0的初步規(guī)范草案。建議舉行一次投票,以表決W3C是否應該擴展HTML和DOM,從而滿足Web應用中的新需求。研討會最后以8票贊成,14票反對否決此建議,這引起一些人的不滿,不久后,部分瀏覽器廠商宣布成立網頁超文本技術工作小組(WHATWG),以繼續(xù)推動該規(guī)范的開發(fā)工作,該組織再度提出Web Applications 1.0規(guī)范草案,后來這兩種規(guī)范合并形成HTML5。2007年,獲得W3C接納,并成立了新的HTML工作團隊。2008年1月22日,第一份正式草案發(fā)布。

盡管HTML5在網絡開發(fā)人員中非常出名了,但是它成為主流媒體的一個話題是在2010年的4月,當時蘋果公司的CEO喬布斯發(fā)表一篇題為對Flash的思考的文章,指出隨著HTML5的發(fā)展,觀看視頻或其它內容時,Adobe Flash將不再是必須的。這引發(fā)了開發(fā)人員間的爭論,包括HTML5雖然提供了加強的功能,但開發(fā)人員必須考慮到不同瀏覽器對標準不同部分的支持程度的不同,以及HTML5和Flash間的功能差異。

在第二次瀏覽器大戰(zhàn)中,各個瀏覽器廠商都以提升JavaScript運行效率和支持HTML5各種新特性為主要目標,促進了瀏覽器的良性競爭。

Node.js的爆發(fā)

早在1994年,Netspace就公布了其Netspace Enterprise Server中的一種服務器腳本實現,叫做LiveWire,是最早的服務器端JavaScript,甚至早于瀏覽器中的JavaScript。對于這門圖靈完備的語言,Netspace很早就開始嘗試將它用在后端。

微軟在1996年發(fā)布的IE 3.0中內嵌了自己的JScript語言,其兼容JavaScript語法。1997年年初,微軟在它的服務器IIS 3.0中也包含了JScript,這就是我們在ASP中能使用的腳本語言。

1997年,Netspace為了用Java實現JavaScript而創(chuàng)建了Rhino項目,最終Rhino演變成一個基于Java實現的JavaScript引擎,由Mozilla維護并開源。Rhino可以為Java應用程序提供腳本能力。2006年12月,J2SE 6將Rhino作為Java默認的腳本引擎。

SpiderMonkey是Mozilla用C/C++語言實現的一個JavaScript引擎,從Firefox 3.5開始作為JavaScript編譯引擎,并被CouchDB等項目作為服務端腳本語言使用。

可以看到,JavaScript最開始就能同時運行在前后端,但是在前后端的待遇卻不盡相同。隨著Java、PHP、.Net等服務器端技術的風靡,與前端瀏覽器中的JavaScript越來越流行相比,服務端JavaScript逐漸式微。

Node.js的出現吸引了很多前端開發(fā)人員開始用JavaScript開發(fā)服務器代碼,其異步編程風格也深受開發(fā)人員的喜愛。Node.js的偉大不僅在于拓展了JavaScript在服務器端的無限可能,更重要的是它構建了一個龐大的生態(tài)系統(tǒng)。2010年1月,NPM作為Node.js的包管理系統(tǒng)首次發(fā)布。開發(fā)人員可以按照CommonJS的規(guī)范編寫Node.js模塊,然后將其發(fā)布到NPM上面供其他開發(fā)人員使用。目前NPM具有40萬左右的模塊,是世界上大的包模塊管理系統(tǒng)。2016年常見包管理系統(tǒng)模塊數量,NPM高居榜首

Node.js也催生了node-webkit等項目,用JavaScript開發(fā)跨平臺的桌面軟件也成為可能。Node.js給開發(fā)人員帶來了無窮的想象,JavaScript大有一統(tǒng)天下的趨勢。

前后端分離 (前端框架+后端MVC+WebAPI)

后端框架主要分為j:ava和.NET兩大平臺

現今最流行的框架:

java架:SSM(spring+springmvc+mybatis)

前端MMVM框架

隨著開發(fā)人員對前端技術的重視和html5等技術的流行,前端不再是人們眼中的小玩意,以前在C/S中實現的桌面軟件的功能逐步遷移到了前端,前端的代碼邏輯逐漸變得復雜起來。

移動Web和Hybrid App

移動瀏覽器對HTML5支持程度(2009-2017)

移動瀏覽器的發(fā)展,導致了流量入口逐漸從PC分流到移動平臺,這是Web發(fā)展的新機遇。移動Web面臨著更大的碎片化和兼容性問題,jQuery Mobile、,Sencha Touch、Framework7、Ionic,bootstrap等移動Web框架、響應式框架也隨之出現。

相比于Native App,移動Web開發(fā)成本低、跨平臺、發(fā)布周期短的優(yōu)勢愈發(fā)明顯,但是Native App的性能和UI體驗要遠勝于移動Web。移動Web與Native App孰優(yōu)孰劣的爭論愈演愈烈,在無數開發(fā)者的實踐中,人們發(fā)現兩者不是替代關系,而是應該將兩者結合起來,取長補短,Hybrid技術逐漸得到認同。Hybrid技術指的是利用Web開發(fā)技術,調用Native相關API,實現移動與Web二者的有機結合,既能體現Web開發(fā)周期短的優(yōu)勢,又能為用戶提供Native體驗。

結語

Web技術依然在快速發(fā)展,Web本身的基礎規(guī)范也在不斷完善,HTML5、es6和CSS3引入了更多激動人心的特性?;仡橶eb的發(fā)展歷史,從某個角度看,就是抽象層次不斷提高的一個過程,更高的抽象層次屏蔽更低層的復雜性,從而提高開發(fā)效率。每當技術發(fā)展到一定程度,出現某些局限性的時候,就會有更優(yōu)秀的技術出現來突破這些局限性。其實這是計算機技術發(fā)展的一個普遍規(guī)律,比如高級語言的出現屏蔽了匯編語言的復雜性,幫助我們更快速的編程;數據庫技術的出現使得我們無需關心物理存儲和訪問細節(jié),寫簡單的SQL語句就能搞定,更進一步,ORM框架使得我們通過一條語句調用一個類的一個方法就能方便就行數據操作。我們應該讓自己的技術視野具備一定的高度和廣度,看到一門技術的發(fā)展規(guī)律和發(fā)展歷程,這是一種技術修養(yǎng)的體現,其實跟人文修養(yǎng)是一樣的。同時也應該具有一定的深度,因為我們往往站在比較高的抽象層次,比如今天你寫幾行代碼就能把數據庫創(chuàng)建好,增刪改查的功能也自動生成好了,但是成為高手需要你對底層的原理機制有更透徹的理解,真正遇到問題的時候才能抽絲剝繭迎刃而解。

非常感謝您讀完創(chuàng)新互聯的這篇文章:"web程序開發(fā)概述",僅為提供更多信息供用戶參考使用或為學習交流的方便。我們公司提供:網站建設、網站制作、官網建設、SEO優(yōu)化、小程序制作等服務,歡迎聯系我們提供您的需求。

網站標題:web程序開發(fā)概述
分享路徑:http://jinyejixie.com/news16/321516.html

成都網站建設公司_創(chuàng)新互聯,為您提供營銷型網站建設、軟件開發(fā)、、標簽優(yōu)化、外貿建站企業(yè)網站制作

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都網站建設公司
苏尼特右旗| 石屏县| 汽车| 绥棱县| 酒泉市| 海城市| 罗平县| 洪湖市| 张家川| 高尔夫| 大名县| 康保县| 大名县| 贡嘎县| 大兴区| 扎鲁特旗| 扎鲁特旗| 岢岚县| 北川| 拜城县| 清水县| 蓬溪县| 普陀区| 卢氏县| 黎川县| 伽师县| 长丰县| 专栏| 临清市| 瓮安县| 嘉定区| 邵阳县| 泽库县| 隆尧县| 望江县| 临高县| 平塘县| 天气| 浮山县| 清丰县| 上栗县|