正向代理和反向代理釋義

代理

客戶端 ====== 代理 ====== 服務端

對客戶端而言,代理是服務端;對服務端而言,代理是客戶端。這個很好理解吧,以祖孫三代關系為例,爸爸在兒子面前是爸爸,爸爸在爺爺面前是兒子。

無論是正向代理還是反向代理,代理總是在邏輯上位于客戶端和服務端之間,充當二者通訊的媒介。

代理是叫正向代理還是叫反向代理,取決于它站那一邊。站客戶端一邊的叫正向代理,站服務端一邊的叫反向代理。

正向代理

客戶端 == 代理 ========== 服務端

客戶端花錢請的代理,它替客戶端干活,以客戶端的身份與服務端通訊。這種代理叫正向代理。

因為正向代理的存在,客戶端躲在代理后面,不需要直接跟服務端通訊,具有隱藏客戶端真實身份的效果,服務端不知道客戶端的存在。

需要正向代理的場景主要有兩個,以訪問谷歌網站(服務端)為例:

  • 場景1:我(客戶端)無法直接訪問服務端,需要找一個代理才能間接訪問到服務端
  • 場景2:我(客戶端)可以直接訪問服務端,但我不想讓服務端知道我訪問它,需要找一個代理代替我訪問它(隱藏身份)

正向代理概念在歷史上先于反向代理出現,當時就叫代理,直到反向代理概念出現之后,為了方便區分才改叫正向代理。現在如果不明確正向反向,通常還是指正向代理。

反向代理

客戶端 ========== 代理 == 服務端

服務端花錢請的代理,它替服務端干活,以服務端的身份與客戶端通訊。這種代理叫反向代理。

由于反向代理的存在,服務端躲在代理后面,不需要直接與客戶端通訊,具有隱藏服務端真實身份的效果,客戶端不知道服務端的存在。

反向代理的主要應用場景是:

  • 場景1:后臺服務器很多,不想或不方便直接面對客戶端,讓反向代理服務器頂上去,可以更靈活的設計和變更服務端網絡架構
  • 場景2:在墻外建立反向代理服務器,通過它間接訪問服務端,墻只能看到我訪問反向代理,看不到訪問真實服務器(隱藏行為)

咦,根據我前面的定義,場景2里應該是正向代理啊——客戶端花錢請的代理。所以大概率需要修正:誰花錢請的代理并不重要,代理的身份才重要。下文附MDN權威定義,應該更加準確和清晰。

MDN權威定義

https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling

There are two types of proxies: forward proxies (or tunnel, or gateway) and reverse proxies (used to control and protect access to a server for load-balancing, authentication, decryption or caching).

Forward proxies

A forward proxy, or gateway, or just “proxy” provides proxy services to a client or a group of clients. There are likely hundreds of thousands of open forward proxies on the Internet. They store and forward Internet services (like the DNS, or web pages) to reduce and control the bandwidth used by the group.

Forward proxies can also be anonymous and allow users to hide their IP address while browsing the Web or using other Internet services. For example, Tor routes internet traffic through multiple proxies for anonymity.

Reverse proxies

As the name implies, a reverse proxy does the opposite of what a forward proxy does: A forward proxy acts on behalf of clients (or requesting hosts). Forward proxies can hide the identities of clients whereas reverse proxies can hide the identities of servers. Reverse proxies have several use cases, a few are:

Load balancing: distribute the load to several web servers,
Cache static content: offload the web servers by caching static content like pictures,
Compression: compress and optimize content to speed up load time.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696466.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696466.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696466.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android14 InputManager-ANR原理

目標窗口查找時,作為派發目標的窗口必須已經準備好接收新的輸入事件,否則判定窗口處于未響應狀態,終止事件的派發過程,并在一段時間后再試。倘若5s后窗口仍然未準備好接收輸入事件,將導致ANR。直接引發ANR的原因有很多…

操作系統學習記錄

系統篇 內核 應用和底層硬件(CPU、內存、硬盤等)的連接橋梁。 用戶態和內核態 CPU和進程可以在兩種態下運行。 內核態可以直接訪問所有硬件資源,用戶態需要通過“系統調用”陷入到內核態才能否則只能訪問用戶空間地址的內存(虛…

P8630 [藍橋杯 2015 國 B] 密文搜索

P8630 [藍橋杯 2015 國 B] 密文搜索 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn)https://www.luogu.com.cn/problem/P8630 題目分析 基本上是hash的板子,但實際上對于密碼串,只要判斷主串中任意連續的八個位置是否存在密碼串即可;那么我們…

PHP學習筆記1——html標簽以及頭部元素頁面布局

html是一種超文本標識符號&#xff0c;用來在網頁中指定顯示頁面格式顯示 基本格式 <!doctype html> <html><head><title></title> </head><body> </body></html> 包含聲明&#xff0c;框架html&#xff0c;頭部head&a…

怎么把公眾號文章鏈接做成二維碼?掃碼查看公眾號推文的方法

公眾號是現在給用戶分享內容的一種方式&#xff0c;通過輸出優質的公眾號文章內容來為關注者提供信息和內容。當我們發布公眾號文章后&#xff0c;有些情況下會需要將公眾號內容生成二維碼之后&#xff0c;印刷到傳單、展板上來顯示&#xff0c;那么如何將公眾號的文章鏈接轉二…

Commonjs 和 Es Module詳解

一 前言 今天我們來深度分析一下 Commonjs 和 Es Module&#xff0c;希望通過本文的學習&#xff0c;能夠讓大家徹底明白 Commonjs 和 Es Module 原理&#xff0c;能夠一次性搞定面試中遇到的大部分有關 Commonjs 和 Es Module 的問題。 帶上疑問開始今天的分析&#xff1a; …

數字化轉型導師堅鵬:城市數字化轉型頂層規劃方法

城市數字化轉型頂層規劃方法 課程背景&#xff1a; 很多城市存在以下問題&#xff1a; 不知道如何系統地開展數字化轉型工作&#xff1f; 不清楚如何科學地制定數字化轉型戰略&#xff1f; 不知道如何高效地實施數字化轉型戰略&#xff1f; 課程特色&#xff1a; 有…

基于SpringBoot的在線拍賣系統設計與實現(源碼+調試+LW+PPT)

項目描述 臨近學期結束&#xff0c;還是畢業設計&#xff0c;你還在做java程序網絡編程&#xff0c;期末作業&#xff0c;老師的作業要求覺得大了嗎?不知道畢業設計該怎么辦?網頁功能的數量是否太多?沒有合適的類型或系統?等等。今天給大家介紹一篇基于SpringBoot的在線拍…

C++編程知識

&#xff08;1&#xff09;把數組中的所有元素賦值為一個值 memset(arr,0x3f,sizeof(arr))//最大值 memset(arr,0,sizeof(distance));//賦值為0&#xff08;2&#xff09;找最大最小值的下標 int zuixiao-1//設置dist-1只是因為方便選取第一個數作為比較對象而已 for(i0;i<…

VSCode將某個字符替換為換行符并換行顯示

不想每次去查了&#xff0c;我自己寫博客記錄一下~~~ 我的需求是一個一行的數據&#xff0c;用逗號分開&#xff0c;我希望豎著看有規律點&#xff0c;類似這樣 快捷鍵其實想 optioncommandf &#xff0c;但是我每次都記不住&#xff0c;大家可以直接在編輯欄找到replace的地方…

vite 快速搭建 Vue3.0項目

一、初始化項目 npm create vite-app <project name>二、進入項目目錄 cd ……三、安裝依賴 npm install四、啟動項目 npm run dev五、配置項目 安裝 typescript npm add typescript -D初始化 tsconfig.json //執行命令 初始化 tsconfig.json npx tsc --init …

Unity Meta XR SDK 快捷配置開發工具【Building Block/Quick Action/OVRCameraRigInteraction】

文章目錄 &#x1f4d5;教程說明&#x1f4d5;Building Block&#x1f4d5;Quick Action&#x1f4d5;OVRCameraRigInteraction 此教程相關的詳細教案&#xff0c;文檔&#xff0c;思維導圖和工程文件會放入 Spatial XR 社區。這是一個高質量 XR 社區&#xff0c;博主目前在內…

【Swift】NSPopUpButton用法和示例

1.簡介 NSPopUpButton 是 macOS 開發中常用的控件之一&#xff0c;它提供了一個彈出菜單&#xff0c;用戶可以從中選擇一個選項。NSPopUpButton 可以包含多個 NSMenuItem 對象&#xff0c;每個 NSMenuItem 表示一個選項。 2.常用方法 下面是一些 NSPopUpButton 的常用功能和…

進程線程的通信-day5

1、將互斥機制的代碼實現重新敲一遍。 #include<myhead.h>//臨界資源 int num520;//1、創建一個互斥鎖變量 pthread_mutex_t mutex;void *task1(void *arg); void *task2(void *arg); int main(int argc, const char *argv[]) {//2、初始化互斥鎖pthread_mutex_init(&am…

Shiro-14-subject 主體

理解Apache Shiro中的主題 毫無疑問&#xff0c;Apache Shiro中最重要的概念是主題。 “主題”只是一個安全術語&#xff0c;它指的是應用程序用戶特定于安全的“視圖”。Shiro主題實例代表了單個應用程序用戶的安全狀態和操作。 這些操作包括: 身份驗證(登錄) 授權(訪問控…

了解JSON的作用及其方法

什么是json JSON&#xff08;JavaScript Object Notation&#xff09;是一種輕量級的數據交換格式采用完全獨立編程語言的文本格式存儲和表示數據&#xff08;就是字符串&#xff09;。它基于JavaScript語法&#xff0c;但可以被多種編程語言使用和解析。JSON以鍵值對的形式存…

高光譜圖像降噪方法(2D Wavelet, 3D Wavelet, FORPDN, HyRes等方法)

近年來&#xff0c;隨著遙感應用的不斷深入&#xff0c;高光譜圖像研究已經成為遙感領域發展最迅速的技術之一。與其他傳統成像技術相比&#xff0c;高光譜圖像具有更多優勢&#xff1a;更豐富的信息量、納米級的光譜分辨率以及范圍更廣且連續的光譜。因此&#xff0c;在農業、…

C#用反射實現兩個類的對象之間相同屬性的值的復制

目錄 1.適用于創建實體的時候從一個實體作為數據源賦值 2.適用于沒有創建實體&#xff0c;兩個實體之間數據的轉換 1.適用于創建實體的時候從一個實體作為數據源賦值 /// <summary> /// 反射實現兩個類的對象之間相同屬性的值的復制 /// 適用于初始化新實體 /// </…

選擇VR全景行業,需要了解哪些內容?

近年來&#xff0c;隨著虛擬現實、增強現實等技術的持續發展&#xff0c;VR全景消費市場得以穩步擴張。其次&#xff0c;元宇宙行業的高速發展&#xff0c;也在進一步拉動VR全景技術的持續進步&#xff0c;帶動VR產業的高質量發展。作為一種戰略性的新興產業&#xff0c;國家和…

OJ_學生信息系統

題干 輸入樣例&#xff1a; 5 zhaoyi 70 80 90 240 qianer 65 32 77 174 sunsan 100 55 68 223 lisi 86 77 90 253 wangwu 100 59 66 225 輸出樣例&#xff1a; *[qianer] 65 32 77 *[sunsan] 100 55 68 *[wangwu] 100 59 66 lisi 86 77 90 zhaoyi 70 80 90 wangwu 100 59 6…