2009-12-31 29 views

回答

6

兩種方式:

  1. 限制cookie的路徑,需要在Cookie中的包含網站的PHP腳本的只有一部分,或
  2. 從不同的域,餅乾其中即成圖像和CSS將不會被髮送。
+0

在我的應用程序只有一個公共HTML文件夾中的PHP文件是在同一目錄下的index.php存在資產和媒體文件夾。 在這種情況下,定義cookie路徑不會產生任何影響,並且創建新的域或子域並不總是可行。 – Nazariy

+0

對不起,路徑和域是唯一的方法(除了端口和安全性,通常沒有多大用處)。爲什麼不將index.php重定向到/home/index.php或/a/index.php或類似的東西?然後,Cookie只能進入該子路徑。 – dmazzoni

1

我擡頭一看cookie specification

當它向原始服務器發送請求時,如果用戶代理存儲了適用於該請求的Cookie,則會包含Cookie請求標頭。

它描述的唯一條件是域,路徑,端口和安全(https)。如果你無法重組應用程序以避免這種情況,那麼你將會得到無關的cookie,並且你可能無法做到這一點(不能更換互聯網上的所有瀏覽器,或者只是不發送cookie來開始)。我會考慮將重定向放在/指向子目錄,但這可能與您希望保存的開銷相同,並且具有語義影響。

你有基準嗎?它究竟有多大的交易?你發送的餅乾有多大?是否還有其他優化可以改善用戶體驗?

Cookie的語法,以供參考:

set-cookie  =  "Set-Cookie2:" cookies 
    cookies   =  1#cookie 
    cookie   =  NAME "=" VALUE *(";" set-cookie-av) 
    NAME   =  attr 
    VALUE   =  value 
    set-cookie-av =  "Comment" "=" value 
        |  "CommentURL" "=" <"> http_URL <"> 
        |  "Discard" 
        |  "Domain" "=" value 
        |  "Max-Age" "=" value 
        |  "Path" "=" value 
        |  "Port" [ "=" <"> portlist <"> ] 
        |  "Secure" 
        |  "Version" "=" 1*DIGIT 
    portlist  =  1#portnum 
    portnum   =  1*DIGIT 
相關問題