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