摘要:當服務器向瀏覽器發(fā)送頁面時,在連接關閉后,服務端不會記錄用戶的信息。當瀏覽器從服務器上請求頁面時,屬于該頁面的會被添加到該請求中。指定是否只能通過協(xié)議訪問,一般的使用協(xié)議既可訪問,如果設置了沒有值,則只有當使用協(xié)議連接時才可以被頁面訪問。
Cookie 是一些數(shù)據(jù), 存儲于你電腦上的文本文件中。
當 web 服務器向瀏覽器發(fā)送 web 頁面時,在連接關閉后,服務端不會記錄用戶的信息。
Cookie 的作用就是用于解決 "如何記錄客戶端的用戶信息":
當用戶訪問 web 頁面時,他的名字可以記錄在 cookie 中。
在用戶下一次訪問該頁面時,可以在 cookie 中讀取用戶訪問記錄。
當瀏覽器從服務器上請求 web 頁面時, 屬于該頁面的 cookie 會被添加到該請求中。服務端通過這種方式來獲取用戶的信息。
總的來說,Cookie是保存在本地的一個字符串數(shù)據(jù),瀏覽器每次訪問服務器就會把對應頁面的Cookie發(fā)送給服務器,這樣服務器就能知道你是誰。
查看Cookie的方式:開發(fā)者工具(F12) -> Application -> 左側Storage分組下的Cookies
Cookie的特點以name=value的方式儲存(名/值對),并且是明文的
默認情況下,cookie的有效期間是當前會話(需要把整個瀏覽器都關閉會話就結束)
不可以跨瀏覽器(在IE中保存的cookie, 不可以在火狐中使用)
不可以跨域(跨域名)
每個網頁中存儲cookie的個數(shù)(最多50)和每個網站中存儲cookie的個數(shù)都有限制(200)
有大小限制(4KB左右)
Cookie的過期時間和數(shù)量瀏覽器 | 大小(Byte 字節(jié)) | 數(shù)量(每個域名) |
---|---|---|
IE6.0 | 4095 | 20 |
IE7.0/8.0 | 4095 | 50 |
Opera | 4096 | 30 |
Fire Fox | 4097 | 50 |
Safari | 4097 | 無限制 |
Chrome | 4097 | 53 |
操作Cookie 設置Cookie:在進行頁面cookie操作的時候,應該盡量保證cookie個數(shù)小于50個(除非兼容IE6),總大小 小于4KB
document.cookie = "username="Evgni0n"";設置過期時間:
在值的后面添加一個expires字段,并且放一個GMT時間的值(js中放一個date對象就是GMT)。
var date = new Date(); date.setDate( date.getDate() + 7 ); // 7天過期 document.cookie = "username="Evgni0n"; expires=" + date + ";";
刪除Cookie:在設置Cookie的時候一次性只能設置一個Cookie,不能批量設置,如:document.cookie = "username="Evgni0n"&age=18";這樣設置的話,Name字段仍是username,而Value字段則會變成"Evgni0n"&age=18
沒有提供方法刪除Cookie,但是Cookie過期就會被刪除,所以只要設置一個過去的時間Cookie就自動會被刪除。
var date = new Date(); date.setDate( date.getDate() - 1 ); // 給一個過去的時間 document.cookie = "username="Evgni0n"; expires=" + date + ";";Cookie有4個屬性
expires: 生存周期
path: 一個路徑
domain: 子域
secure: 安全性
expires默認情況下,回話結束就會刪除Cookie,但是給這個屬性設置了一個時間(GMT格式)之后就會等到這個時間過期才刪除Cookie,如document.cookie = "username="Evgni0n"; expires=" + date + ";"。
path默認情況下,在同一個目錄下文件可以調用;
http://www.evgni0n.com/page/1.html 設置的Cookie可以被 http://www.evgni0n.com/page/2.html 調用.但不能被 http://hanj.com/article/1.html 目錄下的文件調用;
一般設為“/”,以表示同一個站點的所有頁面都可以訪問這個Cookie。
domain指定在該子域下才可以訪問Cookie,例如要讓Cookie在a.test.com下可以訪問,但在b.test.com下不能訪問,則可將domain設置成a.test.com。
例如設成 ".evgni0n.com" 則在 .evgni0n.com 下的所有服務器下的文件都可以調用Cookie。
secure指定Cookie是否只能通過https協(xié)議訪問,一般的Cookie使用HTTP協(xié)議既可訪問,如果設置了Secure(沒有值),則只有當使用https協(xié)議連接時Cookie才可以被頁面訪問。
如:document.cookie = "username="Evgni0n"; expires=" + date + ";secure;"
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87223.html
這篇文章最初發(fā)表在我自己搭建的站點js-cookie庫源碼學習 背景 最近在做項目的時候,前端登錄功能要做一個記住密碼的功能。但開發(fā)用的框架中沒有實現(xiàn)這個功能,所以我就想自己實現(xiàn)這個功能。實現(xiàn)起來其實很簡單,就是每次用戶在登錄頁面點擊登錄時,把用戶輸入的用戶名和密碼保存到cookie中就可以了,當用戶再登錄時,再從cookie中獲取用戶名和密碼填充到表單中就可以了。當然,也可以選擇保存在local...
摘要:優(yōu)缺點優(yōu)點只在中存放不敏感數(shù)據(jù),即使被盜也不會有重大損失。控制的生命期,使之不會永遠有效。極高的擴展性和可用性,使用簡單,操作方法方便缺點數(shù)量和長度的限制。每個長度不能超過,否則會被截掉。設置一般主要設置名字和值有效期路徑域名是否安全傳輸。 前端學習:教程&開發(fā)模塊化/規(guī)范化/工程化/優(yōu)化&工具/調試&值得關注的博客/Git&面試-前端資源匯總 歡迎提issues斧正:cookie J...
摘要:如我當前打開的網址為,在控制臺中我們執(zhí)行了下面代碼查看瀏覽器面板如下圖所示,確實設置成功了,而且屬性選項都用了默認值。 咱們不搞一開始就一大堆理論知識介紹,怕把人講懵了...... 咱們換一個思維方式——從現(xiàn)象看本質,先說說我們看到了什么,再從看到的現(xiàn)象中提出問題,最后深入尋找答案。 我們看到的 cookie 我自己創(chuàng)建了一個網站,網址為http://ppsc.sankuai.com。...
摘要:快速上手先說區(qū)別數(shù)據(jù)大小不能超過。可以在后端設置修改,數(shù)據(jù)僅在本地瀏覽器保存。數(shù)據(jù)存儲在瀏覽器僅在瀏覽器為關閉的狀態(tài),關閉窗口后數(shù)據(jù)就會銷毀。默認情況下,屬于當前頁面。 cookie、Sessionstorage、Localstorage快速上手 先說區(qū)別 cookie: 數(shù)據(jù)大小不能超過4KB。 不管是否有需求,cookie數(shù)據(jù)都會在HTTP請求中攜帶,在瀏覽器和服務器中來回傳遞,...
閱讀 3702·2021-11-23 09:51
閱讀 1360·2021-11-10 14:35
閱讀 4008·2021-09-22 15:01
閱讀 1279·2021-08-19 11:12
閱讀 379·2019-08-30 15:53
閱讀 1690·2019-08-29 13:04
閱讀 3429·2019-08-29 12:52
閱讀 3055·2019-08-23 16:14