iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
Software Development

Web API:從零開始探索公開 API 與資料應用系列 第 6

Day 6|HTTP Status Code是什麼?看懂API回應的狀態

  • 分享至 

  • xImage
  •  

**一、前言

前幾天已經了解到
Client API Server發送Request後,
Server會透過Response回傳結果。

而在上一篇中認識了JSON,
知道API常常會利用JSON格式來傳遞資料。

不過Server回傳Response時,
除了回傳資料之外其實還會告訴我們
這次Request到底有沒有成功
這時候就會看到一個很重要的東西:
**HTTP Status Code

今天就來認識幾個Web API中常見的Status Code。

**二、什麼是HTTP Status Code?

HTTP Status Code是伺服器在Response中回傳的三位數代碼,
用來表示這次Request的處理結果。

例如我們使用API查詢資料
如果成功取得資料,Server會回傳:200
如果找不到指定的資料,則可能會看到:404

因此看到Status Code時,可以先把他理解成
伺服器用一個數字告訴我們這次Request的結果。

Status Code可以分成幾個不同的類別:
https://ithelp.ithome.com.tw/upload/images/20260920/201789016EGuNMgXX6.jpg
剛開始學習時,可以先特別記住2xx、4xx和5xx。

**三、常見的 200、404 和 500

  1. 200 OK
    200是最常見的成功狀態之一
    代表Server成功處理了Request。
    例如:
    Client→GET Request→Server→200 OK→回傳 JSON 資料

所以如果我們今天使用GET查詢API,
而且看到200通常就代表這次請求成功。

  1. 404 Not Found

404則代表找不到指定的資源。
例如API網址輸入錯誤或是請求的資源不存在

例如:
404 Not Found
這時候不一定代表整個網站壞掉可能是
「你要求的東西不存在。」
例如原本API是:
/books
卻不小心輸入成:
/bookss
如果伺服器沒有這個Endpoint就可能回傳404。

  1. 500 Internal Server Error

500通常代表伺服器在處理Request時發生錯誤。
例如:
Client→Request→Server→發生問題→500

這種情況通常比較偏向Server端的問題,
而不一定是使用者輸入錯誤。

**四、Status Code的重要性

如果沒有Status Code,
Client收到Response後就比較難直接知道這次Request是否成功。

例如今天App向天氣API查詢資料。
如果成功:
200+JSON 天氣資料
App 就可以把資料顯示給使用者。

但如果API回傳:
404
App就知道這次請求沒有找到指定的內容,
可以進一步顯示錯誤訊息。

因此Status Code就像是API Response中的一個「結果提示」。

**六、總結

今天主要認識了HTTP Status Code,
了解到Server在Response中除了回傳資料之外,
也會透過三位數的Status Code告訴Client這次Request的處理結果。

目前先記住幾個常見的:
200 → 成功
404 → 找不到資源
500 → Server 發生錯誤

把前幾天學到的內容串起來,就可以理解一個基本的 API 操作:
Client

GET Request

API Server

Status Code

JSON Response

Client

例如成功查詢資料時,
Server可能回傳200和JSON資料
如果找不到指定的Endpoint則可能回傳 404。

透過今天的實作我也開始了解到,
API的Response不只是「有沒有資料」而已,
還可以透過Status Code判斷這次請求是否成功。

目前已經學到API、HTTP、Request、Response、GET、POST、URL、Endpoint、Parameters、JSON和Status Code。

下一篇就是第一週的最後一個主題:
Swagger是什麼?
如何使用Swagger測試API?
也會把前幾天學到的內容實際串在一起。


上一篇
Day 5|JSON 是什麼?認識 API 常見的資料格式
系列文
Web API:從零開始探索公開 API 與資料應用6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言