後端是什麼?從瀏覽器背後那台伺服器開始說起
更新日期: 2025 年 4 月 3 日
本文為 後端是什麼 系列文:
- 後端是什麼?從瀏覽器背後那台伺服器開始說起
- 伺服器怎麼運作?從 Port、封包到監聽請求的世界
- 從資料庫到 API:後端怎麼讓前端拿到想要的資料?
- 後端的守門員:權限驗證、防火牆與資安基礎
- 雲端架構與 DevOps:從一台電腦到現代後端系統的進化之路
建議閱讀本文前,先閱讀 前端是什麼 相關概念
每天我們使用手機或電腦瀏覽網頁、滑社群、查資料、線上購物,看似一切操作都發生在畫面上,其實背後有一整套龐大又複雜的系統在默默運作,這就是「後端」。
當你點擊一個「登入」按鈕,背後會發生什麼事?你輸入的帳號密碼會傳送到哪裡?為什麼能顯示出你的購物車、歷史紀錄,甚至推薦你喜歡的商品?這些答案,都藏在後端工程的世界中。
這篇文章會從一個簡單的日常比喻開始,幫助你理解後端的角色,並說明後端工程師究竟在做些什麼。
用餐廳比喻「後端」到底是什麼?
想像你走進一間餐廳,坐下後,服務生遞上菜單。
你瀏覽菜單,看到圖片、文字、價格和餐點分類,接著你點了一份牛排和一杯飲料。
這一連串的互動過程,正好就像我們在操作一個網站。
在這個比喻中:
- 菜單代表的是網站上的使用者介面(UI):圖片、按鈕、選單,這些都是前端(Frontend)。
- 你點餐的動作就像使用者在網頁上點擊「購買」、「登入」或「查詢」這類按鈕。
- 服務生就像是前端與後端溝通的橋樑(API);他負責把你的需求轉達給後台。
- 廚房、廚師、食材庫則是網站背後真正處理資料的系統,也就是後端(Backend)。
你或許從來沒見過餐廳裡的廚房,但正是那個你看不見的空間,決定了你最終能否吃到熱騰騰的餐點。
廚師要根據你點的東西去備料、料理、擺盤,再透過服務生把成品端上桌。
過程中,可能還會查詢食材庫存、根據客製需求(像是不要洋蔥)微調步驟,這一切就像後端伺服器根據使用者請求回傳資料或處理邏輯一樣。
用程式邏輯來說:
- 當你按下「登入」按鈕(點菜)→ 前端送出你的帳密(訂單)→ 伺服器接收到請求(廚房收到單)→ 比對資料庫驗證帳密是否正確(查食材庫)→ 回應登入成功與否(上菜或說缺貨)。
這些操作看似簡單,但其實後端要做很多事才能確保你得到正確的內容。
而且每一次你在網站上點擊、輸入、查詢、購物時,後端都在默默工作,幫你「做菜」並即時送達。
總結這個比喻:
類別 | 餐廳角色 | 對應網站開發 |
---|---|---|
菜單、桌子、裝潢 | 客人看得到的前台服務 | 前端介面(HTML、CSS、JS) |
服務生 | 傳遞點餐指令 | API 傳遞前後端資訊 |
廚師、廚房、食材庫 | 處理訂單、準備食物 | 後端伺服器、資料庫、邏輯處理 |
菜單點餐紀錄與備料流程 | 隱藏但重要的流程 | 後端程式碼與資料儲存邏輯 |
你可以想像,沒有後端的網站,就像是一間只能看菜單、卻永遠吃不到東西的假餐廳。
有了後端,整個點餐與出餐流程才能真正實現,讓你從互動中獲得完整的體驗。
前端與後端工程師的分工差異
在一個完整的網站或 App 專案中,前端工程師(Frontend Developer)和後端工程師(Backend Developer)是兩個最常見、最重要的角色。
他們就像是餐廳的設計師與廚房主廚,缺一不可,各自扮演著不同但互相依賴的角色。
讓我們從兩位工程師的工作內容來做比較:
前端工程師:打造使用者看得到的世界
前端工程師負責的部分,是所有使用者直接互動的內容,像是:
- 頁面的佈局與設計(例如首頁長什麼樣子)
- 按鈕、選單、表單的點擊與輸入反應
- 圖片、動畫、輪播圖的呈現
- 網頁在手機、平板、電腦等不同裝置上的響應式設計
使用技術:
- HTML:網頁骨架,定義標題、段落、圖片等結構
- CSS:讓網頁更美觀,控制顏色、字體、間距、排版
- JavaScript:讓網頁可以互動,像是按一下按鈕會出現新畫面
- 框架與函式庫:如 React、Vue.js、Svelte,幫助開發更有效率的互動功能
後端工程師:打理使用者看不到的系統邏輯
後端工程師則負責所有使用者看不到,但網站能夠正常運作的邏輯與資料處理,例如:
- 處理使用者送出的資料(登入、留言、購物)
- 與資料庫溝通,取得或儲存資料
- 設計 API 讓前端可以安全存取資料
- 驗證使用者身份與權限(例如某頁面只能管理員才能進入)
- 建立整體系統架構與伺服器部署(讓網站能真正上線)
使用技術:
- 程式語言:如 Python、Node.js、Java、PHP、Go 等
- 資料庫:如 MySQL、PostgreSQL、MongoDB,儲存網站資料
- 伺服器框架:如 Express、Django、Spring Boot,協助撰寫後端邏輯
- API 技術:如 RESTful API、GraphQL,讓前端能請求/提交資料
案例:登入功能的前後端分工
假設你在網站上輸入帳號密碼並點選「登入」,這個動作背後其實是前後端密切合作的結果:
- 前端工程師:
- 負責畫出登入畫面(表單、按鈕)
- 收集使用者輸入的帳號密碼
- 透過 JavaScript 發送 API 請求到後端
- 後端工程師:
- 接收前端送來的帳密
- 對照資料庫中的帳戶資訊
- 如果正確,產生一組登入憑證(Token)並回傳給前端
- 如果錯誤,回傳錯誤訊息(如密碼錯誤)
- 前端工程師再根據後端的回應:
- 顯示成功畫面並導向首頁
- 或顯示錯誤訊息提示使用者
透過這樣的協作,使用者才得以完成一個看似簡單、其實環環相扣的動作。
🧩 前後端合作,就像網站的「雙引擎」
你可以把一個網站想像成一台跑車:
- 前端是車身、儀表板、方向盤,決定了外觀與操控感。
- 後端是引擎、電腦系統與油門控制,負責驅動整台車運轉。
沒有前端,使用者根本無從操作; 沒有後端,網站就像空有外殼卻不能開動的模型。
前後端工程師的比較表
角色 | 工作範圍 | 常用技術 | 使用者是否能直接看到 |
---|---|---|---|
前端工程師 | 設計網頁 UI 與互動功能 | HTML、CSS、JS、React、Vue | ✅ 可以看到並操作 |
後端工程師 | 處理邏輯、資料儲存、驗證身分 | Python、Node.js、資料庫、API | ❌ 無法直接看到 |
了解兩者的差異後,你也可以思考:你對「設計畫面、讓畫面有互動」更有興趣?還是「處理資料、解決邏輯問題、設計系統」更有熱情?
無論哪一邊,都是網站世界中不可或缺的角色!
為什麼說「所有資料都來自後端」?
在你滑動電商網站、社群平台或線上學習平台時,畫面上所顯示的商品清單、留言內容、購物車資訊、個人資料等等,看起來好像早就放在那裡了。
但事實上,這些資料大多數都是即時從後端伺服器撈取出來的。
這些動態內容不是硬生生寫在程式碼裡的,而是存在某個後端系統裡,根據你「誰」、「什麼時候來」、「做了什麼操作」才決定要顯示什麼樣的內容。
🔸 舉幾個你可能遇過的例子:
- 商品列表
- 你進入網站首頁看到「今日推薦」、「特價商品」等資訊,這些資料是從資料庫撈出來的熱門商品清單。
- 後端程式會根據後台的行銷規則(例如:最近一週銷售最佳的前 10 項)動態查詢後傳送給前端顯示。
- 商品詳情頁
- 你點進某一項商品,會看到品名、價格、庫存、評論,這些資訊都是後端根據商品 ID 去資料庫抓回來的,因為每個商品的資料都不一樣,沒辦法事先寫死。
- 使用者資料
- 如果你登入了帳號,頁面會出現「歡迎回來,王小明」、「你的優惠券即將到期」等個人化訊息,這些也都是後端根據你的帳戶身分查資料回傳的。
- 購物車功能
- 當你加入商品進購物車、修改數量、刪除品項,這些變動不只發生在畫面上,後端也會即時更新使用者的購物紀錄,否則下次重新整理頁面時就會「打回原形」。
為什麼這些資料不能直接放在前端?
1. 資料量龐大,前端根本無法承載
想像一個網站有上千項商品、數萬筆會員資料,如果把這些資料全部打包進前端頁面裡,不只載入時間會變超久,使用者裝置(手機或電腦)也可能因為記憶體吃不消而當機。
後端可以根據請求「一頁一頁」地回傳需要的資料,這樣既省資源又有效率。
2. 資料會變動,放前端容易過時
舉例來說,商品價格可能會調整、庫存會變動、留言數會增加,如果資料直接寫死在前端,那顯示出來的內容可能很快就過時、錯誤,甚至誤導使用者。
透過後端,每次都能提供最新、最正確的資料內容,保持資訊的即時性與準確性。
3. 前端是開放的,放資料容易被偷看或竄改
前端的程式碼是使用者可以「檢視原始碼」或透過開發者工具打開的,你放在前端的任何資料其實都等於是公開的。
如果你把會員清單、優惠券代碼、庫存數量等敏感資料寫死在前端,駭客只要打開瀏覽器就能看到甚至竄改它,這對任何網站來說都是非常危險的事。
後端就像保險庫,能加密、驗證、控管誰能看、誰不能看,是保護資料安全的關鍵。
4. 需要根據使用者身分做個人化顯示
每個使用者看到的內容都不一樣,例如:
- 王小明登入看到自己的訂單
- 李小華登入看到她的優惠券
- 匿名訪客則看不到會員專屬價格
這種個人化的邏輯就必須透過後端來處理,因為只有後端知道「你是誰」、「你有什麼資料」、「你可以看到什麼內容」。
後端工程師都在做什麼?核心工作一覽
當我們說一位後端工程師的工作內容時,可能會以為他們只是坐在電腦前「寫程式」。
但實際上,他們所負責的範圍涵蓋了整個網站或應用系統的資料邏輯、溝通橋樑、資安防護等一整套流程。
以下是後端工程師的主要核心工作,一步步帶你了解他們每天都在忙什麼:
撰寫伺服器程式碼(Server-Side Code)
這是後端工程師最基本、也是最核心的技能。
所謂伺服器程式碼,指的是在「後台」執行的邏輯程式碼,它們不會直接顯示在畫面上,而是負責處理前端送來的請求,並決定要回應什麼資料或結果。
💡 實際例子:
- 當你輸入帳密點擊登入,後端的程式會接收到這個請求,檢查輸入是否正確,確認後回傳「登入成功」或「密碼錯誤」的訊息。
- 當你在留言板輸入一則留言,後端會接收留言內容、加上使用者的身分與時間戳記,然後儲存在資料庫中。
- 當你下單購物時,後端會根據你選的商品數量、庫存狀況、付款資訊進行一系列運算與資料處理,最後建立一筆訂單紀錄。
🔧 常見技術:
- 程式語言:Python、Node.js、Java、PHP、Ruby
- 運行環境:伺服器(如 Linux 主機)、雲端平台(如 AWS、Heroku)
這些程式會部署在伺服器上,24 小時隨時等待並處理來自全球使用者的請求。
操作資料庫(Database)
所有網站上的資料都需要一個「倉庫」來儲存,而這個倉庫就是資料庫。
後端工程師就像是資料管理員,負責把資料「放進去」、「找出來」、「修改」、「刪除」,這個過程統稱為 CRUD 操作:
- Create:新增資料(例如新用戶註冊時新增一筆資料)
- Read:查詢資料(例如讀取留言列表)
- Update:修改資料(例如使用者更改密碼或個資)
- Delete:刪除資料(例如刪除過期活動或帳號)
🗃️ 常見資料庫類型:
- 關聯式資料庫(SQL):如 MySQL、PostgreSQL
👉 適合表格型、結構清晰的資料(例如會員清單、訂單記錄) - 非關聯式資料庫(NoSQL):如 MongoDB、Firebase
👉 適合資料彈性大、不固定格式的內容(例如留言、日誌紀錄)
🧠 後端工程師需會:
- 撰寫 SQL 語法查詢資料
- 設計資料表結構(例如「使用者」表、「商品」表)
- 維護資料完整性與效能(避免資料重複、查詢變慢)
沒有資料庫,網站就無法記錄任何資料,只能是個空殼。
設計 API(Application Programming Interface)
API 就像是前端與後端之間的「溝通語言」。
前端會發送請求(Request),後端根據請求內容進行處理後,再把結果包成回應(Response)送回前端。
這整個流程就是靠 API 來完成。
💡 API 舉例:
GET /users
→ 從資料庫中撈出使用者清單POST /login
→ 傳送帳密資料進行身分驗證PUT /orders/123
→ 更新訂單編號為 123 的資訊DELETE /comments/456
→ 刪除留言編號為 456 的留言
這些 API 通常會回傳 JSON 格式的資料(類似物件),讓前端能輕鬆接收並顯示給使用者看。
📦 API 設計得好的好處:
- 前後端分工清晰,不用綁死在一起
- 前端開發者能根據 API 文件自行測試功能
- 可支援多種裝置(網頁、App、小程式)共用同一後端服務
做權限驗證與資安防護
網站最重要的資產之一就是使用者資料,而保護這些資料的責任,正是後端工程師的重要任務之一。
🛡️ 常見的身分驗證與資安工作:
- 登入機制(Authentication):
- 驗證使用者帳密是否正確,並產生 Token(例如 JWT)來確認使用者身分
- 控制哪些功能需要登入後才能操作(例如購買、留言)
- 權限控管(Authorization):
- 確保使用者只能存取他有權限的資料(例如 A 不能看 B 的訂單)
- 管理不同身分(一般會員、管理員)可執行的操作範圍
- 防範網路攻擊:
- SQL Injection:避免駭客透過輸入欄位操作資料庫
- XSS(跨站腳本攻擊):避免駭客注入惡意腳本
- CSRF(跨站請求偽造):防止第三方網站偽裝使用者操作
一個網站如果資安沒做好,不但會洩漏用戶資料,甚至可能被癱瘓、勒索,後果不堪設想。
結語:後端,是你每天都在用的「無形助手」
雖然使用者看不見後端,但沒有它,任何網站和 App 都無法提供互動性或個人化的體驗。
對於初學者來說,理解後端的基本概念,是邁向全端或後端開發的第一步。
未來如果你想進一步學習後端開發,不妨從學習一種伺服器語言(如 Python 或 Node.js)與資料庫開始。
實際打造一個有登入、註冊與資料儲存功能的小專案,就能更深入體會這個看不見卻關鍵的世界。