到底什么是前端、后端、后臺(tái)???
時(shí)間:2024-02-16 07:15:01 | 來源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2024-02-16 07:15:01 來源:網(wǎng)站運(yùn)營(yíng)
到底什么是前端、后端、后臺(tái)啊?:重要內(nèi)容先提前放:
最常見的語境下:
前臺(tái),后臺(tái),指的是具體頁(yè)面。
前臺(tái),是用戶直接能看到的頁(yè)面,所有人都可以訪問。
后臺(tái),是有權(quán)限的運(yùn)營(yíng)人員或特殊用戶(比如淘寶賣家)用權(quán)限登陸后才看得到的頁(yè)面,除了能看到其他人看不到的報(bào)表外,在后臺(tái)還能修改前臺(tái)顯示給用戶看的內(nèi)容。
前端,后端,很多時(shí)候指的是人,即前/后端攻城獅。衍生含義為——前/后端攻城獅的工作內(nèi)容。
不嚴(yán)謹(jǐn)?shù)恼f法是:前端是寫代碼給瀏覽器看的。后端是寫代碼給服務(wù)器看的。
如果不是專業(yè)人士,在做IT項(xiàng)目的時(shí)候,請(qǐng)謹(jǐn)慎使用“前端”、“后端”這兩個(gè)詞,容易造成誤會(huì)。
你口中的前/后端,很多時(shí)候和程序猿理解的前/后端估計(jì)不是一個(gè)意思。因此,請(qǐng)盡量使用容錯(cuò)率更高的“前臺(tái)”、“后臺(tái)”這兩個(gè)詞。
漢語博大精深,加上每個(gè)公司的用詞也可能有自己的習(xí)慣,因此也有一些語境下,前臺(tái)約等于前端,后臺(tái)約等于后端。
以下是具體解釋最常見語境下的區(qū)分:
先來看看頁(yè)面層面。
我們來看看什么是前臺(tái):
前臺(tái),
是用戶直接能看到的頁(yè)面,所有人都可以訪問。比如上面這種隨處可見的導(dǎo)航。
但是項(xiàng)目結(jié)束后,乙方外包團(tuán)隊(duì)全跑路了,我這里又沒人會(huì)敲代碼,要改這個(gè)導(dǎo)航怎么辦?
當(dāng)當(dāng)當(dāng)當(dāng)!后臺(tái)閃亮登場(chǎng)!
我們可以讓乙方交付一種頁(yè)面,這種頁(yè)面能幫助我不用敲代碼就能修改以上這個(gè)導(dǎo)航。
后臺(tái),
是有權(quán)限的運(yùn)營(yíng)人員或特殊用戶(比如淘寶賣家)用權(quán)限登陸后才看得到的頁(yè)面,除了能看到其他人看不到的報(bào)表外,在后臺(tái)還能修改前臺(tái)顯示給用戶看的內(nèi)容。有了這樣一個(gè)頁(yè)面,連我的奶奶都會(huì)修改前臺(tái)顯示給用戶的內(nèi)容:
(除此之外,更復(fù)雜的場(chǎng)景下,還有“中臺(tái)”存在。這時(shí)前臺(tái)即展現(xiàn)層,后臺(tái)即數(shù)據(jù)層,中臺(tái)即邏輯層。中臺(tái)是什么則說來話長(zhǎng),但大體是為了讓前臺(tái)與后臺(tái)解藕更徹底,以便更快響應(yīng)用戶需求而存在的。)
至于前端(攻城獅)與后端(攻城獅)。不嚴(yán)謹(jǐn)?shù)恼f法是:
前端是寫代碼給瀏覽器看的。后端是寫代碼給服務(wù)器看的。
如果不是專業(yè)人士,在做IT項(xiàng)目的時(shí)候,請(qǐng)謹(jǐn)慎使用“前端”、“后端”這兩個(gè)詞,容易造成誤會(huì)。
你口中的前/后端,和程序猿理解的前/后端估計(jì)不是一個(gè)意思。因此,請(qǐng)盡量使用容錯(cuò)率較高的“前臺(tái)”、“后臺(tái)”這兩個(gè)詞。
前端和后端解釋起來有些麻煩且枯燥,感興趣的朋友可以繼續(xù)往下看:
當(dāng)你在百度敲下“如何找一個(gè)女朋友”,并按下搜索按鈕后,你的電腦就會(huì)發(fā)送一個(gè)請(qǐng)求給服務(wù)器,服務(wù)器會(huì)根據(jù)這個(gè)請(qǐng)求,來決定接下來的操作——1)監(jiān)視你的愛好。存“屬性:男屌絲。愛好:女?!比?shù)據(jù)庫(kù)。2)從數(shù)據(jù)庫(kù)里挖點(diǎn)什么“把妹神技”吐回給用戶,讓他覺得很厲害的樣子。根據(jù)這個(gè)過程,用戶就收到了他想要的東西,萬事大吉。
我勒個(gè)去?有33,400,000個(gè)方法找女朋友?男同胞們,你們還好意思單身?
絕大多數(shù)情況下,互聯(lián)網(wǎng)就是這樣運(yùn)行的——發(fā)東西給服務(wù)器,服務(wù)器再發(fā)回些什么東西。
這其實(shí)就是http協(xié)議的功能之一,關(guān)于http協(xié)議,這其實(shí)是一個(gè)大坑,在這里展開就沒完沒了了。
至于不符合上面說的絕大多數(shù)情況?那很可能就不是http協(xié)議拉,比如基于更上一層TCP協(xié)議的Websocket,不過這個(gè)扯得就會(huì)有點(diǎn)遠(yuǎn)了。
Websocket最常見的應(yīng)用就是我們經(jīng)常說的推送。所謂的推送,就是在你不發(fā)東西給服務(wù)器的情況下,服務(wù)器都會(huì)像舔狗一樣發(fā)東西給你。
咦?這個(gè)故事就那么簡(jiǎn)單嗎?那還要分什么前端后端?沒錯(cuò),在遙遠(yuǎn)的年代,確實(shí)不分什么前端后端,反正都叫程序猿就對(duì)了。
那為什么前端和后端被搞出來了呢?
在上面這個(gè)簡(jiǎn)單的故事中,其實(shí)涉及到三個(gè)很重要的東西——瀏覽器、服務(wù)器、數(shù)據(jù)庫(kù)。
以php項(xiàng)目常見的流程來說(php是某種語言,可以理解成和python、java差不多的東西),其過程一般是類似于下面這張圖。下面我們來說說瀏覽器、服務(wù)器和數(shù)據(jù)庫(kù)
瀏覽器是“翻譯”程序猿寫的代碼給用戶看的。“翻譯”的過程,很多人稱之為渲染(render)。是不是聽上去這個(gè)詞挺高大上的。
寫給瀏覽器看的,主要是html文檔,html文檔主要會(huì)使用html、css、JavaScript三種語言。久而久之,就有一些程序猿因?yàn)殚L(zhǎng)期受這方面工作的錘nue煉dai,而變得更擅長(zhǎng)這塊工作了。
除此之外,是誰根據(jù)請(qǐng)求來操作數(shù)據(jù)庫(kù)的?是服務(wù)器。服務(wù)器也是電腦,讓電腦自動(dòng)辦事來讀寫數(shù)據(jù)庫(kù),就需要寫程序。能操作電腦的玩意就有很多了,比如經(jīng)常被提到的java、C++都可以。同樣地,有些程序猿搞著搞著,就變得更擅長(zhǎng)這部分工作了。
這其實(shí)很多時(shí)候涉及的是操作系統(tǒng)的命令調(diào)用,關(guān)于操作系統(tǒng),又是一個(gè)大坑。
雖然很不嚴(yán)謹(jǐn),圈子里程序猿的生態(tài)因此發(fā)生了變化:隨著互聯(lián)網(wǎng)開發(fā)工作任務(wù)的日益加重,越來越多的人開始組隊(duì)做同一個(gè)項(xiàng)目。擅長(zhǎng)html、css、JavaScript的程序猿,進(jìn)化成了前端工程獅,
天天倒騰瀏覽器,他們對(duì)用戶體驗(yàn)負(fù)責(zé)。擅長(zhǎng)java的程序猿,進(jìn)化成了后端攻城獅,
天天倒騰數(shù)據(jù)庫(kù)和服務(wù)器,他們對(duì)服務(wù)器性能及數(shù)據(jù)負(fù)責(zé)。
但他們組隊(duì)工作的時(shí)候,一旦發(fā)現(xiàn)bug或發(fā)生變更,就有可能就會(huì)逼的別人無奈地跟著自己一起改。這樣的工作效率實(shí)在太低了。
為了防止這兩種不同的攻城獅工作內(nèi)容串雜在一起,雙方約定,定下一個(gè)發(fā)送請(qǐng)求的地址,和請(qǐng)求的格式,至此老死不相往來。這種請(qǐng)求的地址和其相應(yīng)的格式,又被稱為API(接口)。至此,做好API文檔后,前端和后端終于可以老死不相往來,各自調(diào)試各自的代碼。這一不相往來的概念,也被稱為
前后端分離。
而前后端分離,也誕生了一種新的"變態(tài)"——Node.js,這個(gè)玩意雖然是用前端最愛的JavaScript語言,但是可以操作服務(wù)器。不過Node.js主要是被前端用來做中間件(可以理解為為了分離的更徹底一點(diǎn))的,因此很多時(shí)候也被納入前端范疇。
當(dāng)然隨著時(shí)代的發(fā)展,“變態(tài)物種”越來越多……已經(jīng)不限于Node.js了。
不過現(xiàn)在還是有很多項(xiàng)目是不做所謂的前后端分離的噢!很多輕量級(jí)的python、php項(xiàng)目就不做分離。為什么不分離?因?yàn)檫@種項(xiàng)目往往一個(gè)人就能搞定……在這樣的項(xiàng)目中,你說前端、后端啥的,估計(jì)對(duì)面程序猿一臉懵逼。
當(dāng)然,根據(jù)互聯(lián)網(wǎng)的發(fā)展,也同時(shí)進(jìn)化出了更多的其他生物:我們發(fā)現(xiàn)網(wǎng)頁(yè)太丑了。好,我們叫擅長(zhǎng)美工的人來幫忙,他們成了
UI。我們發(fā)現(xiàn)用戶太能折騰了,老板太能折騰了,甲方太能折騰了。好,我們叫擅長(zhǎng)溝通的人來幫忙把客戶和老板講的東西理成結(jié)構(gòu)化的文檔,或是把用戶的需求收集起來理成將來要做成軟件的樣子,他們成了
產(chǎn)品經(jīng)理。我們發(fā)現(xiàn)往網(wǎng)站上寫文章,填內(nèi)容實(shí)在是麻煩,而且要把網(wǎng)站流量做大,還得找個(gè)人出出主意,于是,
運(yùn)營(yíng)也誕生了。我們發(fā)現(xiàn)上線后服務(wù)器怎么老是不穩(wěn)定,后端大佬們都去做新項(xiàng)目了,得找個(gè)hold的住服務(wù)器和機(jī)房的專家,然后
運(yùn)維出現(xiàn)了……現(xiàn)如今,哪怕前端和后端都有不同的進(jìn)化分支了,互聯(lián)網(wǎng)生態(tài)真是越發(fā)豐富了呢。
嗯,差不多就是這個(gè)意思。