cookie的簡單介紹

2021-10-03 05:01:56 字數 3279 閱讀 1123

cookie 是乙個存在再客戶端的儲存空間,這個 cookie 空間裡面可以以字串的形式儲存一些資料。

=> key1=value1; key2=value2; key3=value3

1. 按照網域名稱儲存,你在哪乙個網域名稱下儲存的內容, 就在哪乙個網域名稱下使用, 其他網域名稱都用不了, 和資源路徑位址沒有關係。

2. 儲存大小有限制,4kb 左右或者50 條左右。

3. 時效性,預設是會話級別的時效性(關閉瀏覽器就沒有了),可以手動設定。

4. 請求自動攜帶,當你的 cookie 空間裡面有內容的時候,只要是當前網域名稱下的任意乙個請求, 都會自動攜帶 cookie 放在請求頭裡面, cookie 裡面有多少自動攜帶多少,沒有就不會攜帶了。

5. 前後端操作,前端可以通過 js 操作 cookie 空間進行增刪改查,後端也可以通過任何後端語言進行 cookie 空間的增刪改查。

1,前端操作 cookie 是要使用 js 來操作的,主要操作有增刪改查。
,語法: document.cookie = 'key=value'

注意點:

(1)字串裡面寫的是一條 cookie,如果你想設定兩條 cookie, 那麼要把**執行兩遍, 不能一次設定兩條

(2)設定 cookie 的時效性, 當你不進行額外設定的時候, 你設定的 cookie 預設就是會話級別(關閉瀏覽器就沒有了), 你想給一條 cookie 設定乙個過期時間, 需要在設定這個 cookie 的時候額外新增一下修飾資訊, 修飾資訊怎麼新增, 就直接再 cookie 後面書寫就可以了。例如: a=100;修飾資訊1=修飾的值,

(3)你想給 cookie 設定乙個過期時間,語法: document.cookie = 'a=100;expires=時間物件'

3, 設定 cookie 的時間問題 ?(涉及到世界標準時間和北京時間的問題)

(1) 我們使用 new date() 拿到的是我們終端的時間( 也就是 +8 時區的時間)假設我們拿到的是 10:30那麼 我們 new date() 拿到的是 10:30。但是 cookie 會把你給他的時間當作世界標準時間使用,你設定的 cookie 過期時間是 世界標準時間的 10:30,這個 cookie 我在我們終端時間 18:30 的時候過期。 如果你想讓 cookie 再當前時間過期,那麼你拿到的終端時間要向前返回八個小時。

例子:如果我想讓 cookie 10:30 過期,那麼我設定的時候就要設定成夜裡 2:30

// 設定兩條 cookie

document.cookie = 'a=100'

document.cookie = 'b=200'

var time = new date()

time.settime(time.gettime() - 1000 * 60 * 60 * 8 + 1000 * 15) // 當前時間的 15 秒以後

document.cookie = 'c=300;expires=' + time

+ cookie 是不能刪除的

+ 如果你不想要這個 cookie 了

+ 那麼就把這個 cookie 的過期時間設定成當前時間以前, 那麼就是刪除

注:就是過期時間設在當前時間之前

例子:

document.cookie = 'a=100' // 會話級別

var btn = document.queryselector('button')

btn.onclick = function ()

+ 因為 cookie 的儲存不允許同名

+ 所以你第二次設定同一條 cookie 的時候就是修改

例子:

document.cookie = 'a=100'

var btn = document.queryselector('button')

btn.onclick = function ()

+ 再 js 裡面獲取 cookie

+ 使用 document.cookie 就可以了

+ 他不能獲取單一一條資料

+ 只能是把所有的 cookie 都獲取到

例子 :

console.log(document.cookie)
1,封裝乙個 setcookie 方法用來設定

function setcookie(key, value, expires)  else 

}

2,封裝乙個 getcookie 方法用來獲取、

function getcookie(key) 

}return str

}

1,後端設定 cookie

php 裡面有乙個方法叫做 setcookie, 專門用來設定 cookie

語法: setcookie(key, value, 過期時間)

過期時間可以不寫, 不寫預設是會話界別的

setcookie('php_a', '100');

2,後端獲取時間物件使用 time() 方法

拿到的就是世界標準時間, 單位是 秒

time() + 15 當前時間 15 秒以後

setcookie('php_b', '200', time() + 15) // 設定的這個 cookie 會在 15 秒以後過期

3,後端修改 cookie

也是使用 setcookie 這個方法

從新設定一次就可以了

setcookie('a', '100');

setcookie('a', '200');

4, 後端刪除 cookie

也是使用 setcookie 方法

只要把 cookie 的過期時間設定成當前時間以前就可以了

setcookie('a', '我早上沒吃飯', time() - 1); // 讓 a 這個 cookie 1 秒以前 過期, 刪除

5, 後端獲取 cookie

php 有乙個預定義變數叫做 $_cookie

是乙個關聯型陣列

裡面儲存的就是乙個乙個的 cookie 資訊

你想要哪乙個, 就直接從 $_cookie 這個關聯型陣列裡面獲取

Cookie的規範介紹

目前有以下幾種cookie規範 rfc2965規範的使用,目前並不多。rfc2109規範相應要嚴格得多,在實際應用上,並不是所有的瀏覽器和web伺服器都嚴格遵守。因此相比較而言,netscape cookie草案倒是乙個比較簡潔和被廣泛支援的cookie規範,因此我們在這裡以netscape coo...

Cookie 的規範介紹

cookie 的規範介紹 目前有以下幾種 cookie 規範 rfc2965 規範的使用,目前並不多。rfc2109 規範相應要嚴格得多,在實際應用上,並不是所有的瀏覽器和 web 伺服器都嚴格遵守。因此相比較而言,netscape cookie 草案倒是乙個比較簡潔和被廣泛支援的 cookie 規...

Cookie 的規範介紹

目前有以下幾種 cookie 規範 rfc2965 規範的使用,目前並不多。rfc2109 規範相應要嚴格得多,在實際應用上,並不是所有的瀏覽器和 web 伺服器都嚴格遵守。因此相比較而言,netscape cookie 草案倒是乙個比較簡潔和被廣泛支援的 cookie 規範,因此我們在這裡以 ne...