切換
舊版
前往
大廳
主題

很多人都誤解伺服器

深海異音 | 2018-02-08 01:39:10 | 巴幣 4278 | 人氣 5756

很多人都誤解伺服器
以為伺服器是一台很大,很複雜難澀的機器
或要有php、MySQL這種後台才叫伺服器
這樣的概念是錯誤的

隨便一台電腦或是Android手機,甚至是樹莓派,只要裝個軟體就可以是伺服器
可以接受訪問請求並且回傳資料就叫做伺服器
就算要用C++處理訪問請求也沒關係
就算整個伺服器都沒有html檔也能變成網站
像是jsp就是利用java環境部署而成的伺服器,伺服器裡面的html語法都會被編譯成class檔,已經編譯過了所以運行效率極高

PHP其實背後是C++,阿帕契伺服器接收到請求後,立即解析php檔,然後根據php語法執行對應的C++函數,像是我在php裡面寫了撈資料庫的語法,c++就會去撈資料庫,然後跟php檔裡面的html語法合併整合成要回傳給使用者看的html字串,這也就是php語法會奇葩的原因,與其說是程式語言,不如說看起來更像是腳本

所以我可以用任何喜歡的程式語言來做php在做的事情
可以自創一種檔案叫做AA檔的檔案,他其實是html,不過如果裡面有{{{dbName -> select * from tabName}}}的字串,就會把這個字串取代成從資料庫撈取的資料
當有請求來訪候,就讀取對應的AA檔,並且解析看裡面有沒有我上述提到的需要取代成資料庫資料的特殊語法,有先去撈資料庫,然後加工處理在回傳html字串給使用者; 沒有就直接回傳AA檔,因為他本來就是html

nodejs就是個很好的例子,他可以讓開發者用JavaScript來開發後台,背後運行的核心就是Google chrome的V8解析引擎

總之伺服器是個很廣義彈性很大的東西,不要因為學校教php + MySQL,就把覺得唯有這樣才是伺服器,很多初學的人因為觀念被限制在『伺服器 = php + MySQL』,導致很多事情簡單的事情卻搞得很複雜



舉個例子:
我想要人在外面可以用手機控制家裡的冷機器
買一個可以發出紅外線訊號的USB設備後插在電腦,然後用php接受來自手機的訊號,當手機開啟網址送請求過來時,就用紅外線控制冷氣
到這邊都沒問題
但這時候不少人就會找『php控制紅外線』的相關資料,基本上很難找到這樣的東西

一般硬體廠商提供的都是C#、java、C++、arduino的控制函式庫
用紅外線裝置廠商提供的API做一個dll或exe,當php接收到請求後,php去啟動這個dll或exe

php只是個我用來處理訊號溝通的橋樑,php辦不到的事情就叫其他人做
只要有這樣的概念,就能輕易達成這個看起來很複雜的任務



更進階一點直接用現有的服務來搭配,用直播軟體讓觀眾控制遊戲裡面的角色
隨便用C#或C++什麼的程式語言取得觀眾的留言
當觀眾留言特定指令時,就用C#或C++模擬鍵盤送出按鍵,藉此控制遊戲裡面的角色動作

送禮物贊助創作者 !
0
留言

創作回應

阿民
如果有在用BT的人大概就可以用以下的描述來明白(雖然不確定意思對不對),當你單純再下載時,你就是個人端(Client),當你下載好後開始分享,這就是伺服端(Server)。不過通常使用BT的情況是Client和Server同時就是了:D
2018-02-08 19:56:41
深海異音
其實電腦裡面本來就存在一些本機端伺服器,目的是讓兩個不同的應用程式可以溝通,因為伺服器是本機端的,所以外面外面連不進來
2018-02-09 17:08:24
阿辰
根深蒂固的教育方式使然[e6]
思考不夠變通~
這需要訓練的~

有些時候也是會根據學生來決定教或不教~
像學生沒興趣的話可能就不教了...因為老師熱忱會被潑冷水:(
2018-02-09 17:53:53
深海異音
這年頭的老師真的不好當,連太多學生被當掉都要寫報告書...
2018-02-12 23:57:25
沼躍魚
大佬
2018-05-28 15:52:55
小小昌險家
你在哪裡學這些東西的ㄚ
2018-06-22 01:36:59
深海異音
這也不算是什麼艱澀的知識,比較像是網頁的基本概念,隨便翻幾本書就能學到很多比這個更詳細的知識
2018-06-22 02:53:59
爆肝大學生-轉考模式
感謝導正我錯誤觀念
2018-10-10 11:36:32
深海異音
其實也不是什麼特別的觀念,就是要大膽一點,知道基本的運作邏輯後,很容易就能把多個小東西組合成大的系統
2018-10-13 17:39:35

更多創作