摘要:通常,它用于告知服務(wù)端兩個(gè)請求是否來自同一瀏覽器,如保持用戶的登錄狀態(tài)。使基于無狀態(tài)的協(xié)議記錄穩(wěn)定的狀態(tài)信息成為了可能。另外,的過期時(shí)間域路徑有效期適用站點(diǎn)都可以根據(jù)需要來指定。
Cookie簡介
HTTP Cookie(也叫Web Cookie或?yàn)g覽器Cookie)是服務(wù)器發(fā)送到用戶瀏覽器并保存在本地的一小塊數(shù)據(jù),它會(huì)在瀏覽器下次向同一服務(wù)器再發(fā)起請求時(shí)被攜帶并發(fā)送到服務(wù)器上。通常,它用于告知服務(wù)端兩個(gè)請求是否來自同一瀏覽器,如保持用戶的登錄狀態(tài)。Cookie使基于無狀態(tài)的HTTP協(xié)議記錄穩(wěn)定的狀態(tài)信息成為了可能。
Cookie主要用于以下三個(gè)方面:
回話狀態(tài)管理(例如用戶登錄狀態(tài) , 購物車等)
個(gè)性化設(shè)置(如用戶自定義設(shè)置,主題等)
瀏覽器行為跟蹤 (如跟蹤分析用戶行為等)
創(chuàng)建Cookie當(dāng)服務(wù)器收到HTTP請求時(shí),服務(wù)器可以在響應(yīng)頭里面添加一個(gè)Set-Cookie選項(xiàng)。瀏覽器收到響應(yīng)后通常會(huì)保存下Cookie,之后對該服務(wù)器每一次請求中都通過Cookie請求頭部將Cookie信息發(fā)送給服務(wù)器。另外,Cookie的過期時(shí)間、域、路徑、有效期、適用站點(diǎn)都可以根據(jù)需要來指定。
Set-Cookie:=
HTTP/1.0 200 OK Content-type: text/html Set-Cookie: yummy_cookie=choco Set-Cookie: tasty_cookie=strawberry [頁面內(nèi)容]
現(xiàn)在,對該服務(wù)器發(fā)起的每一次新請求,瀏覽器都會(huì)將之前保存的Cookie信息通過Cookie請求頭部再發(fā)送給服務(wù)器。
GET /sample_page.html HTTP/1.1 Host: www.example.org Cookie: yummy_cookie=choco; tasty_cookie=strawberry客戶端獲取Cookie
客戶端可以通過如下代碼獲取Cookie值.
document.cookie
代碼實(shí)現(xiàn)獲取各個(gè)cookie值
var Cookie = {}; var cookie = document.cookie; var tempArr = cookie.split(";"); var len = tempArr.length; for(var i = 0; i < len; i++){ var tempCookie = tempArr[i]; var p = tempCookie.indexOf("="); var key = tempCookie.substring(0,p); var value = tempCookie.substring(p+1); value = decodeURIComponent(value); Cookie[key] = value; }
獲取結(jié)果:
另外除了在控制臺去打印,在chrome的調(diào)試器中也可以看到cookie信息.
Cookie 必須在 HTML 文件的內(nèi)容輸出之前設(shè)置;不同的瀏覽器 (Netscape Navigator、Internet Explorer) 對 Cookie 的處理不一致,使用時(shí)一定要考慮;客戶端用戶如果設(shè)置禁止 Cookie,則 Cookie 不能建立。 并且在客戶端,一個(gè)瀏覽器能創(chuàng)建的 Cookie 數(shù)量最多為 300 個(gè),并且每個(gè)不能超過 4KB,每個(gè) Web 站點(diǎn)能設(shè)置的 Cookie 總數(shù)不能超過 20 個(gè)
var setCookie = function(key,value,expires){ var iDay = new Date(); var maxTime = iDay.setDate(iDay.getDate() + expires); document.cookie = key + "=" + value + "; " + "expires=" + maxTime; };
var deleteCookie = function(key){ setCookie(key,"",-1); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94677.html
摘要:關(guān)于跨域,個(gè)人總結(jié)了以下幾種方法其中等方法常用,的方法既不復(fù)雜,也能兼容到幾乎所有瀏覽器,這真是極好的一種跨域方法。這個(gè)主要針對跨域訪問的情況兩個(gè)網(wǎng)頁一級域名相同,只是二級域名不同,瀏覽器允許通過設(shè)置共享。 關(guān)于跨域,個(gè)人總結(jié)了以下幾種方法 JSONP CORS WebSocket document.domain window.name location.hash postMessa...
摘要:開發(fā)者需要在中設(shè)置屬性為跨域是的簡稱這是一種利用瀏覽器漏洞解決跨域的辦法腳本元素可以不受瀏覽器同源策略的限制。 什么是瀏覽器同源策略? 同源是指,域名,協(xié)議,端口號均相同,如圖: showImg(https://segmentfault.com/img/bV9rAO?w=1088&h=394); 注意:localhost和127.0.0.1雖然都指向本機(jī),但也是跨域. 瀏覽器同源策略(...
摘要:前端開發(fā)中,跨域使我們經(jīng)常遇到的一個(gè)問題,也是面試中經(jīng)常被問到的一些問題,所以,這里,我們做個(gè)總結(jié)。同源策略限制了一下行為和無法讀取和對象無法獲取請求發(fā)送不出去常見的跨域場景所謂的同源是指,域名協(xié)議端口均為相同。 前端開發(fā)中,跨域使我們經(jīng)常遇到的一個(gè)問題,也是面試中經(jīng)常被問到的一些問題,所以,這里,我們做個(gè)總結(jié)。小小問題,不足擔(dān)心 原文地址:YOU-SHOULD-KNOW-JS 什么是...
摘要:介紹如有不詳細(xì)或者不正確的地方多多指正。可以通過官方提供的命令行進(jìn)行安裝,官方目前默認(rèn)的界面文件用格式,建議修改為格式的文件版權(quán)問題,同時(shí)要在中安裝對應(yīng)的包和設(shè)置對應(yīng)的界面引擎解釋器。 express介紹 如有不詳細(xì)或者不正確的地方多多指正。 我們可以拿js與jquery關(guān)系來類比一下: jQuery是JS在瀏覽器環(huán)境下的封裝庫,把DOM操作,ajax等封裝成了兼容性好,方便使用的方法...
閱讀 994·2021-11-23 09:51
閱讀 3487·2021-11-22 12:04
閱讀 2727·2021-11-11 16:55
閱讀 2955·2019-08-30 15:55
閱讀 3238·2019-08-29 14:22
閱讀 3361·2019-08-28 18:06
閱讀 1253·2019-08-26 18:36
閱讀 2138·2019-08-26 12:08