使用者訪問A伺服器h5,A伺服器h5呼叫B臺伺服器後台,B伺服器得到的是使用者的ip還是A伺服器的ip呢

時間 2022-01-08 14:18:48

1樓:鄒定幫

B得到什麼,取決於B用什麼方式去獲得

最直接的,獲取遠端的位址

得到的是和B發起連線的那個機器的位址,在這裡也就是A

這個位址也不用A主動去告訴B,因為HTTP是基於TCP的,在連線建立的時候,B就已經知道對面是誰了

那B能知道到底是誰連A,讓A連過來的嗎

不能,起碼這種方式不能,因為從始至終和B有聯絡的只有A乙個,其他的B什麼也不知道

那如果就是要讓B知道到底「真實」的使用者是誰怎麼辦

B心裡苦啊,臣妾做不到啊

B乙個人是沒有能力知道乙個和他無關的使用者的資訊的

A: 大哥不慌,你不知道,但我知道啊,那些使用者是連我的,我知道他們的IP

B: 老弟靠譜,那行,要不你過來的時候告訴我一下,我到時候記下來

A: OK,沒問題,我就把連我的使用者的IP放在我頭上,乙個叫X-Forwarded-For的地方

B: 為啥叫這個名字,叫X-USER行嗎

A: 行,但是我懶,不想改

B: -_-!,聽你的

於是,B可以通過getHeader("X-Forwarded-For")取得連A的「真實」使用者

但如果A沒放這個資訊,B就取了個寂寞。。。

那這樣得到的使用者真的是「真實」的嗎?有沒有可能從A的使用者來的請求,也是從其他地方來的,A的使用者只是個中轉站?

不好說,現在只是往前推了一層

現在A和使用者的關係就像之前B和A的關係

那我用同樣的邏輯處理A和使用者行嗎?

行,也不行

說行是因為這個地方可以放多個位址,連起來就行了,從a到b到c,可以寫成a,b,c

說不行是因為,B和A兩個伺服器因為都是你維護的,可以認為從A發過來的資訊是可信的,但從使用者那發過來的就不好說了

使用者可以說,我是從火星來的,你信還是不信?

所以,對於A,有兩種選擇

要麼選擇相信使用者,但是不能確認資料是不是偽造的

要麼選擇不信,不管你說什麼,我都只信連我的IP,這樣雖然不知道你最根本的源頭,但能保證這個IP是肯定你的乙個途徑點

Android stuido 如何訪問伺服器資料庫

vainquit 現在Android studio官方唯一指定的資料庫就是room,本質上就是sqlite的語法,但其實已經和一般意義上的資料庫操作不一樣了。例如insert命令,你甚至不需要輸入什麼insert into XX values 你只需要給函式傳乙個物件,那個物件被標記為 column...

伺服器租用 伺服器託管 雲主機哪個好?

泰海科技 伺服器租用更方便快捷,硬體都是IDC提供,省時省力,後期沒有維護操心 伺服器託管 需自已對硬體管理,如果硬體出問題了,還是自己去修,去換。雲主機嘛,適合小型初級使用者 馮仁禹 租用最好,穩定,不用擔心出現的各種問題,專業級的保護和維護,託管的話首先你得有物理機,雲主機的話和物理機比起來穩定...

如何解決伺服器訪問快取問題?

汪鵬 如果只是解決問題的話,直接給js和css加戳就可以了。rel stylesheet href index.css?v 20180124 src index.js?v 20180124 script 至於http快取原理,可以參考我的關於http快取的一篇小短文http快取.md 大號 BLOG...