正向代理 & 反向代理

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


之前在【什麼是網路請求(HTTP response)】筆記裡有提到,網路請求遇到 CORS 跨域問題,在開發時可以透過 vite 的反向代理來解決,那麼什麼是反向代理,有反向代理的話是不是也有正向代理呢?


帶著這樣的疑問,我在網路上找到一篇用「租房」來說明正向/反向代理的文章:【終於有人把正向代理和反向代理解釋明白了!】,內容相當詳細好懂,對轉職人來說真是太棒了,這篇筆記也是基於該文章整理而成的唷~


既然是以租房為範例,首先我們要知道稍後會出現的幾個角色:

  • 租客 (開發者/使用者)
  • 房東 (目標伺服器)
  • 二房東 (代理伺服器)、房仲 (代理伺服器)

正向代理

情境:
租客向房仲(代理伺服器)詢問物件,並由房仲來進行帶看,但房東並不會知道看他房子的人(開發者/使用者)是誰

正向代理是伺服器(仲介)代理了「用戶端」(租客)去和「目標伺服器」(房東)進行交互

正向代理的用途:

  • 如果有重複的請求,可以從暫存(cache)取資料,加快速度 (房仲可以多次帶看)
  • 突破或減少網域限制 (假設房仲手上案源多,就不會受限於單一房東)
  • 隱藏使用者IP位置,減少攻擊 (房東不知道租客訊息)

反向代理

情境:
房東將物件交給親戚朋友(代理伺服器)來進行洽談帶看,租客(開發者/使用者)並不知道真正的房東是誰,會認為自己接洽的就是房東(目標伺服器)

反向代理是伺服器(二房東)代理了「目標伺服器」(房東)去和「用戶端」(租客)進行交互

反向代理用途:

  • 如果有重複的請求,可以從暫存(cache)取資料,加快速度 (二房東一樣可以多次帶看)
  • 負載均衡 (房東很忙,又不想委託第三方,於是請認識的親友來幫忙分擔)
  • 隱藏服務器IP位置,充當防火牆,減少攻擊 (租客不知道房東訊息)


正向代理 & 反向代理 比較

正向代理和反向代理看起來都是用戶和目標伺服器之間的橋樑,都可以提高訪問速度,但兩者還是有所區別的,透過表格比較會更加清楚些:

raw-image
raw-image


了解兩者差異之後,回到 vite proxy 上吧,在開發階段,前端會使用 vite 創建的虛擬伺服器去 call 後端的 API,這時候虛擬伺服器和後端伺服器處於不同的伺服器位置,而產生了跨域問題,vite proxy 可以幫我們把 API 的路徑(例如:http://localhost:5173/api/bar) 換成真實的後端 API 網址(https://google.com/api/bar)。


也就是 vite 伺服器(租客) 在不知道房東(後端伺服器)真實身份的情況下,一樣可以獲取 API 的數據資料,這就是 vite 的反向代理囉!至於 vite proxy 代理的實作方式,直接參考官方文件就可以了~


其他參考資料:

正向代理與反向代理】、【Vite 配置代理 Proxy

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



留言
avatar-img
留言分享你的想法!
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
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
提供一條簡單公式、一套盤點思路,幫助你快速算出去日本自助旅遊需要準備多少日幣現金!
Thumbnail
提供一條簡單公式、一套盤點思路,幫助你快速算出去日本自助旅遊需要準備多少日幣現金!
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
代理模式通過封裝原始對象來實現對該對象的控制和管理,同時不改變原始對象的行為或客戶端與該對象互動的方式,以此介入或增強對該對象的訪問和操作。
Thumbnail
代理模式通過封裝原始對象來實現對該對象的控制和管理,同時不改變原始對象的行為或客戶端與該對象互動的方式,以此介入或增強對該對象的訪問和操作。
Thumbnail
AWS CloudFront + S3 遇到 CORS 解決方式
Thumbnail
AWS CloudFront + S3 遇到 CORS 解決方式
Thumbnail
之前在【什麼是網路請求(HTTP response)】筆記裡有提到,網路請求遇到 CORS 跨域問題,在開發時可以透過 vite 的反向代理來解決,那麼什麼是反向代理,有反向代理的話是不是也有正向代理呢?
Thumbnail
之前在【什麼是網路請求(HTTP response)】筆記裡有提到,網路請求遇到 CORS 跨域問題,在開發時可以透過 vite 的反向代理來解決,那麼什麼是反向代理,有反向代理的話是不是也有正向代理呢?
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News