日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

WEB應用的緩存兼容性設計

經(jīng)過代理以后 , 由于在客戶端和服務之間增加了中間層 , 因此服務器無法直接拿到客戶端的IP , 服務器端應用也無法直接通過轉發(fā)請求的地址返回給客戶端 。但是在轉發(fā)請求的HTTD頭信息中 , 增加了
【W(wǎng)EB應用的緩存兼容性設計】HTTP_X_FORWARDED_????信息 。用以跟蹤原有的客戶端IP地址和原來客戶端請求的服務器地址:
下面是2個例子 , 用于說明緩存兼容性應用的設計原則:
"對于一個需要服務器名的地址的ASP應用:不要直接引用HTTP_HOST/SERVER_NAME , 判斷一下是否有HTTP_X_FORWARDED_SERVER
;;;
function getHostName ()
;;;;;dim hostName as String = ""
;;;;;hostName = Request.ServerVariables("HTTP_HOST")
;;;;;if not isDBNull(Request.ServerVariables("HTTP_X_FORWARDED_HOST")) then
;if len(trim(Request.ServerVariables("HTTP_X_FORWARDED_HOST"))) > 0 then
;;;;;hostName = Request.ServerVariables("HTTP_X_FORWARDED_HOST")
;end if
;;;;;end if
;;;;;return hostNmae
;; ; end function
;//對于一個需要記錄客戶端IP的PHP應用:不要直接引用REMOTE_ADDR , 而是要使用HTTP_X_FORWARDED_FOR ,
;
function getUserIP (){
;;;;;$user_ip = $_SERVER["REMOTE_ADDR"];
;;;;;if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {
;$user_ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
;;;;;}
;}
注意:HTTP_X_FORWARDED_FOR如果經(jīng)過了多個中間代理服務器 , 有何能是逗號分割的多個地址 ,
比如:200.28.7.155,200.10.225.77 unknown,219.101.137.3
因此在很多舊的數(shù)據(jù)庫設計中(比如BBS)往往用來記錄客戶端地址的字段被設置成20個字節(jié)就顯得過小了 。
經(jīng)常見到類似以下的錯誤信息:
Microsoft JET Database Engine 錯誤 "80040e57" 字段太小而不能接受所要添加的數(shù)據(jù)的數(shù)量 。試著插入或粘貼較少的數(shù)據(jù) 。
/inc/char.asp , 行236
原因就是在設計客戶端訪問地址時 , 相關用戶IP字段大小最好要設計到50個字節(jié)以上 , 當然經(jīng)過3層以上代理的幾率也非常小

    推薦閱讀