? ? ? ?我要用一個關于“魚香肉絲”的故事,闡述一下一個開發或者程序猿做一個網站,你要會哪些技術,用最最通俗的的話,去解釋這些。
? ? ? ?上面那個圖,其實就是打開一個頁面最簡單的一個過程的流程圖(請原諒我不會畫流程圖,瞅著哪個方塊好看就用哪個了,不要挑刺),OK,先簡單的一些正常的話,來描述一下頁面展示出來的過程。
? ? ? 當我們在瀏覽器中輸入了一個鏈接,例如www.taobao.com(淘寶網的頁面請求過程相當復雜,這里就是個假設),首先瀏覽器會根據域名去DNS(Domain Name System,域名系統)查詢相應的IP,域名其實就是個名字,我們要根據名字去找到真正請求的服務器的地址(IP),然后根據IP請求到對應的服務器,服務器中的的應用程序會去數據庫中獲取相關的數據,并生成所需要的HTML,并返回給瀏覽器,由瀏覽器進行渲染,并最終顯示出來,變成我們真正看到的頁面。
? ? ? ?其實要做一個網站簡單來講就是這些技術,你要會HTML\CSS\Javascript\Linux\數據庫\一種服務端語言。之前寫過一篇文章,用JAVA做一個網站需要用哪些技術,簡單的簡述了一下這些。
“魚香肉絲”的故事
現在開始,我要用這個故事來把之前說的那一段話,再解釋一遍...
? ? ? ?某一天,我想吃一盤魚香肉絲,聽說某某大飯店的魚香肉絲做的不錯,嗯,好的,“那就去XX大飯店吃魚香肉絲吧”。(輸入網址)
? ? ? ?這個XX大飯店在哪里呢?于是我打開了百度地圖,找到了XX大飯店的地址在XX區OO路110號。(DNS查詢IP,這里的百度地圖就相當于DNS的功能)
? ? ? ?到了飯店,點餐,然后菜單交給了大廚。(請求到了服務器,并開始執行)
? ? ? ?大廚接到菜單后,先去冰庫找到了相應的食材。(數據庫中查詢數據)
? ? ? ?然后開始剁吧剁吧,切吧切吧,炒吧炒吧。(生成所需要展示的HTML)
? ? ? ?菜做好了,服務員端到了我的桌子上,嗯嗯,不錯,色香味兒俱全,好吃。(數據返回給瀏覽器,并進行渲染顯示,這里其實人就相當于瀏覽器,菜的食材就是HTML,而味道,顏色相當于CSS)。
? ? ? ?這個飯店吧,菜挺好吃的,可是就是等的時間有點長,為啥呢?因為大廚去冰庫找食材就需要5分鐘,炒菜的過程也需要5分鐘,這樣一個菜就需要10分鐘時間,后來飯店改進了,每天都會把做魚香肉絲的食材都準備好,放在廚房的小冰箱里(緩存!),當有人點魚香肉絲的時候,只需要把食材從小冰箱里取出來(取緩存)就好了,這樣一來就節省了5分鐘時間。
? ? ? ?飯店的生意做得越來越大了,原來一個大廚同時只能做5份魚香肉絲,但是現在的人越來越多,顧客已經不滿足只吃魚香肉絲了,于是又多了一個宮保雞丁,并且又聘請了幾個大廚,同時來做飯,當客人點完菜之后,由主廚進行分配,魚香肉絲由大廚A1\A2\A3來做,宮保雞丁由大廚B1\B2\B3來做(簡單的反向代理),那么主廚也需要根據A1\A2\A3三個大廚當時的忙閑程度,去安排下一份魚香肉絲由誰來做(負載均衡)。
? ? ? ?好了,魚香肉絲的故事就這么講完了,那么這里面其實就是把做一個網站所用到的技術,用最最通俗的話,去解釋了一下,讓大家能通俗的理解一下做網站的每一個部分都是用來干嘛的,回頭要是不懂了,想想“魚香肉絲”沒準就能理解下來了。
? ? ? ?其實這個故事還有很多可以擴展的地方,例如以后開的越來越大,開了幾個分店叫啥,等等等等....我就是隨便寫寫自己的理解,哪里有不明白的,大家一起交流交流,個人理解,僅供參考。