2010-04-01 90 views

回答

24

HTTP Cookies不是PHP的功能,也不是Javascript的一個功能:這些只是允許開發者操縱它們的編程語言。


JS和PHP之間最大的區別在於:

  • 上的JavaScript客戶端
  • PHP運行在服務器端

但餅乾仍然是相同的運行:它們被定義爲一個標準 - 見RFC 2965


不過,請注意,現代瀏覽器實現未從Javascript 訪問的cookies(見setcookiehttponly選項) - 這意味着,根據瀏覽器,以及一個cookie中設定的方式上,它可能無法從Javascript訪問。

這是一種安全措施 - 而不是「JS餅乾」和「PHP餅乾」之間的區別:這只是一些餅乾的財產。

+0

而'httponly'屬性可以很容易地被客戶端使用一些免費的添加像_EditThisCookie_ Chrome擴展。 – Ankit 2015-12-29 22:51:02

0

Cookie只是存儲在客戶端計算機上的文件,通常包含名稱,值和到期日期。 Cookie在HTTP頁面請求的標題內發送,因此它們不會立即可用(除非使用輸出緩衝)。 Cookie對於非敏感數據非常有用,因爲它們可以通過客戶端瀏覽器設置輕鬆找到。

Cookie也可用於創建存儲在服務器上的Session變量。在這種情況下,cookie值是服務器用來標識其值的索引。對於更敏感的數據,這是一種更好的方法,因爲客戶端計算機上只存在「無意義」的值。

考慮到這一點,Cookie和會話數據(以及GET和POST數據)都是超級全局變量,這意味着它們可以被JavaScript和PHP使用。同樣,唯一的問題是cookie可能不會立即可用,這取決於腳本的工作方式和輸出緩衝設置。