創作內容

100 GP

很多人都誤解伺服器

作者:深海異音│2018-02-08 01:39:10│贊助:3,250│人氣:3990
很多人都誤解伺服器
以為伺服器是一台很大,很複雜難澀的機器
或要有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++模擬鍵盤送出按鍵,藉此控制遊戲裡面的角色動作

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3881465
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 14 篇留言

~楓竹~
即使有詳盡解釋也依舊看不懂

02-08 01:46

深海異音
沒有相關經驗的人的確比較難看懂這篇。
不過只要知道『任何一台可以處理使用者訪問請求的設備,就是伺服器』,
所以學校的伺服器可能只是一台記憶體 512M 的 Windows XP 也說不定02-08 01:51
無星之夜
長知識了

02-08 02:01

深海異音
感謝支持02-09 17:32
蒼の彼方の考古學家
至少我知道伺服器不一定要很大台就是了

02-08 06:14

深海異音
挺多人的刻板映像都是:伺服器=大型主機
其實更多的是多台電腦串連起來的分散式伺服器,並用虛擬化技術動態分配多個子伺服器的運行效能02-09 17:30
芋頭OuO
長知識了

02-08 08:27

深海異音
感謝支持02-09 17:32
N
謝謝長知識了 原來手機也能當伺服器QQ 是不是能架站的才能當伺服器R ?

02-08 09:50

深海異音
手機或電腦裡面本身就存在一些本機端伺服器,目的是讓兩個不同的應用程式可以互相溝通。
Android因為本身是Linux系統,所以才能架站變成網頁伺服器,iPhone可能就沒辦法了,APP沒有這麼多權限02-09 17:25
每天更新圖樓的炫風
雖然我都看不懂……但我至少知道了手機也可以當伺服器了

02-08 10:00

深海異音
這篇的確比較不容易看懂,一些程式語言的名詞還是要有寫過的人才比較容易懂,直接用白話解釋基本上也是有看沒懂...02-09 17:35
Louis - 瀧本君
推專業

02-08 15:16

深海異音
感謝支持02-09 17:35
新手方
我的理解是
只要能接受一個或多個外部的連線就是伺服器
只要能對檔案做讀寫存取就是資料庫

02-08 16:46

深海異音
話說我用txt記事本當資料庫,這是不是很不好的示範啊[e8]02-09 17:14
阿辰
破除思考框架~
我喜歡這篇!!

02-08 17:18

深海異音
現在的懶人包工具太方便,容易讓剛入門的人迷失方向。
很多不同技術都是可以混合在一起使用,這是學校很少教的(不知道是那些老師不會,還是覺得學生聽不懂乾脆不教02-09 17:13
阿民
如果有在用BT的人大概就可以用以下的描述來明白(雖然不確定意思對不對),當你單純再下載時,你就是個人端(Client),當你下載好後開始分享,這就是伺服端(Server)。不過通常使用BT的情況是Client和Server同時就是了:D

02-08 19:56

深海異音
其實電腦裡面本來就存在一些本機端伺服器,目的是讓兩個不同的應用程式可以溝通,因為伺服器是本機端的,所以外面外面連不進來
02-09 17:08
阿辰
根深蒂固的教育方式使然[e6]
思考不夠變通~
這需要訓練的~

有些時候也是會根據學生來決定教或不教~
像學生沒興趣的話可能就不教了...因為老師熱忱會被潑冷水:(

02-09 17:53

深海異音
這年頭的老師真的不好當,連太多學生被當掉都要寫報告書...02-12 23:57
沼躍魚
大佬

05-28 15:52

小小昌險家
你在哪裡學這些東西的ㄚ

06-22 01:36

深海異音
這也不算是什麼艱澀的知識,比較像是網頁的基本概念,隨便翻幾本書就能學到很多比這個更詳細的知識06-22 02:53
爆肝大學生-轉考模式
感謝導正我錯誤觀念

10-10 11:36

深海異音
其實也不是什麼特別的觀念,就是要大膽一點,知道基本的運作邏輯後,很容易就能把多個小東西組合成大的系統10-13 17:39
我要留言提醒:您尚未登入,請先登入再留言

100喜歡★hbl917070 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【C#開源】史上最直覺的... 後一篇:【C#、net】公開原始...

追蹤私訊

作品資料夾

tyu15826大家
個人的小屋的小說更新,有興趣者可以過來看看更多我要大聲說3分前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】