學習筆記 | 什麼是網路請求(HTTP response)

更新於 發佈於 閱讀時間約 4 分鐘

上篇記錄了關於 HTTP request 的筆記,這篇則是對於請求的回應紀錄~

有請求就有回應, HTTP response 就是伺服器對於這個請求的回應,不論請求是「成功」還是「失敗」,伺服器都會將這個請求的「回應結果」告知瀏覽器,跟 HTTP request 一樣會有 header 和 body 兩部份

Response Header

Response header 內會附上關於請求的回應狀態碼、回覆的資料類型Content-Type 和 資料長度 Content-Length 等訊息

raw-image

從 Chrome 開發者工具的 Network 可以查看,這是我點擊進入旅遊網站的產品頁面後,伺服器回傳給我的內容,包含請求的網址(Request URL)、請求的方法、回應狀態碼和我的IP位置等

其中狀態呈現綠色 200,我們就可以知道這個請求是「成功」的,可以從 response body 找到我們要請求的資料,一般常見的狀態碼有

  • 200 成功回應
  • 4xx 用戶端錯誤回應
  • 5xx 伺服器端錯誤

其他詳細的狀態碼可以參考MDN文件

身為新手一開始最害怕看到 4xx、5xx 各種紅色錯誤警告,不過學會看狀態碼和伺服器回傳的錯誤訊息後,就會減少很多寫 code 的挫折感!

首先,遇到 4xx 類型的錯誤,90%是前端程式碼有誤、請求資源錯誤等問題,我自己發生的錯誤就有以下幾種:

  • 程式碼拼錯字,少了 ed、少加一個 s ...,都會導致資源讀取不到,而發生錯誤的情形
  • 請求方法、api 路徑、請求的參數錯誤、格式不正確、或是缺少必填的參數也會導致請求失敗
  • 請求資源不存在,資料庫找不到指定的資料,請求再度失敗
  • 權限不足,伺服器會阻擋,導致請求失敗
  • CORS 跨域問題

除了權限和CORS,以上問題通常檢查一下自己的錯字,請求的參數格式,就可以解決一半了,沒有想像中可怕!

遇到權限問題或 500 錯誤,通常我就會直接去找後端工程師討論,CORS問題就比較複雜些...

CORS 是什麼呢?

CORS 是 Cross-Origin Resource Sharing 的縮寫,中文則是「跨來源資源共用」,是瀏覽器本身的一種防禦機制,網頁想存取不同源的伺服器的資源時,都必須遵守

圖片來源:https://Io-victoria.com/introduction-to-cross-origin-resource-sharing-cors

圖片來源:https://Io-victoria.com/introduction-to-cross-origin-resource-sharing-cors

主要概念是,當網路請求「不同源」時,瀏覽器會基於安全性而阻擋這個請求的「回傳」,也就是請求發送出去,伺服器也回傳資料了,但是你無法從瀏覽器中查看回傳的結果

那麼什麼情況下屬於「不同源」?

  • 不同協定:http、https就是不同的網路協定方式
  • 不同埠號::3000、:8080
  • 不同網域:google.com / yahoo.com

所以在開發時,前端和 api server 不在同一台主機上,或是不同埠號,就會產生CORS的問題

至於如何解決CORS的問題呢?

1. 找後端工程師協助處理:

  • 請後端工程師在 response header 裡設置相應的標頭,如Access-Control-Allow-Origin: *,代表伺服器允許所有來源的請求
  • 考慮到 * 是允許所有來源,會有安全性問題,也可填入「具體的來源」

2. 在開發環境使用代理伺服器:

  • 由代理伺服器來轉發請求,繞過 CORS 限制(我目前只使用過 vite 的 proxy 代理,實作可以參考官方文件



Response Body

Response body 這部分就比較沒有疑問了,我們請求的資料都會裝在 body 內部,查看的方式有以下幾種:

  • 最簡單用 console 印出來
  • Network 裡面的 response
  • Network 裡面的 preview : 開發者工具會幫我們將 payload 用易於閱讀的方式顯示


HTTP response 的筆記就到這裡結束啦!

我是Amber,前端學習中,歡迎交流討論🧸

Github | Discord:@amberhh


其他參考文章:




留言
avatar-img
留言分享你的想法!
阿Han-avatar-img
2023/09/02
就像是國與國之間需要事先準備護照,而根據政策的制定來檢核哪些國家的人能夠進入本國。由後端開放建議有限度的加入Policy,否則就會像入境一般,給予太多特權導致販運毒品、人口...XD謝謝分享,學習了~~
Amber hh-avatar-img
發文者
2023/09/02
阿Han 用護照來說明更好懂了,謝謝你🙌🏻🙌🏻!
avatar-img
Amber hh的沙龍
23會員
22內容數
Amber hh的沙龍的其他內容
2024/09/04
第三次月會來了!這個月的主題是「工程師的溝通秘訣」 很多人認為,當工程師只要跟電腦對話就好,在轉職之前我也這麼認為的,尤其是以前在服務業工作,從早到晚跟客戶對談、處理他們各種疑難雜症和情緒的過程,實在太容易讓我感到心累了,倒不如整天跟電腦對話,對錯很明顯,也不用顧及雙方情緒,肯定比處理客訴簡單
Thumbnail
2024/09/04
第三次月會來了!這個月的主題是「工程師的溝通秘訣」 很多人認為,當工程師只要跟電腦對話就好,在轉職之前我也這麼認為的,尤其是以前在服務業工作,從早到晚跟客戶對談、處理他們各種疑難雜症和情緒的過程,實在太容易讓我感到心累了,倒不如整天跟電腦對話,對錯很明顯,也不用顧及雙方情緒,肯定比處理客訴簡單
Thumbnail
2024/08/03
JSDoc 全名是 JavaScript Documentation,顧名思義是為 JavaScript 所使用的 API 文件,在程式碼內透過註解的方式撰寫,運行後 JSDoc 會自動掃描註解內容,並生成一份網頁版的文件,對於沒有使用 Typescript 開發的專案,也
Thumbnail
2024/08/03
JSDoc 全名是 JavaScript Documentation,顧名思義是為 JavaScript 所使用的 API 文件,在程式碼內透過註解的方式撰寫,運行後 JSDoc 會自動掃描註解內容,並生成一份網頁版的文件,對於沒有使用 Typescript 開發的專案,也
Thumbnail
2024/07/24
剛開始學前端都是跟著六角的課程進度走,雖然知道自己不會的技術很多,但至少有明確的學習目標,也會定期產出結果,當時的焦慮來源只覺得時間總是不夠,殊不知真正踏入實務工作後,除了焦慮時間不夠之外,甚至還有點迷失了方向。 轉職後的公司僅一人前端,我沒有 mentor 帶領,也找不到可以效仿學習的 Ro
Thumbnail
2024/07/24
剛開始學前端都是跟著六角的課程進度走,雖然知道自己不會的技術很多,但至少有明確的學習目標,也會定期產出結果,當時的焦慮來源只覺得時間總是不夠,殊不知真正踏入實務工作後,除了焦慮時間不夠之外,甚至還有點迷失了方向。 轉職後的公司僅一人前端,我沒有 mentor 帶領,也找不到可以效仿學習的 Ro
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
Thumbnail
網頁回應碼是指當網頁伺服器處理完一個請求後所回傳的狀態碼。這篇文章介紹了網頁回應碼的分類,包括1XX、2XX、3XX、4XX和5XX狀態碼,並解釋了各種狀態碼的意義和常見原因。
Thumbnail
網頁回應碼是指當網頁伺服器處理完一個請求後所回傳的狀態碼。這篇文章介紹了網頁回應碼的分類,包括1XX、2XX、3XX、4XX和5XX狀態碼,並解釋了各種狀態碼的意義和常見原因。
Thumbnail
API(Application Programming Interface,應用程式介面)可以視為不同軟體系統之間的溝通橋梁,讓雙邊可以交換數據並執行各種功能。這篇會記錄產品經理一定要知道的幾個 API 概念,像是常見的錯誤代碼以及不同的 HTTP 方法(如 PUT、GET、POST)和實際案例說明
Thumbnail
API(Application Programming Interface,應用程式介面)可以視為不同軟體系統之間的溝通橋梁,讓雙邊可以交換數據並執行各種功能。這篇會記錄產品經理一定要知道的幾個 API 概念,像是常見的錯誤代碼以及不同的 HTTP 方法(如 PUT、GET、POST)和實際案例說明
Thumbnail
之前在【什麼是網路請求(HTTP response)】筆記裡有提到,網路請求遇到 CORS 跨域問題,在開發時可以透過 vite 的反向代理來解決,那麼什麼是反向代理,有反向代理的話是不是也有正向代理呢?
Thumbnail
之前在【什麼是網路請求(HTTP response)】筆記裡有提到,網路請求遇到 CORS 跨域問題,在開發時可以透過 vite 的反向代理來解決,那麼什麼是反向代理,有反向代理的話是不是也有正向代理呢?
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
這篇想來寫,剛碰到js得時候,為了讓程式可以運作而安裝Node.js 。Node.js 是能夠在伺服器上面運行 JavaScript 的應用平台環境,透過 Node.js 提供的函式庫與執行環境能完成伺服器端服務。此篇幅就直接從純後端的角度切入摟(對不起拉我寫來寫去還是不知道怎麼順順的寫好文章開頭Q
Thumbnail
這篇想來寫,剛碰到js得時候,為了讓程式可以運作而安裝Node.js 。Node.js 是能夠在伺服器上面運行 JavaScript 的應用平台環境,透過 Node.js 提供的函式庫與執行環境能完成伺服器端服務。此篇幅就直接從純後端的角度切入摟(對不起拉我寫來寫去還是不知道怎麼順順的寫好文章開頭Q
Thumbnail
上篇記錄了關於 HTTP request 的筆記,這篇則是對於請求的回應紀錄~
Thumbnail
上篇記錄了關於 HTTP request 的筆記,這篇則是對於請求的回應紀錄~
Thumbnail
上一篇【瀏覽器與伺服器是如何溝通的?】有說瀏覽器和伺服器的溝通橋樑是「網路請求」,這篇就來記錄一下,我目前學習到的網路請求是什麼~
Thumbnail
上一篇【瀏覽器與伺服器是如何溝通的?】有說瀏覽器和伺服器的溝通橋樑是「網路請求」,這篇就來記錄一下,我目前學習到的網路請求是什麼~
Thumbnail
從瀏覽器console看到類似這個error:  ..... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource 表示遇到CORS的
Thumbnail
從瀏覽器console看到類似這個error:  ..... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource 表示遇到CORS的
Thumbnail
Cross-Origin Resource Sharing 簡稱 CORS,中文為跨來源資源共享。 上一篇提到web瀏覽器有同源政策的限制,而CORS則是一種安全確認機制,讓瀏覽器和伺服器之間能確保安全的進行cross origin資源共享,即若伺服器同意,即可達成跨來源資源共享。
Thumbnail
Cross-Origin Resource Sharing 簡稱 CORS,中文為跨來源資源共享。 上一篇提到web瀏覽器有同源政策的限制,而CORS則是一種安全確認機制,讓瀏覽器和伺服器之間能確保安全的進行cross origin資源共享,即若伺服器同意,即可達成跨來源資源共享。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News