2010-08-24 22 views
5

我做了很多的PHP和JavaScript,但我認爲這是相對語言不可知的問題。是否有何時使用每個任何最佳實踐:何時使用URL/session/cookie變量?

  • URL變量
  • Session變量
  • 餅乾

我明白的內在侷限性是什麼他們中的一些不能這樣做,但似乎它們的使用有時也可能重疊,而那些實例是我真正問到的。


編輯 只是爲了澄清:我很熟悉這些方法被存貯在客戶端/服務器可以訪問的技術性問題,以及。我正在尋找的是一些更高級別的東西,比如「臨時用戶設置應該存在於cookies中,數據狀態信息應該存在於服務器上等等......」

謝謝!

回答

6

一般:

  1. 使用URL(GET)發送簡單的請求參數的服務器參數,例如。搜索查詢或產品列表中的頁碼。

  2. 使用會話變量,如名稱所示,用於存儲與特定用戶會話相關的臨時數據,例如,登錄用戶的ID或非持久購物車。

  3. 儘可能避免使用cookie。謹慎使用它們來存儲與特定計算機/用戶配置文件相關的設置,例如。諸如「在此計算機上記住我的用戶ID」的設置。

+0

謝謝卡薩布蘭卡! – loneboat 2010-08-24 18:40:36

6
  1. 會話存儲在服務器上,這意味着客戶端無法訪問您存儲的關於它們的信息。會話數據存儲在您的服務器上,不需要每頁都完整地傳輸;客戶只需發送一個ID並從服務器加載數據。

  2. 另一方面,Cookie存儲在客戶端。它們可以長時間持久使用,並且可以讓您在擁有一組Web服務器時更加順暢地工作。然而,與會話不同,存儲在Cookie中的數據會隨每個頁面請求一起完整傳輸。如果您需要更長時間的登錄會話,則應使用cookie。

  3. URL變量(GET)是開放的,可以被用戶看到。它們也很有用,因爲它允許用戶爲頁面添加書籤並共享鏈接。

+0

謝謝,shamittomar。我並沒有將其標記爲已接受(我的錯,請參閱上面的說明),但仍然有效,因爲您目前的聲望是666.:-o – loneboat 2010-08-24 18:39:15

0

當cookie被禁用時,PHP將會話ID直接嵌入到URL中。然後,會話ID變成可通過HTTP GET變量訪問的值。