如何通俗地講解Web是什么意思?
網(wǎng)友解答: 簡單的說Web就是為用戶提供的一種在互聯(lián)網(wǎng)上瀏覽信息的服務,Web服務是動態(tài)的、可交互的、跨平臺的和圖形化的。Web服務為用戶打開了一扇獲取互聯(lián)網(wǎng)服務的大門,這些服務不僅僅包
簡單的說Web就是為用戶提供的一種在互聯(lián)網(wǎng)上瀏覽信息的服務,Web服務是動態(tài)的、可交互的、跨平臺的和圖形化的。
Web服務為用戶打開了一扇獲取互聯(lián)網(wǎng)服務的大門,這些服務不僅僅包括信息瀏覽服務,也包括各種交互式服務,包括聊天、購物、學習等等內(nèi)容,可以說Web的出現(xiàn)釋放了互聯(lián)網(wǎng)巨大的力量。
Web應用開發(fā)也經(jīng)過了幾代技術(shù)的不斷發(fā)展,目前Web開發(fā)依然是最重要的開發(fā)內(nèi)容之一。說到Web開發(fā)就一定會涉及到Web技術(shù)的基本呈現(xiàn)方式,基礎(chǔ)的技術(shù)包括超文本標記語言(HTML)和HTTP協(xié)議,HTML是一種呈現(xiàn)數(shù)據(jù)的方式(給人看的),而HTTP則是一組通信的標準(語法、語義、時許),可以簡單的理解為HTTP攜帶HTML。
為了能夠更全面的了解Web,下面簡單的梳理一下Web發(fā)展的歷史,介紹一下其中涉及到的技術(shù)。
早期的Web服務比較簡單,用戶發(fā)出請求到達服務器之后,服務器給出對應的回應,用戶通過瀏覽器把回應的內(nèi)容(HTML)解析(呈現(xiàn))出來,看一個圖:
圖中有幾個重要的元素需要簡單的解釋一下,Browser代表瀏覽器,瀏覽器是發(fā)送消息和接受消息的終端,是用戶與Web服務交互的基本手段。用戶發(fā)送請求的內(nèi)容會封裝成request對象然后發(fā)送到服務端,ruquest中封裝了用戶的元信息和提交的數(shù)據(jù)信息,其中元信息就是用戶的基本信息,包括瀏覽器版本號、服務端口、使用的操作系統(tǒng)等內(nèi)容。
httpd是處理HTTP請求的服務(進程),httpd會啟動相應的服務來處理用戶的請求,往往是把服務端對應的文件(HTML)封裝成response對象并返回給用戶,用戶的瀏覽器解析出response中的內(nèi)容并最終呈現(xiàn)給用戶。整個過程需要了解瀏覽器、服務器、資源(文件)三者之間的關(guān)系,以及各自所部署的位置。
早期的Web應用多以靜態(tài)資源為主,把提供靜態(tài)資源服務的Web服務稱作為Web Site(網(wǎng)站),為了豐富Web服務,定義了能夠進行動態(tài)服務的Web Application,看一個圖:
Web Application的功能就非常強大了,它能夠動態(tài)處理業(yè)務邏輯。這里面新增加了兩個重要的角色,一個是CGI(公共網(wǎng)關(guān)接口),另一個是Database(數(shù)據(jù)庫)。CGI提供業(yè)務處理能力,數(shù)據(jù)庫提供數(shù)據(jù)存儲服務。CGI在服務端的執(zhí)行過程如圖所示:
CGI的出現(xiàn)解決了Web動態(tài)交互的問題,可以說Web服務的形式就更加豐富了,也由此開啟了一個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)域得到了廣泛的應用。后來推出的JavaEE技術(shù)更是進一步的解決了性能問題,為Web服務構(gòu)建大型應用奠定了基礎(chǔ),看一個圖:
雖然目前Java Web技術(shù)已經(jīng)有了更多的方案,比如輕量級處理方案(Spring),但是Java Web卻是目前大型互聯(lián)網(wǎng)平臺的常見解決方案,看兩個圖:
以上就是Web服務的發(fā)展過程,包括技術(shù)發(fā)展的一個簡單介紹。
我做Java Web開發(fā)多年,目前也在帶Java開發(fā)團隊,我會陸續(xù)在酷米寫一些關(guān)于Web技術(shù)方面的文章,對Web技術(shù)感興趣的朋友可以關(guān)注我的酷米號,相信一定會有所收獲。
如果有Web開發(fā)方面的問題,也可以咨詢我。
謝謝!
網(wǎng)友解答:既然是通俗的介紹,那就不要長篇大論,更不要晦澀難懂,尤其避免專業(yè)各名詞和架構(gòu)圖流程圖之類。
最好是比喻,打比方、講故事。
首先web就是網(wǎng)頁,打開瀏覽器看到的界面就是web。完了。就這么簡單。
了解一下:
網(wǎng)頁可以看成是一個word文檔或一張照片和一幅畫,很多網(wǎng)頁組成一個網(wǎng)站(類似一個大相冊),網(wǎng)絡就是把無數(shù)個網(wǎng)站用線連接了起來,使得彼此可以跳轉(zhuǎn)。因為連接它們的是一根根網(wǎng)線,看起來像網(wǎng)一樣,所以這個就叫net網(wǎng)絡,而基于net展現(xiàn)的給用戶看的頁面就是web網(wǎng)頁。
稍進一步:
再次web不只是頁面,而包含頁面背后很多的服務和接口等。因為要呈現(xiàn)一個頁面會經(jīng)歷很多步驟,需要解釋器、傳輸器、數(shù)據(jù)加工處理,服務容器等等非常多。這些隱藏在背后的我們稱之為后臺,而呈現(xiàn)出來給用戶看的通常稱之為前端。這就好比你看見電視畫面web,但是是通過衛(wèi)星傳輸體系net把畫面換遞給你,而畫面背后有很多隱藏的制作排播體系(后臺)。
最后:
web是相對client來講的一種技術(shù),基于HTML(Hyper Text Mark-up Language )超文本標記語言,是 Web 的描述語言。相對于client基于系統(tǒng)開發(fā)原生的應用,web有很多好處,比如跨平臺,無需下載,互相可以連接通信等等。web包含前端和后臺兩部分。web前端的呈現(xiàn)基于三種技術(shù):HTML、CSS、JavaScript,HTML用來格式化web,CSS用來美化web,JS則用來確定交互行為。而web后端的技術(shù)非常多,從cgi到java php .net再到python ruby nodejs go等等非常多,但總體來講就是對于數(shù)據(jù)的一種加工處理方式,最后輸出HTML給到前端解釋器(web瀏覽器)。