首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> ASP 程式設計 >> ASP 相關知識

ASP 取得完整 URL 與 ServerVariables 常用鍵值速查表

     編輯:ASP 相關知識

Request.ServerVariables 實戰速查與完整 URL 組合技巧

快速取得目前頁面完整 URL、客戶端 IP、伺服器資訊、HTTP 標頭等關鍵環境變數,附常用鍵值中文對照表與組合範例。

完整 URL 組合

' 方案一:標準組合 (含 QueryString)
fullUrl = "https://" & Request.ServerVariables("HTTP_HOST") & _
          Request.ServerVariables("URL") & _
          "?" & Request.ServerVariables("QUERY_STRING")

' 方案二:Script_Name 替代 URL (含虛擬目錄)
fullUrl = "https://" & Request.ServerVariables("HTTP_HOST") & _
          Request.ServerVariables("SCRIPT_NAME") & _
          "?" & Request.ServerVariables("QUERY_STRING")

' 方案三:僅路徑 (無查詢字串)
pageUrl = "https://" & Request.ServerVariables("HTTP_HOST") & _
          Request.ServerVariables("SCRIPT_NAME")

常用 ServerVariables 中文對照表

鍵名中文說明範例值
HTTP_HOSTHost 標頭 (含埠號)www.example.com:8080
SERVER_NAME伺服器主機名稱WEB-SERVER-01
SERVER_PORT伺服器監聽埠80
LOCAL_ADDR伺服器本機 IP192.168.1.10
URL / SCRIPT_NAME請求虛擬路徑/folder/page.asp
QUERY_STRING查詢字串 (不含 ?)id=123&cat=books
REQUEST_METHODHTTP 方法GET / POST
REMOTE_ADDR客戶端 IP203.0.113.45
HTTP_USER_AGENT瀏覽器識別字串Mozilla/5.0 (Windows NT 10.0...)
HTTP_REFERER來源頁面 URLhttps://google.com/search?q=asp
HTTP_COOKIECookie 標頭原文sessionId=abc123; lang=zh-TW
CONTENT_TYPE請求內容型別application/x-www-form-urlencoded
CONTENT_LENGTH請求內容長度 (位元組)1024
HTTPS是否 HTTPSon / off
SERVER_SOFTWARE伺服器軟體版本Microsoft-IIS/10.0

實戰應用範例

1. 判斷是否 HTTPS

If Request.ServerVariables("HTTPS") = "on" Then
    ' 安全連線
End If

2. 取得客戶端真實 IP (含 Proxy)

Function GetClientIP()
    Dim ip
    ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    If ip = "" Then ip = Request.ServerVariables("REMOTE_ADDR")
    GetClientIP = ip
End Function

3. 防盜鏈:驗證 Referer 同源

Dim referer, host
referer = Request.ServerVariables("HTTP_REFERER")
host = Request.ServerVariables("HTTP_HOST")
If referer = "" Or InStr(referer, host) = 0 Then
    Response.Status = "403 Forbidden"
    Response.End
End If

4. 記錄完整存取日誌

logLine = Now() & "|" & Request.ServerVariables("REMOTE_ADDR") & "|" & _
          Request.ServerVariables("REQUEST_METHOD") & "|" & _
          Request.ServerVariables("SCRIPT_NAME") & "|" & _
          Request.ServerVariables("QUERY_STRING") & "|" & _
          Request.ServerVariables("HTTP_USER_AGENT")

注意事項

  • HTTP_REFERER 可被用戶端偽造或瀏覽器隱私模式隱藏,不可作為安全依據
  • REMOTE_ADDR 在負載平衡/反向 Proxy 後為 Proxy IP,需讀 HTTP_X_FORWARDED_FOR
  • IIS 設定 啟用伺服器端變數記錄 才能在 IIS 日誌中看到自訂變數
  • 部分變數需 IIS 「ISAPI 篩選器」或「URL Rewrite」模組支援
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved