首頁 > web前端 > js教程 > 主體

Cookie的用法詳細講解

韦小宝
發布: 2018-03-12 10:36:26
原創
6450 人瀏覽過

我們在瀏覽器中,經常涉及到資料的交換,例如你登入郵箱,登入一個頁面。我們經常在此時設定30天內記住我,或自動登入選項。那麼它們是怎麼記錄資訊的呢,答案就是今天的主角cookie了,Cookie是由HTTP伺服器設定的,保存在瀏覽器中,但HTTP協議是一種無狀態協議,在資料交換完畢後,伺服器端和客戶端的連結就會關閉,每次交換資料都需要建立新的連結。

一、什麼叫cookie?

你進入某個網站,需要登入密碼和帳號。你初次註冊之後,登錄,進入網站主頁。這時你的計算機就會自動保存一個cookie資訊(該資訊可以透過火狐瀏覽器查看,chrom不具備這項功能),該資訊包含你初次登入的帳號和密碼,當你下次再登入這個網站時瀏覽器會自動取出電腦中相關的cookie訊息,這樣就不會出現登入頁面而是直接跳到網站主頁。

新浪微博為例
1、下方顯示查看cookie資訊的動作

開啟火狐瀏覽器,右鍵

Cookie的用法詳細講解

選擇「檢視頁面資訊」

Cookie的用法詳細講解

選擇安全選項,點選「檢視cookie」

Cookie的用法詳細講解

上圖顯示的一系列的資料夾,包含一系列的進入各個網站的相關資訊。 Cookie的用法詳細講解

點開資料夾,你會發現如上圖所示的訊息,每一個訊息都是一條cookie,他們都具有名稱、內容以及過期時間。這裡著重強調一下,過期時間是指一旦到達這個時間點,該條cookie資訊就會自動消失。


2、以「新浪微博」為例來觀察cookie訊息的建立與消失
首先我點擊新浪「全部移除」(此功能在上圖中的最底部),消除所有的cookie資訊。然後進入新浪微博頁面。 Cookie的用法詳細講解

此時顯示未登入狀態。再次清除所有cookie資訊(登入網站就會出現這些無關重要的cookie資訊),避免對後面的演示造成影響。

登陸後,頁面如下:

Cookie的用法詳細講解

如果我們推出在進入這個頁面,你會發現不需要在登錄,你會直接進入到如圖三所示的介面。可是如果你再移除所有的cookie,再次登入這個介面就會出現如圖2所示的頁面。

比起這裡大家已經初步理解了cookie的用法。

二、cookie的程式編寫

1、設定cookie

Cookie的用法詳細講解

#效果如下圖:

Cookie的用法詳細講解

##查看cookie(第一個資料夾裝載這幾條cookie資訊)

Cookie的用法詳細講解
注意名稱與內容。 ”a=hello”等號前面表示名稱,等號後面表示內容。
**透過上面這種方式創建的cookie比較繁瑣,如果多寫幾條就會顯得麻煩。我們可以透過函數的方式來建立cookie。

Cookie的用法詳細講解

2、取得cookie

cookie既然已經創建,那麼我們登入頁面的時候,瀏覽器會透過什麼樣的程式來取得電腦中任意一條cookie訊息。
我們現在透過 alert(document.cookie);看到的效果如下圖:
Cookie的用法詳細講解
#是一條長長的字串。我們現在要做的是獲取其中單條cookie訊息,並且輸出等號後面的值。做法如下:

Cookie的用法詳細講解
輸出結果如下:
Cookie的用法詳細講解
1Cookie的用法詳細講解
**為什麼alert(getCookie(“眼睛”));alert(getCookie(“頭髮”)) ;這兩個程式碼運行的時候為什麼顯示為空?

1Cookie的用法詳細講解
為什麼要加一個空格?

1Cookie的用法詳細講解
如上圖所示,透過split()分割字串時要這樣寫:split(“; “);

3.移除cookie

只要將cookie的過期時間設為負值,cookie就會直接消失。

1Cookie的用法詳細講解

1Cookie的用法詳細講解

#三、全部程式碼如下:

1Cookie的用法詳細講解

1Cookie的用法詳細講解

就上面的cookie來說吧,要想掌握cookie,就必須懂它的來源,是什麼,它存在的意義是就是為了保存用戶的信息,然後知道是怎麼保存的,保存的形式知道了,就可以運用我們學到的js基礎知識語法來操作它改變它,使之變為我們需要的樣子,懂了需求之後,歸根到底還是考察js的基礎操作,字符串的操作,正規表示式的應用等等。

更多關於cookie文章:

#怎麼操作純JS操作Cookie

#AngularJs操作Cookies實例分享

php會話控制session、cookie介紹

#

以上是Cookie的用法詳細講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!