2017-05-26 33 views
1

在ASP.NET中,這些有什麼區別嗎?Request.ServerVariables [「HTTP_X_FORWARDED_FOR」]和Request.Headers [「X-Forwarded-For」]之間有區別嗎?

  1. HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
  2. HttpContext.Current.Request.Headers["X-Forwarded-For"]

Request.Headers更清晰給我,但我經常看到使用Request.ServerVariables["HTTP_X_FORWARDED_FOR"](與Request.ServerVariables["REMOTE_ADDR"]一起)的示例代碼,我不明白爲什麼。

回答

2

Request.ServerVariables["HTTP_X_FORWARDED_FOR"]Request.Headers["X-Forwarded-For"]之間沒有區別。

IIS Server Variables以「HTTP_」開頭的文檔說:「存儲在標題中的值」。

所以Request.ServerVariables["HTTP_X_FORWARDED_FOR"]只是返回X_Forwarded_For標題。沒有其他的。

HTTP_X_FORWARDED_FORREMOTE_ADDR之間的區別僅在您和客戶端之間存在代理服務器時才顯而易見。在這些情況下,REMOTE_ADDR將具有代理服務器的地址,並且HTTP_X_FORWARDED_FOR將具有最終客戶端的地址。

如果沒有代理,則HTTP_X_FORWARDED_FOR將爲空,REMOTE_ADDR將具有最終客戶端的地址。

相關問題