浅谈什么是web
轉(zhuǎn)自:微點閱讀? ?https://www.weidianyuedu.com
簡單的說Web就是為用戶提供的一種在互聯(lián)網(wǎng)上瀏覽信息的服務(wù),Web服務(wù)是動態(tài)的、可交互的、跨平臺的和圖形化的。
Web服務(wù)為用戶打開了一扇獲取互聯(lián)網(wǎng)服務(wù)的大門,這些服務(wù)不僅僅包括信息瀏覽服務(wù),也包括各種交互式服務(wù),包括聊天、購物、學(xué)習(xí)等等內(nèi)容,可以說Web的出現(xiàn)釋放了互聯(lián)網(wǎng)巨大的力量。
Web應(yīng)用開發(fā)也經(jīng)過了幾代技術(shù)的不斷發(fā)展,目前Web開發(fā)依然是最重要的開發(fā)內(nèi)容之一。說到Web開發(fā)就一定會涉及到Web技術(shù)的基本呈現(xiàn)方式,基礎(chǔ)的技術(shù)包括超文本標(biāo)記語言(HTML)和HTTP協(xié)議,HTML是一種呈現(xiàn)數(shù)據(jù)的方式(給人看的),而HTTP則是一組通信的標(biāo)準(zhǔn)(語法、語義、時許),可以簡單的理解為HTTP攜帶HTML。
為了能夠更全面的了解Web,下面簡單的梳理一下Web發(fā)展的歷史,介紹一下其中涉及到的技術(shù)。
早期的Web服務(wù)比較簡單,用戶發(fā)出請求到達(dá)服務(wù)器之后,服務(wù)器給出對應(yīng)的回應(yīng),用戶通過瀏覽器把回應(yīng)的內(nèi)容(HTML)解析(呈現(xiàn))出來,看一個圖:
圖中有幾個重要的元素需要簡單的解釋一下,Browser代表瀏覽器,瀏覽器是發(fā)送消息和接受消息的終端,是用戶與Web服務(wù)交互的基本手段。用戶發(fā)送請求的內(nèi)容會封裝成request對象然后發(fā)送到服務(wù)端,ruquest中封裝了用戶的元信息和提交的數(shù)據(jù)信息,其中元信息就是用戶的基本信息,包括瀏覽器版本號、服務(wù)端口、使用的操作系統(tǒng)等內(nèi)容。
httpd是處理HTTP請求的服務(wù)(進(jìn)程),httpd會啟動相應(yīng)的服務(wù)來處理用戶的請求,往往是把服務(wù)端對應(yīng)的文件(HTML)封裝成response對象并返回給用戶,用戶的瀏覽器解析出response中的內(nèi)容并最終呈現(xiàn)給用戶。整個過程需要了解瀏覽器、服務(wù)器、資源(文件)三者之間的關(guān)系,以及各自所部署的位置。
早期的Web應(yīng)用多以靜態(tài)資源為主,把提供靜態(tài)資源服務(wù)的Web服務(wù)稱作為Web Site(網(wǎng)站),為了豐富Web服務(wù),定義了能夠進(jìn)行動態(tài)服務(wù)的Web Application,看一個圖:
Web Application的功能就非常強大了,它能夠動態(tài)處理業(yè)務(wù)邏輯。這里面新增加了兩個重要的角色,一個是CGI(公共網(wǎng)關(guān)接口),另一個是Database(數(shù)據(jù)庫)。CGI提供業(yè)務(wù)處理能力,數(shù)據(jù)庫提供數(shù)據(jù)存儲服務(wù)。CGI在服務(wù)端的執(zhí)行過程如圖所示:
CGI的出現(xiàn)解決了Web動態(tài)交互的問題,可以說Web服務(wù)的形式就更加豐富了,也由此開啟了一個Web開發(fā)的大時代。
雖然CGI的方式能解決動態(tài)交互問題,但是CGI自身也有諸多問題,比如擴展性差、處理能力不強、依賴平臺、重量級等,此時在Web領(lǐng)域推出了一個技術(shù)就是Java Web技術(shù),Java Web技術(shù)能夠有效解決這些問題,看一個處理流程圖:
通過與CGI的對比能夠看出,Servlet技術(shù)的資源消耗更少。由于Java Web表現(xiàn)出來的優(yōu)秀性能,所以在Web開發(fā)領(lǐng)域得到了廣泛的應(yīng)用。后來推出的JavaEE技術(shù)更是進(jìn)一步的解決了性能問題,為Web服務(wù)構(gòu)建大型應(yīng)用奠定了基礎(chǔ),看一個圖:
雖然目前Java Web技術(shù)已經(jīng)有了更多的方案,比如輕量級處理方案(Spring),但是Java Web卻是目前大型互聯(lián)網(wǎng)平臺的常見解決方案,看兩個圖:
以上就是Web服務(wù)的發(fā)展過程,包括技術(shù)發(fā)展的一個簡單介紹。
我做Java Web開發(fā)多年,目前也在帶Java開發(fā)團(tuán)隊,我會陸續(xù)在頭條寫一些關(guān)于Web技術(shù)方面的文章,對Web技術(shù)感興趣的朋友可以關(guān)注我的頭條號,相信一定會有所收獲。
總結(jié)
- 上一篇: 股票市场的心理防线(转自闽发论坛)
- 下一篇: 细数G1GC