JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

前端、後端,以及它們之間的那條線

每個網站其實都是兩半在協作——你看得見、點得到的那一半,和在伺服器上默默運轉的那一半——本文講清它們怎麼分工、怎麼對話。

每個網站其實都是兩半

打開任何一個網站,它看起來都像是擺在你面前的一個整體。但在那層光滑的表面背後,幾乎每個網站都被拆成了兩個協作的半邊——學會看出它們之間的那道接縫,是你成為開發者路上最大的「啊哈」時刻之一。

第一半是前端(frontend):你真正能看見、能點到的一切。按鈕、顏色、文字、載入時轉圈的小圖示——這些都住在你的瀏覽器裡,跑在你自己的裝置上。人們說「前端」時,指的就是網站顯示在螢幕上的那一部分。

第二半是後端(backend):一個跑在伺服器上的程式——伺服器是世界某處的另一台電腦——你永遠看不到它。它幹的是幕後的重活:核對你的密碼、儲存你的訂單、取來真正的資料。前端是臉面,後端是在你看不見的地方默默運轉的大腦。

店面與倉庫

想像一家小店。前面是店面——明亮的櫥窗、貨架、親切的櫃台。顧客走進來,四處看看,指著自己想要的東西。這就是前端:為「被看到」而設計,熱情、好用。它的全部任務就是好看,並讓人毫不費力地提出需求。

在看不見的地方,一扇寫著「員工止步」的門後面,是倉庫——堆著真貨的貨架、保險櫃、記著誰買了什麼的帳本。顧客從不走進去。這就是後端:它存放著貴重、敏感的東西,幹著真正的活,卻始終對外人鎖著門。

這種拆分不是偶然——它是一種保護。你絕不會讓顧客隨便走進倉庫、自己去開保險櫃。同樣地,你把真正的資料和重要的決定都放在後端,讓任何訪客都伸不進手去亂動。前端可以提出請求,但只有後端能真正動手。

兩半之間怎麼對話

那麼,你瀏覽器裡的前端需要後端手裡的某樣東西——比如你最近的訂單列表——它該怎麼要呢?它不會闖進倉庫,而是去呼叫後端的 API:一個標籤清晰的「服務櫃台」,是後端有意開出來的,好讓外面的世界有一條被許可的途徑來提出請求。

一個 API 有許多櫃台,每個櫃台都有自己的地址,叫端點(endpoint)——一個像 /api/orders 的網址。你去對的端點,就像在郵局排到對的窗口:一個寄郵票,一個寄包裹。前端挑出和它需求相符的那個端點,把請求發到那裡。

那麼他們隔著櫃台用什麼語言交談呢?幾乎總是 JSON——一種整潔的文字格式,由一個個貼了標籤的值組成,電腦和人都讀得懂。前端發去一小段 JSON 請求,後端也用 JSON 回答。它就是雙方共用、來回填寫傳遞的那張紙條。

--- frontend asks the API at this endpoint ---
GET /api/orders

--- backend answers in JSON ---
{
  "orders": [
    { "id": 1, "item": "Tea", "price": 4 },
    { "id": 2, "item": "Mug", "price": 9 }
  ]
}
前端在 /api/orders 端點發問;後端用一段可供展示的 JSON 回應。
  1. 你在瀏覽器裡點了「我的訂單」——這是前端在回應你。
  2. 前端向後端 API 的 /api/orders 端點發出一個請求。
  3. 後端把資料收集好,用 JSON 發回來。
  4. 前端讀懂那段 JSON,把你的訂單畫到螢幕上。

資料真正住在哪裡

後端背後還有一塊:資料庫(database)。這裡長久地存著真正的資訊——每一個使用者、每一筆訂單、每一個密碼——安穩地躺在磁碟上,哪怕伺服器重啟也不會丟。如果說後端是倉庫,那資料庫就是倉庫裡那個上了鎖的檔案櫃。

關鍵的一點在這裡:使用者——以及前端——從不直接碰資料庫。前端伸不進那個檔案櫃。它只能透過 API 客客氣氣地拜託後端,而由後端來決定取什麼、允許什麼、把什麼藏起來。每個請求都要先經過後端的櫃台。

為什麼這麼嚴?因為資料庫裝著所有人的祕密,不只是你的。如果前端能直接搆到它,任何足夠聰明的人都可能讀到別人的密碼,或者偷偷改掉價格。逼著每個請求都走後端,就等於在公眾和金庫之間立了一個可信的守衛。

把它串起來

現在,你能看清一個網站的整體輪廓了。前端是你瀏覽器裡的店面——你看到、點到的一切。後端是伺服器上的倉庫——真正的活和真正的資料都安穩地放在那裡,伸手搆不著。

它們之間有一條清晰的溝通線:前端在某個命名的端點上呼叫後端的 API,雙方來回交換整潔的 JSON 訊息。後端背後坐著資料庫,那個沒有訪客能直接打開的上鎖櫃子。

把這張地圖記牢。隨著你繼續學下去,幾乎每一個新話題——登入、表單、支付、即時更新——都不過是又一場跨越這兩半之間同一條線的對話。一旦你看得見這條線,整個網路就開始講得通了。