一.Web概況
20世紀(jì)80年代,使用互聯(lián)網(wǎng)的人還是少數(shù),“如何讓這部分人共享資料”成為課題。最初的想法是設(shè)計(jì)“超文本(HyperText)”,來(lái)相互關(guān)聯(lián)不同的文檔,進(jìn)而連成可相互訪問(wèn)并閱讀的Web。Web是由數(shù)以億計(jì)的客戶和服務(wù)器組成,這些客戶和服務(wù)器通過(guò)網(wǎng)絡(luò)連接,客戶可以是人或者瀏覽器,而服務(wù)器可以理解為物理服務(wù)器(安裝了Web服務(wù)器軟件)。如下圖所示:
Web(World Wide Web,萬(wàn)維網(wǎng))是一種基于超文本和HTTP的、全球性的、動(dòng)態(tài)交互的、跨平臺(tái)的分布式圖形信息系統(tǒng)。Web的發(fā)展已從1.0發(fā)展到3.0:
Web歷程 | 特點(diǎn) | 中心 | 代表 |
---|---|---|---|
Web1.0 | 門戶網(wǎng)站提供內(nèi)容、引導(dǎo)用戶訪問(wèn)感興趣的網(wǎng)站 | 信息 | 新浪、搜狐和網(wǎng)易 |
Web2.0 | 用戶自已提供、擁有和享用各種服務(wù)和內(nèi)容 | 人 | 淘寶、微博、微信 |
Web3.0 | 機(jī)器、網(wǎng)絡(luò)與人的交互,智能化服務(wù) | 機(jī)器 | 小蜜、百度小度 |
不論Web是1.0還是2.0還是3.0,其本質(zhì)就是一個(gè)網(wǎng)站。但用戶的體驗(yàn)卻發(fā)生了質(zhì)的變化。Web1.0時(shí)代,用戶的身份是信息的消費(fèi)者,是信息的被動(dòng)接收者,到了Web2.0時(shí)代,用戶既是信息的消費(fèi)者,也是生產(chǎn)者,關(guān)注的重點(diǎn)在“人”。再到Web3.0時(shí)代,機(jī)器能夠理解用戶的意圖,并推薦個(gè)性化的服務(wù)方案。如用戶輸入“周末怎么玩”,機(jī)器將結(jié)合你的位置、時(shí)間以及平時(shí)的興趣愛好,推薦一系列的景點(diǎn)、餐館、出行方式等等,一站式解決問(wèn)題。
二、Web流程
1.基礎(chǔ)鏈路
現(xiàn)在上網(wǎng)已經(jīng)是人們生活中的一部分,大家習(xí)慣于去點(diǎn)鏈接查信息,對(duì)于Web本身是如何運(yùn)轉(zhuǎn)的,很少去思考。但作為新時(shí)代的碼農(nóng)或者Web應(yīng)用的開發(fā)人員,我們需要清楚在用戶點(diǎn)鏈接之后究竟發(fā)生了什么,分別用到了什么技術(shù)。
在互聯(lián)網(wǎng)發(fā)展的今天,一個(gè)Web應(yīng)用不但要滿足海量用戶的高并發(fā)請(qǐng)求,而且還要快速響應(yīng)用戶的請(qǐng)求。所以一個(gè)典型的Web應(yīng)用基礎(chǔ)鏈接為:
當(dāng)一個(gè)用戶在瀏覽器輸入U(xiǎn)RL地址后,瀏覽器將:
①請(qǐng)求DNS服務(wù)器,將域名解析成對(duì)應(yīng)的IP地址;
②根據(jù)IP地址,發(fā)起網(wǎng)絡(luò)資源請(qǐng)求,靜態(tài)資源從CDN中獲取,如果CDN
沒有對(duì)應(yīng)資源,將向源服務(wù)器拉取資源;
③如果對(duì)外提供服務(wù)的服務(wù)器有多個(gè),則根據(jù)負(fù)載均衡進(jìn)行資源的獲取;
④服務(wù)器接收請(qǐng)求,并做邏輯處理響應(yīng)請(qǐng)求,返回請(qǐng)求資源;
⑤客戶端接收數(shù)據(jù)并進(jìn)行渲染展示。
2.數(shù)據(jù)流
下面我們從數(shù)據(jù)在“客戶端-網(wǎng)絡(luò)--服務(wù)端”的流向做下簡(jiǎn)單的說(shuō)明。在我們學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)時(shí),被灌輸?shù)闹R(shí)是網(wǎng)絡(luò)設(shè)備之間的通信都采用TCP\\IP協(xié)議,并在邏輯上劃分了四層:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層。在每層上,客戶端和服務(wù)端進(jìn)行對(duì)等通信。在用戶瀏覽網(wǎng)頁(yè)并點(diǎn)擊鏈接時(shí),生成HTTP數(shù)據(jù)從應(yīng)用層向下傳輸,經(jīng)過(guò)層層封裝,從網(wǎng)卡上將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上,在服務(wù)端又經(jīng)過(guò)層層解封裝,還原HTTP數(shù)據(jù),如下圖所示:
TCP\\IP模型在邏輯上的分層,每層都有對(duì)應(yīng)的職責(zé),這些職責(zé)又如何落實(shí)到具體的系統(tǒng)實(shí)現(xiàn)中呢?客戶端,操作系統(tǒng)提供了TCP\\IP協(xié)議除應(yīng)用層的大部分實(shí)現(xiàn),并向上提供Socket接口供瀏覽器調(diào)用。服務(wù)端,操作系統(tǒng)同樣提供了大部分功能,中間件實(shí)現(xiàn)了Socket和HTTP協(xié)議的轉(zhuǎn)換,使用Web應(yīng)用程序本身專注于處理HTTP數(shù)據(jù)。如下圖所示:
三. Web應(yīng)用
Web應(yīng)用建立在HTTP協(xié)議基礎(chǔ)之上的,我們對(duì)于底層的數(shù)據(jù)流向和解封裝可以不用過(guò)多關(guān)注,而將重心放在HTTP請(qǐng)求與響應(yīng)的日常任務(wù)和業(yè)務(wù)邏輯處理上。
①如何將HTTP協(xié)議公開給編程語(yǔ)言?
②如何實(shí)現(xiàn)請(qǐng)求參數(shù)到編程語(yǔ)言的數(shù)據(jù)綁定?
③如何驗(yàn)證數(shù)據(jù)?
④如何組織業(yè)務(wù)邏輯?
⑤如何實(shí)現(xiàn)編程語(yǔ)言對(duì)象到數(shù)據(jù)庫(kù)數(shù)據(jù)的轉(zhuǎn)換?
下圖是一個(gè)回答上述問(wèn)題的簡(jiǎn)單示例。
-
Web
+關(guān)注
關(guān)注
2文章
1252瀏覽量
69053 -
HTTP
+關(guān)注
關(guān)注
0文章
478瀏覽量
30757 -
信息系統(tǒng)
+關(guān)注
關(guān)注
0文章
197瀏覽量
20367
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論