從多個方面詳細闡述cookie的生命周期

一、創建cookie

1、當用戶通過瀏覽器訪問一個頁面時,服務器可以在響應哪裡包含一個”Set-Cookie”頭。這個頭包含了一個”key=value”對的列表。key為cookie的名稱,value為cookie的值。

2、例如,下面的代碼片段創建一個名叫”myCookie”、值為”hello”的cookie:

    try {
        document.cookie = "myCookie=hello"
    } catch (error) {
        console.log(error)
    }

3、在這個步驟中,cookie的生命周期始於它被創建的那一刻。

二、發送cookie

1、當用戶每次向服務器發送請求時,瀏覽器都會自動將與該域相關的所有cookie信息添加到請求中的”Cookie”頭中。這意味着在一個網站上創建的cookie,可以在該網站的每個頁面上使用。

2、例如,下面的代碼演示了如何使用cookie進行身份驗證:

    try {
        document.cookie = "authToken=34215dfg3456djl89"
    } catch (error) {
        console.log(error)
    }

3、在這個步驟中,cookie的生命周期取決於它何時被發送,通常是用戶每一次請求頁面時。

三、修改cookie

1、要修改cookie,只需要在瀏覽器中創建一個同名的cookie即可。

2、例如,如果要將上例中的”myCookie”更改為”value”,則可以這樣寫:

    try {
        document.cookie = "myCookie=value"
    } catch (error) {
        console.log(error)
    }

3、在這個步驟中,cookie的生命周期從修改時間開始。

四、刪除cookie

1、要刪除cookie,只需要在瀏覽器中創建一個同名的cookie,並將其過期時間設置為過去的某個時間即可。

2、例如,下面的代碼演示了如何刪除名為”myCookie”的cookie:

    try {
        document.cookie = "myCookie=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"
    } catch (error) {
        console.log(error)
    }

3、在這個步驟中,cookie的生命周期在它被刪除之後立即結束。

五、cookie的過期時間

1、為了控制cookie的生命周期,可以設置一個可選的過期時間。

2、例如,下面的代碼創建了一個名為”myCookie”的cookie,並將其過期時間設置為7天後:

    try {
        let date = new Date()
        date.setTime(date.getTime() + (7 * 24 * 60 * 60 * 1000))
        let expires = "expires="+ date.toUTCString()
        document.cookie = "myCookie=hello; "+ expires
    } catch (error) {
        console.log(error)
    }

3、在這個步驟中,cookie的生命周期從被創建的時間開始,到達過期時間後結束。

六、cookie的安全性

1、通過”Secure”屬性可以控制cookie的安全性,只有在加密連接(例如HTTPS)上才能發送這些cookie。

2、例如,下面的代碼創建了一個名為”authToken”的安全cookie:

    try {
        document.cookie = "authToken=34215dfg3456djl89; Secure"
    } catch (error) {
        console.log(error)
    }

3、在這個步驟中,只有在加密連接上訪問網站時,才能在請求中發送名為”authToken”的cookie。

原創文章,作者:JUPM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/136337.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JUPM的頭像JUPM
上一篇 2024-10-04 00:16
下一篇 2024-10-04 00:16

相關推薦

發表回復

登錄後才能評論