表達能力有限宽堆,敬請指正。-- 躁動的石頭
序言
回想我的旅程护侮,我認(rèn)為對于初入這一行業(yè)的程序員來說群叶,最破解的不是學(xué)習(xí)知識吃挑,而是搭建起一整套的互聯(lián)網(wǎng)行業(yè)的模型。這個模型必定很粗糙街立,它存在的目的在于幫助新手正確的樹立 web 開發(fā)甚至于軟件開發(fā)的世界觀舶衬,隨后的細化才是深入的學(xué)習(xí),也是成長的旅程赎离。
B/S
從最廣義的范圍來講逛犹,web 開發(fā)是基于B/S架構(gòu)(在這個鏈接里你會看到 C/S 的結(jié)構(gòu),app 就是使用的這種結(jié)構(gòu))也就是 瀏覽器/服務(wù)器 模型梁剔,簡單流程如下:
- 瀏覽器向服務(wù)器發(fā)送請求
- 服務(wù)器接收到請求虽画,并返回數(shù)據(jù)
這就是整個 web 開發(fā)的基石。
ps:瀏覽器還是 chrome(谷歌瀏覽器) 好荣病,開發(fā)必備狸捕。嚴(yán)重唾棄 IE
那么接下來要說的是
瀏覽器與服務(wù)器的碰撞
服務(wù)器的本質(zhì)就是電腦。就像你買一臺電腦用來玩游戲众雷,他買一臺電腦用來辦公灸拍,公司買一臺電腦來當(dāng)服務(wù)器供用戶通過瀏覽器來訪問。
人多了要溝通砾省,就要取名字鸡岗,電腦多了要溝通,就要有 IP编兄。
電腦不一定有 IP轩性, 但是要想上網(wǎng),則必須有 IP狠鸳。一般來說 IP 是運營商提供給你的揣苏。
IP 確實能夠唯一標(biāo)識一臺電腦,如果你看過百科就知道件舵,IP 其實很不方便記憶的卸察,所以,就有了別名:域名铅祸。你看 www.baidu.com 是域名坑质,你可以通過在瀏覽器輸入 http://www.baidu.com 來訪問百度合武,但是你肯定不知道在瀏覽器輸入 115.239.211.112 也可以訪問百度∥卸螅看吧稼跳,瀏覽器會解析你的輸入,看看你輸入的是 IP 還是域名吃沪,如果是 IP 就直接訪問汤善,如果是域名,那么就查找專門的域名解析服務(wù)器上票彪,查找域名對應(yīng)的IP萎津,再去請求服務(wù)器(使用 IP 肯定是速度快的,但是為了方便記憶抹镊,還是域名用的多,這就是效率與方便之間的妥協(xié)荤傲,以后你會碰到很多次的)垮耳。
瀏覽器與服務(wù)器之間交流方式
如果你細心的話,會發(fā)現(xiàn)遂黍,上面我提到的是 http://www.baidu.com 而不是 www.baidu.com 终佛。那么這兩者之間有什么區(qū)別嗎?對于訪問來說確實問題不大雾家,兩者都能訪問到百度铃彰。只是在訪問時,瀏覽器會把 www.baidu.com 轉(zhuǎn)化為 http://www.baidu.com芯咧。
http是一個很重要的協(xié)議牙捉,如果你真的要做開發(fā),那么這是一道繞不過去的檻敬飒。然而對于新說來說邪铲,要學(xué)習(xí)的太多,你現(xiàn)在只需要知道它就好了无拗,要詳細了解带到,以后有的是時間。
簡單的來說英染,http 定義了瀏覽器和服務(wù)器之間如何進行溝通(注意不是溝通的內(nèi)容)揽惹。
前端語言
上面的都弄好了,那么接下來就需要一種語言來維護雙方的交流了四康。這里面最重要的就是著名的 WEB 開發(fā)三劍客-HTML搪搏、CSS、JavaScript(簡稱js)了闪金。這些統(tǒng)稱為前端語言慕嚷,也是瀏覽器和服務(wù)器交流的基礎(chǔ)。也就是說在瀏覽器與服務(wù)器交互中,通過 HTTP 協(xié)議喝检,服務(wù)器向瀏覽器傳遞的就是這些東西嗅辣。
詳細的知識還是要新手自己去學(xué)的,我這里只是簡單的說一下他們的作用挠说。就像畫畫一樣澡谭, HTML 組成了頁面的骨架, CSS 來給頁面精雕細琢(典型的行為是上色), JavaScript 負責(zé)讓頁面動起來损俭,也就是實現(xiàn)其中的動畫效果蛙奖。
服務(wù)器
服務(wù)器的功能就是就是根據(jù)用戶的請求,返回相應(yīng)的 HTML杆兵、CSS 雁仲、JS(這些都是要前端工程師來完成的),而實現(xiàn)哪些功能琐脏,就是后端開發(fā)工程師來做的攒砖。至于如何實現(xiàn),那就要看用哪種語言了日裙,現(xiàn)在的后端語言有很多像C吹艇、C++、Java昂拂、PHP受神、Python等,語言的優(yōu)劣暫且不評述格侯,不過 PHP 在 WEB 頁面的快速開發(fā)方面有時很大鼻听。
然而,服務(wù)器是一個很復(fù)雜的事情联四,詳細的敘述就不再本章的范圍之內(nèi)了精算。新手在這里碰到的一個很常見的問題就是搭建本地環(huán)境。
總結(jié)
這里的總結(jié)模型是不完全準(zhǔn)確的: