前端開發(fā)是做什么的,后端是做什么的?
一般來說前端和后端就是前者是為了用戶的可視化開發(fā),后者是為了前端需要的一些數(shù)據(jù),通過業(yè)務(wù)處理。
兩者相輔相成,但并非不可或缺。
沒有前端,程序仍然運行,但用戶可以我看不見,但他能感覺到。例如定時任務(wù)
沒有后端,用戶看到的是靜態(tài)頁面。這種靜態(tài)意味著數(shù)據(jù)是固定的或者沒有數(shù)據(jù)。比如純html。
說了這么多,前端開發(fā)和后端開發(fā)也針對不同的平臺劃分了不同的崗位。技術(shù)要求也不一樣。
比如一個web系統(tǒng)或者b/s架構(gòu)的網(wǎng)站,前端開發(fā)人員統(tǒng)稱為web前端開發(fā)工程師,后端開發(fā)人員統(tǒng)稱為后端開發(fā)工程師。
后端用了不同的技術(shù),片頭也是。比如用Java做后端,后端開發(fā)就是Java開發(fā)工程師。圍棋是圍棋開發(fā)工程師等等。
剛才我講了web方向。其實對于移動端來說,前端可以細(xì)分為Android和ios開發(fā)工程師。
還是那句話,因為技術(shù)不同。
但無論如何,前端要求最基礎(chǔ)的語言是htmlcssjs和angularreactvu
如何通俗地講解Web是什么意思?
簡單來說,Web就是用戶在互聯(lián)網(wǎng)上瀏覽信息的服務(wù)。Web服務(wù)是動態(tài)的、交互式的、跨平臺的和圖形化的。
Web服務(wù)為用戶獲取互聯(lián)網(wǎng)服務(wù)打開了一扇大門,互聯(lián)網(wǎng)服務(wù)不僅包括信息瀏覽服務(wù),還包括各種互動服務(wù),包括聊天、購物、學(xué)習(xí)等。可以說,Web的出現(xiàn)釋放了互聯(lián)網(wǎng)的巨大力量。
Web應(yīng)用程序打開經(jīng)過幾代技術(shù)發(fā)展,Web開發(fā)仍然是最重要的開發(fā)內(nèi)容之一。說到Web開發(fā),肯定會涉及到Web技術(shù)的基本呈現(xiàn)。基本技術(shù)包括超文本標(biāo)記語言(HTML)和HTTP協(xié)議。HTML是一種呈現(xiàn)數(shù)據(jù)的(給人看),而HTTP是一套通信標(biāo)準(zhǔn)(語法、語義、時序),可以簡單理解為HTTP攜帶HTML。
為了對網(wǎng)絡(luò)有更全面的了解,讓讓我們簡單梳理一下Web發(fā)展的歷史,并介紹一下所涉及的技術(shù)。
早期的Web服務(wù)相對簡單。用戶向服務(wù)器發(fā)送請求后,服務(wù)器給出相應(yīng)的響應(yīng),用戶通過瀏覽器解析(呈現(xiàn))響應(yīng)的內(nèi)容(HTML)。看一張圖:
圖中有幾個重要的元素需要簡單解釋一下。Browser代表瀏覽器,是發(fā)送和接收消息的終端,是用戶與Web服務(wù)交互的基本手段。用戶的內(nèi)容的請求將被封裝到一個請求對象中,然后發(fā)送到服務(wù)器。ruquest封裝了用戶的元信息和提交的數(shù)據(jù)信息,其中元信息是用戶的基本信息,包括瀏覽器版本號、服務(wù)端口、使用的操作系統(tǒng)等等。
Httpd是一個處理HTTP請求的服務(wù)(進程)。httpd將啟動相應(yīng)的服務(wù)來處理用戶請求,并且經(jīng)常把服務(wù)器對應(yīng)的文件(HTML)打包成一個響應(yīng)對象返回給用戶。用戶的瀏覽器解析響應(yīng)中的內(nèi)容,并最終呈現(xiàn)給用戶。整個過程需要了解瀏覽器、服務(wù)器和資源(文件)之間的關(guān)系,以及它們的部署位置。
早期的Web應(yīng)用大多基于靜態(tài)資源,提供靜態(tài)資源服務(wù)的Web服務(wù)被稱為Web站點。為了豐富Web服務(wù),定義了能夠提供動態(tài)服務(wù)的Web應(yīng)用。看到一個身影:
Web應(yīng)用的功能非常強大,可以動態(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)域引入了JavaWeb技術(shù),可以有效地解決這些問題。參見處理流程圖:
通過與CGI的對比,可以看出s。Ervlet技術(shù)消耗的資源更少。由于JavaWeb的優(yōu)異性能,它在Web開發(fā)領(lǐng)域得到了廣泛的應(yīng)用。后來JavaEE技術(shù)進一步解決了性能問題,為Web服務(wù)構(gòu)建大型應(yīng)用奠定了基礎(chǔ)。看到一個身影:
雖然目前針對JavaWeb技術(shù)的解決方案比較多,比如Spring,但是JavaWeb是目前大型互聯(lián)網(wǎng)平臺常用的解決方案。看兩個圖:
以上是Webservices的開發(fā)過程,包括技術(shù)開發(fā)的簡單介紹。
我做JavaWeb開發(fā)很多年了,目前領(lǐng)導(dǎo)一個Java開發(fā)團隊。我會陸續(xù)在頭條寫一些關(guān)于Web技術(shù)的文章。對Web技術(shù)感興趣的朋友可以關(guān)注我的頭條號,相信我會有所收獲。
如果你有任何關(guān)于Web開發(fā)的問題,也可以咨詢我。
謝謝你