本系列同步於 github.com/sudoliyang/Become-Backend-Engineer,歡迎提交修正、fork、star。
現今人已經難以離開網路的世界,我們透過 Browser(瀏覽器)瀏覽全世界的各種新知,查詢千萬種的知識、與朋友聯絡感情
我們應該要熟悉哪些知識呢? 讓我們一起來了解它是如何運作!
在還沒有網路的時代,我們想要訂位只能夠打電話給餐廳,這時櫃檯人員接起電話,並且告訴他旁邊的小D同事確認同時段是否還有空位,並告訴櫃檯的同事是否能夠接受訂位,再訂位完成後櫃台人員告訴我們訂位的相關資訊,同時小D同事同事將我們的訂位資訊記錄下來。
在上述的例子中我們所使用的「電話」就可以理解為 Client 端,他廣泛的代表用戶所使用的介面,像是我們常用的瀏覽器、手機 App,他將 Sever 所提供給我們的資料呈現出來,再將我們所想要動作的訊息發送給 Application Server,讓 Application Server 接收到資料與替我們處理,再將處理的結果回傳到 Client 呈現給我們。
Application Server 就像是一個接聽電話的服務生,在電話前等待電話響鈴時接起電話並為我們提供服務,如果我們想要訂位,他為我們詢問小D同事請他查詢目前的空位情形,如果同時間位子已經滿了他將回覆給接聽電話的人員,讓他透過電話告訴用戶目前訂位的狀況是成功或是失敗,並提供他相應的資訊,所以接聽電話的服務生必須要熟悉訂位的相關規則與邏輯。
故事中的小D同事,看似工作簡單,工作單純只需要查詢訂位表上的狀態,但其實他責任重大,在工作量大的時期查找工作表的速度不應下降,並且小心的不要將資料填寫錯誤了。
上述的故事中我們的環境像是這樣
用戶 <====電話====> 接聽電話的服務生 <=====空氣=====> 小D同事
我們用了不同的通訊方式傳遞資料,好讓我們資料的交換,在網路的世界也是相同,有著不同的通訊協定讓我們做交換資料使用
我們未來會在深入的了解更多不同的通訊協定,讓我們能夠在應付不同的情境使用最合適的通訊協定。
參考資料:
[Quora What is client server model?] https://www.quora.com/What-is-client-server-model