伺服器錯誤代碼大全|400/500/503 完整解析
HTTP 錯誤碼代表什麼意思
「500 Internal Server Error」「502 Bad Gateway」「404 Not Found」...
這些數字代碼常常讓人一頭霧水。
其實它們是 HTTP 狀態碼,每個數字都有特定含義,告訴你問題出在哪裡。
這篇文章幫你搞懂這些錯誤碼,以及如何解決它們。

一、HTTP 錯誤碼分類
HTTP 狀態碼用三位數字表示,第一個數字代表類別:
| 代碼範圍 | 類別 | 含義 |
|---|---|---|
| 1xx | 資訊性 | 請求已接收,繼續處理 |
| 2xx | 成功 | 請求成功 |
| 3xx | 重新導向 | 需要進一步操作 |
| 4xx | 客戶端錯誤 | 請求有問題 |
| 5xx | 伺服器端錯誤 | 伺服器處理失敗 |
最常見的錯誤:4xx 和 5xx。
1.1 4xx 客戶端錯誤
問題在你這邊(使用者或請求)。
常見原因:
- 網址打錯
- 沒有權限
- 請求格式錯誤
1.2 5xx 伺服器端錯誤
問題在伺服器那邊。
常見原因:
- 伺服器程式錯誤
- 伺服器過載
- 後端服務故障
二、常見 4xx 錯誤
2.1 400 Bad Request
含義:伺服器無法理解你的請求。
常見原因:
- 請求語法錯誤
- 網址包含無效字元
- Cookie 損壞
- 上傳檔案太大
使用者解決方法:
- 重新整理頁面
- 清除瀏覽器 Cookie
- 檢查網址是否正確
開發者解決方法:
- 檢查 API 請求格式
- 驗證輸入資料
- 檢查 Content-Type 標頭
2.2 401 Unauthorized
含義:需要身份驗證。
常見原因:
- 未登入
- 登入已過期
- API 金鑰無效
使用者解決方法:
- 登入或重新登入
- 檢查帳號密碼是否正確
開發者解決方法:
- 檢查身份驗證設定
- 確認 API 金鑰有效
- 檢查 Token 是否過期
2.3 403 Forbidden
含義:你沒有權限存取這個資源。
和 401 的差別:401 是「你是誰?」,403 是「我知道你是誰,但你沒權限。」
常見原因:
- 沒有存取權限
- IP 被封鎖
- 檔案權限設定錯誤
使用者解決方法:
- 確認是否有權限存取
- 聯繫網站管理員
開發者解決方法:
- 檢查檔案權限(chmod)
- 檢查 .htaccess 設定
- 確認用戶權限設定
2.4 404 Not Found
含義:找不到你要的資源。
這是最常見的錯誤碼。
常見原因:
- 網址打錯
- 頁面已被刪除或移動
- 連結過期
使用者解決方法:
- 檢查網址是否正確
- 使用網站搜尋功能
- 回到首頁重新導航
開發者解決方法:
- 設定 301 重新導向
- 建立自訂 404 頁面
- 檢查路由設定

三、常見 5xx 錯誤
3.1 500 Internal Server Error
含義:伺服器發生內部錯誤。
這是最籠統的錯誤,代表「伺服器壞了,但不知道為什麼」。
常見原因:
- 程式碼有 Bug
- 資料庫連線失敗
- 伺服器配置錯誤
- 記憶體不足
使用者解決方法:
- 重新整理頁面
- 稍後再試
- 聯繫網站管理員
開發者解決方法:
- 查看伺服器錯誤日誌
- 檢查程式碼錯誤
- 確認資料庫連線
- 檢查伺服器資源
3.2 502 Bad Gateway
含義:伺服器作為閘道,從上游伺服器收到無效回應。
常見架構:使用者 → Nginx → Node.js/PHP
502 通常代表後端應用程式(Node.js/PHP)沒有正常回應。
常見原因:
- 後端應用程式當機
- 後端應用程式沒有啟動
- 反向代理設定錯誤
- 後端回應超時
使用者解決方法:
- 重新整理頁面
- 稍後再試
開發者解決方法:
- 檢查後端應用程式是否運作
- 查看 Nginx/Apache 錯誤日誌
- 確認反向代理設定
- 增加超時時間
3.3 503 Service Unavailable
含義:伺服器暫時無法處理請求。
通常是暫時性的,可能是維護或過載。
常見原因:
- 伺服器維護中
- 流量過大
- 連線數達到上限
- 資源耗盡
使用者解決方法:
- 等待幾分鐘再試
- 查看官方是否有維護公告
開發者解決方法:
- 增加伺服器資源
- 設定負載平衡
- 優化程式效能
- 設定自訂維護頁面
3.4 504 Gateway Timeout
含義:伺服器作為閘道,上游伺服器沒有及時回應。
和 502 類似,但 504 是「太慢」而不是「壞掉」。
常見原因:
- 後端處理時間過長
- 資料庫查詢太慢
- 外部 API 回應超時
- 網路延遲
使用者解決方法:
- 稍後再試
- 檢查網路連線
開發者解決方法:
- 優化慢查詢
- 增加超時設定
- 使用快取
- 非同步處理耗時任務

四、錯誤碼對照表
常見 4xx 錯誤
| 代碼 | 名稱 | 含義 |
|---|---|---|
| 400 | Bad Request | 請求格式錯誤 |
| 401 | Unauthorized | 需要身份驗證 |
| 403 | Forbidden | 沒有存取權限 |
| 404 | Not Found | 找不到資源 |
| 405 | Method Not Allowed | HTTP 方法不允許 |
| 408 | Request Timeout | 請求超時 |
| 429 | Too Many Requests | 請求次數過多 |
常見 5xx 錯誤
| 代碼 | 名稱 | 含義 |
|---|---|---|
| 500 | Internal Server Error | 伺服器內部錯誤 |
| 501 | Not Implemented | 功能未實作 |
| 502 | Bad Gateway | 閘道錯誤 |
| 503 | Service Unavailable | 服務不可用 |
| 504 | Gateway Timeout | 閘道超時 |
五、使用者 vs 開發者解決方法
5.1 使用者能做的事
當你遇到錯誤時:
| 步驟 | 動作 |
|---|---|
| 1 | 重新整理頁面(Ctrl+F5 / Cmd+Shift+R) |
| 2 | 清除瀏覽器快取和 Cookie |
| 3 | 換一個瀏覽器試試 |
| 4 | 等 5-10 分鐘再試 |
| 5 | 檢查網址是否正確 |
| 6 | 聯繫網站管理員 |
5.2 開發者該做的事
系統性排查流程:
-
查看錯誤日誌
- Nginx:/var/log/nginx/error.log
- Apache:/var/log/apache2/error.log
- 應用程式日誌 -
檢查伺服器狀態
- CPU、記憶體使用率
- 磁碟空間
- 網路連線 -
確認服務運作
- 資料庫是否連線
- 後端應用是否運作
- 外部 API 是否可用 -
重現問題
- 什麼條件下發生?
- 是否能重現?
- 是否只有特定使用者?
錯誤一直出現?讓工程師幫你排查根本原因。

FAQ 常見問題
Q1:500 錯誤和 502 錯誤有什麼差別?
A:500 是伺服器內部錯誤(程式 Bug、設定錯誤等);502 是閘道錯誤,代表反向代理(如 Nginx)無法從後端取得有效回應。簡單說,500 是「伺服器壞了」,502 是「後端應用壞了」。
Q2:為什麼 404 頁面設計很重要?
A:好的 404 頁面可以減少使用者流失。應該提供導航選項(首頁連結、搜尋框)和友善的說明,讓使用者能繼續使用網站。
Q3:429 錯誤是什麼意思?
A:Too Many Requests,代表你的請求次數超過限制(Rate Limit)。常見於 API 呼叫。解決方法是降低請求頻率,或申請更高的配額。
Q4:看到 503 代表網站掛了嗎?
A:不一定。503 通常是暫時性的,可能是維護中或流量過大。等幾分鐘再試通常會恢復。
Q5:如何自訂錯誤頁面?
A:在 Nginx 中使用 error_page 指令,在 Apache 中使用 ErrorDocument 指令,或在應用程式框架中設定錯誤處理器。
HTTP 錯誤碼快速判斷法則與處理建議
了解 HTTP 錯誤碼可以幫你快速定位問題:
記住這個規則:
- 4xx = 你的問題(請求錯誤、沒權限、找不到)
- 5xx = 伺服器問題(程式錯誤、過載、超時)
使用者遇到錯誤: 先重新整理,再等一下,最後聯繫管理員。
開發者遇到錯誤: 查日誌、檢查服務、重現問題、修復根因。
如果遇到 DNS 相關問題,請參考 DNS 伺服器沒有回應解決方法。
延伸閱讀:
- 伺服器基礎
- DNS 伺服器沒有回應
- Safari 無法連接伺服器
- 網站伺服器架設教學
部署失敗?讓我們幫你
從環境設定到 CI/CD,我們幫你搞定所有部署問題。專業工程師團隊 24 小時內回覆。
參考資料
- Mozilla,「HTTP response status codes」,MDN Web Docs(2024)
- IETF,「RFC 7231 - HTTP/1.1 Semantics and Content」,IETF(2014)
- Nginx,「Debugging nginx」,Nginx Documentation(2024)
- Cloudflare,「HTTP Status Codes」,Cloudflare Learning(2024)