³£¼ûä¯ÀÀÆ÷¶ËµÄ´æ´¢¼¼Êõ£¨ä¯ÀÀÆ÷´æ´¢·½Ê½µÄ±È½Ï£©
ÎÒÊÇEcha¡£½ñÌìÎÒÏëºÍ´ó¼ÒÁÄÒ»ÁĹØÓÚä¯ÀÀÆ÷Êý¾Ý´æ´¢µÄ»°Ìâ¡£µ±ÎÒÃÇ̸ÂÛä¯ÀÀÆ÷µÄ˽Ãܱ£´æÊ±£¬ÆäʵÊÇÔÚÌÖÂÛä¯ÀÀÆ÷ÈçºÎ¹ÜÀíºÍ´æ´¢ÎÒÃǵÄÊý¾Ý¡£½ÓÏÂÀ´£¬ÎÒ½«½éÉܼ¸ÖÖ³£¼ûµÄä¯ÀÀÆ÷Êý¾Ý´æ´¢·½°¸£ºlocalStorage¡¢sessionStorage¡¢IndexedDBÒÔ¼°Cookies¡£
ÈÃÎÒÃÇÀ´¸ÅÊöÒ»ÏÂÕâЩ´æ´¢»úÖÆ¡£ÔÚÏÖ´úä¯ÀÀÆ÷ÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ý´ò¿ªä¯ÀÀÆ÷µÄ¿ØÖÆÌ¨À´²é¿´ºÍ¹ÜÀíÕâЩ´æ´¢»úÖÆ¡£ÔÚApplicationÑ¡ÏÖУ¬ÎÒÃÇ¿ÉÒÔÔÚStorageÀï¿´µ½Local Storage¡¢Session Storage¡¢IndexedDBµÈÑ¡Ïî¡£ÄÇô£¬Ê²Ã´Çé¿öÏÂÎÒÃÇ»áÑ¡Ôñ½«Êý¾Ý´æ´¢ÔÚä¯ÀÀÆ÷ÖÐÄØ£¿
ÔÚä¯ÀÀÆ÷´æ´¢Öб£´æÓ¦ÓÃ״̬ÊÇÒ»¸ö³£¼ûµÄʹÓó¡¾°¡£±ÈÈ磬ÎÒÃÇ¿ÉÒÔ±£´æÓû§Æ«ºÃ£¬ÈçÓû§Ìض¨µÄÉèÖã¬ÀýÈçÁÁģʽ»ò°µÄ£Ê½¡¢×ÖÌå´óСµÈ¡£ÎÒÃÇ»¹¿ÉÒÔ´´½¨ÀëÏß¹¤×÷µÄ½¥½øÊ½WebÓ¦Ó㬳ýÁ˳õʼÏÂÔØºÍ¸üÐÂÖ®Í⣬ÎÞÐè·þÎñÆ÷¶ËµÄÒªÇó¡£ÎÒÃÇ»¹¿ÉÒÔ»º´æ¾²Ì¬Ó¦ÓÃ×ÊÔ´£¬ÈçHTML¡¢CSS¡¢JSºÍͼÏñµÈ¡£±£´æÉÏÒ»¸öä¯ÀÀ»á»°ÖеÄÊý¾ÝÒ²ÊÇÒ»¸öÖØÒªµÄÓ¦Óó¡¾°£¬ÀýÈç´æ´¢ÉÏÒ»¸ö»á»°ÖеĹºÎï³µÄÚÈÝ£¬´ý°ìÊÂÏîÁбíÖеÄÏîÄ¿µÈ¡£
½ÓÏÂÀ´£¬ÎÒ½«Ïêϸ½éÉÜÕ⼸ÖÖ´æ´¢·½Ê½µÄʹÓ÷½Ê½¡¢Ê¹Óó¡¾°ÒÔ¼°ËüÃÇÖ®¼äµÄÇø±ð¡£
Ê×ÏÈÊÇWeb Storage£¬Ëü°üÀ¨ÁËlocalStorageºÍsessionStorage¡£HTML5ÒýÈëÁËWeb Storage£¬Ê¹µÃÔÚä¯ÀÀÆ÷Öд洢ºÍ¼ìË÷Êý¾Ý±äµÃ¸ü¼ÓÈÝÒס£Web Storage APIΪ¿Í»§¶Ëä¯ÀÀÆ÷ÌṩÁ˰²È«´æ´¢ºÍÇáËÉ·ÃÎʼüÖµ¶ÔµÄ»úÖÆ¡£
localStorageÓÃÓÚ´æ´¢³Ö¾ÃÊý¾Ý£¬³ý·ÇÓû§ÊÖ¶¯´Óä¯ÀÀÆ÷ÖÐɾ³ý£¬·ñÔòÊý¾Ý½«ÖÕÉí´æ´¢¡£¼´Ê¹¹Ø±Õ´°¿Ú»òÑ¡Ï£¬ËüÒ²²»»á¹ýÆÚ¡£¶øsessionStorageÔòÓÃÓÚ´æ´¢ÁÙʱ»á»°Êý¾Ý£¬ÕâЩÊý¾ÝÔÚÒ³ÃæÖØÐ¼ÓÔØºóÈÔÈ»´æÔÚ£¬µ«¹Ø±Õä¯ÀÀÆ÷Ñ¡ÏʱÊý¾Ý»á¶ªÊ§¡£
Web Storage APIÓɼ¸¸ö·½·¨×é³É£ºsetItem()ÓÃÓÚ´æ´¢Êý¾Ý£¬getItem()ÓÃÓÚ¼ìË÷Êý¾Ý£¬removeItem()ÓÃÓÚɾ³ýÊý¾Ý£¬clear()ÓÃÓÚÇå³ýËùÓд洢µÄÊý¾Ý£¬ÒÔ¼°key()ÓÃÓÚ»ñÈ¡Êý¾ÝµÄËùÓÐkey¡£
³ýÁËWeb Storage£¬ÎÒÃÇ»¹ÓÐIndexedDBºÍCookiesµÈÆäËû´æ´¢·½°¸¡£Ã¿ÖÖ·½°¸¶¼ÓÐÆä¶ÀÌØµÄÓÅÊÆºÍÊÊÓó¡¾°¡£ÔÚÑ¡ÔñʹÓÃÄÄÖÖ·½°¸Ê±£¬ÎÒÃÇÐèÒª¸ù¾Ý¾ßÌåµÄÓ¦ÓÃÐèÇóºÍ³¡¾°À´×ö³ö¾ö²ß¡£ÐèҪעÒâµÄÊÇ£¬ÓÉÓÚʵÏÖ²îÒ죬ä¯ÀÀÆ÷´æ´¢»úÖÆÔÚ²»Í¬ä¯ÀÀÆ÷ÖеÄÐÐΪ¿ÉÄÜ»áÓÐËù²»Í¬¡£ÔÚ¿ª·¢¹ý³ÌÖУ¬ÎÒÃÇÐèÒª¿¼Âǵ½¼æÈÝÐÔÎÊÌâ¡£
½«Êý¾Ý´æ´¢ÔÚ¿Í»§¶Ëä¯ÀÀÆ÷ÖпÉÒÔ¼õÉÙ¶îÍâÇÒ²»±ØÒªµÄ·þÎñÆ÷µ÷Ó㬲¢°ïÖúÌṩÀëÏßÖ§³Ö¡£ÎÒÃÇÒ²ÐèÒª¸ù¾Ý¾ßÌåµÄÐèÇóºÍ³¡¾°Ñ¡ÔñºÏÊʵĴ洢·½°¸¡£Ï£Íû½ñÌìµÄ·ÖÏíÄܶÔÄãÓÐËù°ïÖú¡£ÔÚWeb¿ª·¢ÖУ¬`localStorage`ºÍ`sessionStorage`Êdz£Óõı¾µØ´æ´¢¹¤¾ß£¬ËüÃÇÔÊÐíÎÒÃÇÔÚÓû§µÄä¯ÀÀÆ÷ÉÏ´æ´¢Êý¾Ý£¬ÒÔ±ã¿ìËÙ·ÃÎʺÍÖØ¸´Ê¹Óá£ÒÔÏÂÊǹØÓÚÕâÁ½¸ö´æ´¢»úÖÆµÄÉîÈëºÍÉú¶¯ÃèÊö¡£
µ±ÎÒÃÇ̸ÂÛ`localStorage`ºÍ`sessionStorage`ʱ£¬ÎÒÃÇÊ×ÏÈ×¢Òâµ½ËüÃÇ·µ»ØµÄÀàÐÍÊÇ¡°Object¡±¡£ÕâÒâζ×ÅÎÒÃÇ¿ÉÒÔʹÓÃËüÃÇÀ´´æ´¢¸÷ÖÖÀàÐ͵ÄÊý¾Ý¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔÕâÑù´æ´¢Êý¾Ý£º
```javascript
localStorage.setItem("colorMode", "dark");
localStorage.setItem("username", "zhangsan");
localStorage.setItem("favColor", "green");
```
ͨ¹ý`console.log(localStorage.length)`£¬ÎÒÃÇ¿ÉÒÔÖªµÀµ±Ç°´æ´¢Á˶àÉÙ¸öÏîÄ¿£¬ÕâÀïÊä³öµÄÊÇ3¡£
Òª´Ó´æ´¢ÖмìË÷Êý¾Ý£¬ÎÒÃÇ¿ÉÒÔʹÓÃ`getItem()`·½·¨¡£ÀýÈ磬Ҫ»ñÈ¡ÑÕɫģʽ£¬ÎÒÃÇ¿ÉÒÔÕâÑù×ö£º
```javascript
console.log(localStorage.getItem("colorMode")); // Êä³ö "dark"
```
Èç¹ûÐèҪɾ³ýij¸ö´æ´¢Ï¿ÉÒÔʹÓÃ`removeItem()`·½·¨¡£ÀýÈ磬ɾ³ýÑÕɫģʽ£º
```javascript
localStorage.removeItem("colorMode");
```
Ö®ºó£¬¸ÃÏîÄ¿µÄ¼ü½«²»ÔÙ´æÔÚ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý`localStorage.key(index)`À´»ñÈ¡´æ´¢ÖеļüÃû¡£ÀýÈ磬µÚÒ»¸ö¼üÃûÊÇ¡°favColor¡±¡£
Èç¹ûÐèÒªÇå¿ÕËùÓд洢µÄÊý¾Ý£¬¿ÉÒÔʹÓÃ`clear()`·½·¨¡£Õ⽫ɾ³ýËùÓÐÏîÄ¿£¬Ê¹`localStorage.length`±äΪ0¡£
³ýÁË»ù±¾µÄ´æ´¢ºÍ¼ìË÷¹¦ÄÜÍ⣬`localStorage`ºÍ`sessionStorage`»¹ÌṩÁ˹ØÓÚÊý¾Ý±ä»¯µÄ֪ͨ»úÖÆ¡£ÎÒÃÇ¿ÉÒÔͨ¹ý¼àÌý¡°storage¡±Ê¼þÀ´×·×ÙÕâЩ±ä»¯¡£µ±´´½¨¡¢¸üлòɾ³ýÏîĿʱ£¬´Ëʼþ½«±»´¥·¢¡£Õâ¶ÔÓÚͬ²½¶à¸öä¯ÀÀÆ÷Ñ¡Ï»ò´°¿ÚÉϵÄÊý¾Ý·Ç³£ÓÐÓá£ÐèҪעÒâµÄÊÇ£¬ÕâÖÖʼþ²»»áÔÚ·¢Éú¸ü¸ÄµÄͬһä¯ÀÀÆ÷Ñ¡ÏÉÏ´¥·¢£¬¶øÊÇÔÚͬһÓòµÄÆäËû´ò¿ªµÄÑ¡Ï»ò´°¿Ú´¥·¢¡£
ʹÓÃÕâЩ±¾µØ´æ´¢»úÖÆÊ±£¬ÎÒÃDZØÐë×¢ÒâһЩÏÞÖÆ¡£×îÖØÒªµÄÒ»µãÊÇËüÃÇÖ»ÄÜ´æ´¢5MBµÄÊý¾Ý¡£³¢ÊÔ´æ´¢³¬¹ý´ËÏÞÖÆµÄÊý¾Ý½«µ¼Ö´íÎó¡£ËüÃÇÖ»ÄܽÓÊÜ×Ö·û´®×÷ΪÊäÈë¡£Èç¹ûÎÒÃdz¢ÊÔ´æ´¢ÆäËûÊý¾ÝÀàÐÍ£¬ÈçÊý×é»ò¶ÔÏ󣬱ØÐëÊ×ÏȽ«Æäת»»Îª×Ö·û´®¡£
ÔÚǰ¶Ë¿ª·¢ÖУ¬ÎÒÃǾ³£ÐèÒª½«Êý¾Ý´æ´¢ÔÚÓû§µÄä¯ÀÀÆ÷ÖУ¬ÒÔ±ãÔÚÓû§Ï´ηÃÎÊÍøÕ¾Ê±¿ÉÒÔ¼ÌÐøÊ¹ÓÃ֮ǰµÄ״̬»òÅäÖá£Web Storage ºÍ Cookie ÊÇÁ½ÖÖ³£Óõļ¼Êõ£¬ÓÃÓÚʵÏÖÕâÒ»¹¦ÄÜ¡£ÈÃÎÒÃÇÉîÈëÁ˽âÈçºÎʹÓà Web Storage ÖÐµÄ localStorage ÒÔ¼°ÈçºÎÓë Cookie ½øÐжԱȡ£
ÈÃÎÒÃÇͨ¹ý Web Storage µÄÁ½¸ö·½·¨ ON.stringify ºÍ ON.parse À´´¦Àí¶ÔÏó´æ´¢ÎÊÌâ¡£¼ÙÉèÎÒÃÇÓÐÒ»¸öÓû§¶ÔÏ󣬰üº¬ÐÕÃû¡¢ÄêÁä¡¢ÐÔ±ðºÍÖ°ÒµµÈÊôÐÔ¡£ÎÒÃÇ¿ÉÒÔÏȽ«¶ÔÏóת»»Îª×Ö·û´®£¬È»ºó´æ´¢ÔÚ localStorage ÖС£Ö®ºó£¬ÎÒÃÇ¿ÉÒÔÔÙ´Î´Ó localStorage ÖлñÈ¡¸Ã×Ö·û´®²¢½«Æä»ØÔʼ¶ÔÏó¡£Ê¾Àý´úÂëÈçÏ£º
¼ÙÉèÓÐÒ»¸öÓû§¶ÔÏó£º
```javascript
const user = {
name: "zhangsan",
age: 28,
gender: "male",
profession: "lawyer"
};
localStorage.setItem("user", ON.stringify(user));
```
ʹÓà `ON.stringify` ½«¶ÔÏóת»»Îª×Ö·û´®²¢´æ´¢£º
```javascript
// ´æ´¢ºóµÄ×Ö·û´®ÐÎʽΪ£º{"name":"zhangsan","age":28,"gender":"male","profession":"lawyer"}
```
ÔÙʹÓà `ON.parse` ½«×Ö·û´®»Ø¶ÔÏó£º
```javascript
ON.parse(localStorage.getItem("user"))
// ½á¹ûΪ£º{name: "zhangsan", age: 28, gender: "male", profession: "lawyer"}
```
Èç¹ûÖ±½Ó½«¶ÔÏó´æ´¢ÔÚ localStorage ÖУ¬ä¯ÀÀÆ÷»á½øÐÐÒþʽÀàÐÍת»»£¬½«¶ÔÏóת»»Îª×Ö·û´®ÐÎʽ½øÐд洢¡£ÕâÖÖ´æ´¢·½Ê½¿ÉÄÜ»áÒòΪ¶ÔÏóµÄ¸´Ôӽṹ¶øµ¼ÖÂÊý¾Ý¶ªÊ§»ò¸ñʽ»ìÂÒ¡£ÎªÁËÈ·±£Êý¾ÝµÄÍêÕûÐԺͿɶÁÐÔ£¬ÎÒÃÇͨ³£Ê¹Óà `ON.stringify` ºÍ `ON.parse` ½øÐÐÐòÁл¯ºÍ·´ÐòÁл¯²Ù×÷¡£
Web Storage ²¢·ÇûÓÐÏÞÖÆ¡£ËüʹÓÃÁËͬԴ²ßÂÔ£¬Òâζ×Å´æ´¢µÄÊý¾ÝÖ»ÄÜÔÚͬһÀ´Ô´µÄÍøÕ¾ÉÏʹÓá£Web Storage ÎÞ·¨ÔÚ web worker »ò service worker ÖзÃÎÊ£¬Ò²ÎÞ·¨ÔÚÉèÖÃΪÒþ˽ģʽµÄä¯ÀÀÆ÷ÖжÁÈ¡¡£Í¬²½ÐÔÖÊÒ²¿ÉÄܶԸ´ÔÓÓ¦ÓõÄÏìӦʱ¼äÔì³ÉÓ°Ïì¡£¶ÔÓÚ´óÐÍ»ò¸´ÔÓÓ¦Óã¬ÐèÒª¿¼ÂÇÕâЩÒòËØÀ´ÓÅ»¯ÐÔÄÜ¡£
½ÓÏÂÀ´£¬ÈÃÎÒÃÇ¿´Ò»¸öʹÓà localStorage µÄ¼òµ¥Ê¾Àý£¬¸ÃʾÀýչʾÁËÈçºÎʹÓà localStorage À´´æ´¢Óû§Æ«ºÃ£¬ÀýÈçºÚ°µÄ£Ê½¡£ÔÚÕâ¸öÀý×ÓÖУ¬Ò³ÃæÉÏÓÐÒ»¸ö¸´Ñ¡¿ò£¬µ±Óû§µã»÷ʱ£¬Ò³Ãæ»áÔÚÃ÷ÁÁģʽºÍºÚ°µÄ£Ê½Ö®¼äÇл»£¬²¢½«Õâ¸öÅäÖô洢ÔÚ localStorage ÖС£µ±ÏÂÒ»´ÎÔÙ·ÃÎÊÒ³ÃæÊ±£¬½«´Ó localStorage ÖлñÈ¡Ö÷ÌâÉèÖò¢×Ô¶¯Ó¦Óá£Õâ¸ö¹¦ÄܵÄʵÏÖÉæ¼°µ½ JavaScript¡¢HTML ºÍ CSS µÄÅäºÏʹÓá£Ê¾Àý´úÂëÈçÏ£º
ÎÒÃÇÒ²ÒªÁ˽â Cookie µÄÏà¹ØÖªÊ¶¡£Cookie Ö÷ÒªÓÃÓÚÉí·ÝÑéÖ¤ºÍÓû§Êý¾Ý³Ö¾ÃÐÔ¡£Óë Web Storage Ïà±È£¬Cookie µÄÓ¦Óó¡¾°ºÍÌØÐÔÓÐËù²»Í¬¡£Cookie ͨ³£ÓÃÓÚÔÚÓû§ä¯ÀÀ²»Í¬Ò³ÃæÊ±¸ú×ÙÓû§×´Ì¬»ò±£´æÓû§Æ«ºÃÉèÖõȡ£ÓÉÓÚ Cookie µÄ´óСÏÞÖÆºÍ´«Ê俪Ïú½Ï´ó£¬Òò´Ë²»Êʺϴ洢´óÁ¿Êý¾Ý¡£Cookie »¹¿ÉÒÔͨ¹ý·þÎñÆ÷½øÐйÜÀíºÍ·ÃÎÊ£¬ÕâΪ¿çÕ¾¸ú×ÙÓû§ÐÐΪÌṩÁ˱ãÀû¡£Òò´ËÔÚʵ¼ÊÓ¦ÓÃÖÐÐèÒª¸ù¾ÝÐèÇóÑ¡ÔñºÏÊʵļ¼ÊõÀ´´æ´¢Êý¾Ý¡£
Web Storage ºÍ Cookie ¶¼ÊÇǰ¶Ë¿ª·¢Öг£ÓõÄÊý¾Ý´æ´¢¼¼Êõ¸÷ÓÐÆäÌØµãºÍÊÊÓó¡¾°¿ª·¢ÕßÓ¦¸ù¾Ýʵ¼ÊÐèÇóÑ¡ÔñºÏÊʵļ¼ÊõÀ´ÊµÏÖÊý¾Ý´æ´¢ºÍ·ÃÎÊ¿ØÖƵȹ¦ÄÜ¡£CookiesÊÇÓë·þÎñÆ÷½»»¥µÄÖØÒª»úÖÆ£¬ËüÃÇÔÚÿ´ÎÇëÇóʱһͬ·¢ËÍ£¬²¢ÔÚÏìӦʱ·µ»Øµ½¿Í»§¶Ë¡£ÕâЩÊý¾ÝµÄ½»»»Ê¹µÃ·þÎñÆ÷Äܹ»ÎªÓû§Ìṩ¸öÐÔ»¯µÄÄÚÈÝÌåÑ顣ʵ¼ÊÉÏ£¬cookie²¢²»ÊÇÔÚ¿Í»§¶Ë½øÐд洢µÄ·½Ê½£¬ÒòΪ·þÎñÆ÷ºÍä¯ÀÀÆ÷¶¼ÓÐÄÜÁ¦ÐÞ¸ÄÕâЩÊý¾Ý¡£ÖµµÃÒ»ÌáµÄÊÇ£¬cookieÊÇΨһÄܹ»ÔÚÒ»¶Îʱ¼äºó×Ô¶¯¹ýÆÚµÄÊý¾Ý´æ´¢·½Ê½¡£
ÔÚÿ¸öHTTPÇëÇóºÍÏìÓ¦ÖУ¬¶¼»áÉæ¼°cookieÊý¾ÝµÄ´«Êä¡£Èç¹û´æ´¢¹ý¶àµÄÊý¾Ý£¬»áʹHTTPÇëÇó±äµÃÈß³¤£¬´Ó¶øµ¼ÖÂÓ¦ÓÃÏìÓ¦±äÂý¡£ÎªÁËÓÐЧ¹ÜÀíÕâЩcookie£¬ä¯ÀÀÆ÷ʵʩÁËһЩÏÞÖÆ£ºÀýÈ磬µ¥¸öcookieµÄ´óС²»µÃ³¬¹ý4kb£¬Ìض¨ÓòÃûÏÂÔÊÐíµÄcookieÊýÁ¿Í¨³£Îª20¸ö£¬²¢ÇÒËüÃÇÖ»Äܰüº¬×Ö·û´®¸ñʽµÄÐÅÏ¢¡£ÖµµÃ×¢ÒâµÄÊÇ£¬cookieµÄ²Ù×÷ÊÇͬ²½µÄ£¬ÎÞ·¨Í¨¹ýweb workers·ÃÎÊ£¬µ«¿ÉÒÔͨ¹ýÈ«¾Öwindow¶ÔÏó½øÐзÃÎÊ¡£
CookieµÄÖ÷ÒªÓÃ;°üÀ¨»á»°¹ÜÀí¡¢¸öÐÔ»¯ºÍ¿çÍøÕ¾Óû§ÐÐΪ¸ú×Ù¡£ÎÒÃÇ¿ÉÒÔÔÚ·þÎñ¶ËºÍ¿Í»§¶Ë½øÐÐcookieµÄÉèÖúͷÃÎÊ¡£cookie»¹¾ßÓÐһϵÁÐÊôÐÔ£¬ÕâЩÊôÐÔ¾ö¶¨ÁËÔںδ¦ÒÔ¼°ÈçºÎ·ÃÎʺÍÐÞ¸ÄËüÃÇ¡£
¼òµ¥À´Ëµ£¬cookie·ÖΪÁ½ÖÖÀàÐÍ£º
1. »á»°cookie£ºÕâÀàcookieûÓÐÖ¸¶¨Expires»òMax-AgeµÈÊôÐÔ£¬Òò´ËÔڹرÕä¯ÀÀÆ÷ʱ»á±»É¾³ý¡£
2. ³Ö¾ÃÐÔcookie£ºÕâÀàcookieÖ¸¶¨ÁËExpires»òMax-AgeÊôÐÔ£¬ËùÒÔÔڹرÕä¯ÀÀÆ÷ʱ²»»á¹ýÆÚ£¬µ«ÔÚÌØ¶¨µÄÈÕÆÚ£¨Expires£©»òʱ¼ä³¤¶È£¨Max-Age£©ºó»á×Ô¶¯¹ýÆÚ¡£
½ÓÏÂÀ´£¬ÎÒÃÇÀ´¿´¿´ÈçºÎÔÚ¿Í»§¶ËºÍ·þÎñÆ÷ÎʺͲÙ×÷cookie¡£
ÔÚ¿Í»§¶Ë£¨ä¯ÀÀÆ÷£©ÉÏ£¬JavaScript¿ÉÒÔͨ¹ýdocument.cookie¶ÁÈ¡ËùÓпɷÃÎʵÄcookie¡£ÕâÊÇÒ»¸ö°üº¬ÒԷֺŷָôµÄcookieÁбíµÄ×Ö·û´®£¬²ÉÓÃkey=valueµÄ¸ñʽ¡£Í¬Ñù£¬ÎÒÃÇÒ²¿ÉÒÔʹÓÃdocument.cookieÀ´ÉèÖÃcookieµÄÖµ¡£Èç¹ûÐèҪƵ·±µØ´¦Àícookie£¬Ê¹ÓÃÈçjs-cookieÕâÑùµÄ¿â¿ÉÒÔ¼ò»¯²Ù×÷£¬²¢Ìṩ¸ü¸É¾»µÄAPIÒÔ¼°TypeScriptÖ§³Ö£¬´Ó¶ø±ÜÃâÊôÐÔÆ´Ð´´íÎó¡£
ÔÚ·þÎñÆ÷¶Ë£¨ÒÔNode.jsΪÀý£©£¬ÎÒÃÇ¿ÉÒÔͨ¹ýHTTPÇëÇóµÄÇëÇóÍ·ºÍÏìӦͷÀ´·ÃÎʺÍÐÞ¸Äcookie¡£Ã¿µ±ä¯ÀÀÆ÷Ïò·þÎñÆ÷·¢ËÍHTTPÇëÇóʱ£¬Ëü¶¼»áÔÚcookieÍ·Öи½¼***ùÓÐÏà¹ØµÄcookie¡£ÔÚNode.jsÖУ¬ÎÒÃÇ¿ÉÒÔ´ÓÇëÇó¶ÔÏóÖжÁÈ¡ÕâЩcookie¡£ÉèÖÃcookieÔò¿ÉÒÔÔÚÏìӦͷÖÐÌí¼ÓSet-CookieÍ·¡£
ͨ³££¬ÎÒÃDz»»áÖ±½Ó±àдNode.js´úÂ룬¶øÊÇÓëExpressÕâÑùµÄNode.js¿ò¼ÜÒ»ÆðʹÓá£Ê¹ÓÃExpress¿ÉÒÔ¸ü·½±ãµØ·ÃÎʺÍÐÞ¸Äcookie¡£ÎÞÂÛÊǿͻ§¶Ë»¹ÊÇ·þÎñÆ÷¶Ë£¬¶¼ÓÐһϵÁз½·¨ºÍ¿âÀ´²Ù×÷cookie£¬ÒÔÂú×㲻ͬµÄÐèÇóºÍÓ¦Óó¡¾°¡£ÉñÃØµÄCookieÊÀ½ç£ºÇáËɲÙ×÷ÓëÉîÈëÁ˽âÆäÊôÐÔ
ÔÚÏÖ´úweb¿ª·¢ÖУ¬Cookie°çÑÝ×ÅÖÁ¹ØÖØÒªµÄ½ÇÉ«¡£Ö»ÐèÌí¼ÓÒ»¸öÏñcookie-parserÕâÑùµÄÖмä¼þ£¬ÎÒÃǾͿÉÒÔÇáËɵØÔÚExpressÓ¦ÓÃÖд¦Àícookie¡£Í¨¹ýreq.cookies£¬ÎÒÃÇ¿ÉÒÔ»ñÈ¡ËùÓеÄcookie£¬²¢ÒÔJavaScript¶ÔÏóµÄÐÎʽ½øÐÐʹÓá£ÎÒÃÇ»¹¿ÉÒÔÀûÓÃExpressÄÚÖõÄres.cookie()·½·¨À´ÉèÖÃcookie¡£
ÈÃÎÒÃÇ¿´¿´ÈçºÎÔÚExpressÓ¦ÓÃÖÐʹÓÃcookie-parserÖмä¼þ£º
```javascript
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
app.use(cookieParser());
app.get('/', function (req, res) {
console.log('Cookies:', req.cookies);
// Cookies: { cookie1: 'value1', cookie2: 'value2' }
res.cookie('name', 'tobi', { domain: 'exle', secure: true });
});
app.listen(8080);
```
½ÓÏÂÀ´£¬ÎÒÃÇÉîÈëÁ˽âcookieµÄ¸÷ÖÖÊôÐÔ£º
1. Domain£º´ËÊôÐÔ¸æËßä¯ÀÀÆ÷ÄÄЩÖ÷»ú¿ÉÒÔ·ÃÎÊcookie¡£Ä¬ÈÏÇé¿öÏ£¬cookieÖ»Äܱ»ÉèÖÃËüµÄͬһÖ÷»ú·ÃÎÊ¡£µ«ÓÐʱºò£¬ÎÒÃÇÏ£ÍûcookieÄÜÔÚ×ÓÓòÉÏÒ²±»Ê¹Óá£ÀýÈ磬Èç¹ûµ±Ç°µÄÓòÊÇabc£¬ÎÒÃÇ¿ÉÒÔÉèÖÃDomain=xyz£¬Ê¹cookieÔÚdefºÍxyzµÈ×ÓÓòÉ϶¼¿ÉʹÓᣵ«Õâ²¢²»Òâζ×Å¿ÉÒÔΪÈÎÒâÓòÉèÖÃcookie£¬ÒòΪÕâ´æÔÚ¾Þ´óµÄ°²È«·çÏÕ¡£
2. Path£º´ËÊôÐÔÖ¸¶¨ÁËÇëÇóURLÖбØÐë´æÔڵķ¾¶£¬²ÅÄÜ·ÃÎʸÃcookie¡£ÕâÌṩÁËÒ»ÖÖ³ýÓòÏÞÖÆÖ®ÍâµÄ¶îÍâÏÞÖÆ·½Ê½¡£ÀýÈ磬·¾¶ÊôÐÔΪPath=/storeµÄcookieÖ»ÄÜÔÚ/store¼°Æä×Ó·¾¶£¨Èç/store/cart¡¢/store/gadgetsµÈ£©Ï±»·ÃÎÊ¡£
3. Expires/Max-Age£ºÕâЩÊôÐÔÓÃÓÚÉèÖÃcookieµÄ¹ýÆÚʱ¼ä¡£Èç¹û²»ÉèÖã¬cookieĬÈÏÔÚä¯ÀÀÆ÷¹Ø±ÕºóʧЧ£¨¼´Session cookie£©¡£Í¨¹ýÉèÖÃÒ»¸ö¹ýÆÚÈÕÆÚ£¬ÎÒÃÇ¿ÉÒÔʹcookieÔÚÌØ¶¨µÄʱ¼äºóʧЧ£¬»òÕßͨ¹ý½«Æä¹ýÆÚÈÕÆÚÉèÖÃΪ¹ýÈ¥À´É¾³ýcookie¡£
4. Secure£º´ËÊôÐÔÈ·±£cookieÖ»ÄÜͨ¹ý°²È«µÄHTTPSÐÒé·¢Ë͵½·þÎñÆ÷£¬¶ø²»»áͨ¹ýHTTPÐÒé¡£ÕâÓÐÖúÓÚ·ÀÖ¹ÖмäÈ˹¥»÷¡£³ý·ÇÍøÕ¾Ê¹Óò»°²È«µÄHTTPÁ¬½Ó£¬·ñÔòӦʼÖÕ½«´ËÊôÐÔÓÃÓÚËùÓÐcookie¡£
5. HTTPOnly£º´ËÊôÐÔʹcookieÖ»ÄÜͨ¹ý·þÎñ¶Ë·ÃÎÊ¡£ÕâÒâζ×ÅËüÃÇÎÞ·¨Í¨¹ý¿Í»§¶ËJavaScript·ÃÎÊ£¬Õâ¿ÉÒÔÔÚÒ»¶¨³Ì¶ÈÉϱ£»¤´øÓÐÃô¸ÐÐÅÏ¢µÄcookieÃâÊÜXSS¹¥»÷¡£Õâ²¢²»Òâζ×ÅÍêÈ«ÃâÊÜXSS¹¥»÷£¬ÒòΪ¹¥»÷ÕßÈÔ¿ÉÄÜÖ´ÐÐAPIÇëÇó»òÆäËû²Ù×÷¡£Òò´ËÔÚʹÓÃʱ»¹ÐèÒª½áºÏÆäËû°²È«´ëʩһÆðʹÓá£
ÏÖ´úWeb¿ª·¢ÖеÄCookieÓëIndexedDB¼¼Êõ
Ò»¡¢Cookie¹ÜÀí¿â
ÔÚÏÖ´úWeb¿ª·¢ÖУ¬´¦ÀíCookieÊÇÒ»Ïî¹Ø¼üÈÎÎñ¡£ÓжàÖÖ¿â¿ÉÒÔ¼ò»¯ÕâÒ»¹ý³Ì£¬°üÀ¨js-cookie¡¢React CookieºÍCookies£¨Node.js£©¡£
1. js-cookie
js-cookieÊÇÒ»¸öÇáÁ¿¼¶µÄ¡¢¹¦ÄÜÇ¿´óµÄJavaScript¿â£¬Ö§³ÖAMD¡¢CommonºÍESÄ£¿é£¬ÎÞÐèÒÀÀµ¹ØÏµ£¬¾¹ý³¹µ×²âÊÔ£¬²¢¾ß±¸Í¨ÓÃä¯ÀÀÆ÷Ö§³Ö¡£°²×°·Ç³£¼òµ¥£¬Ö»Ðèͨ¹ýnpm°²×°¼´¿É¡£Ê¹ÓÃÒ²ºÜÖ±¹Û£¬¿ÉÒÔÇáËÉÉèÖᢶÁÈ¡ºÍɾ³ýCookie¡£
2. React Cookie
React CookieÊÇרÃÅΪReactÉè¼ÆµÄcookie¿â£¬¼Ì³ÐÁËUniversal Cookie¿âµÄ¹¦ÄÜ¡£ËüÌṩÁËÒ»×é×é¼þºÍHooks£¬Ê¹ReactÖеÄcookie´¦Àí±äµÃ·Ç³£¼òµ¥¡£ÎÞÂÛÊÇʹÓÃReact 16.8+°æ±¾»¹ÊǸüÔç°æ±¾£¬¶¼¿ÉÒÔͨ¹ý¸Ã¿âÇáËÉ´¦Àícookie¡£
3. Cookies£¨Node.js£©
CookiesÊÇHTTP cookieÅäÖõÄÁ÷ÐÐNodeÄ£¿éÖ®Ò»¡£Ëü¿ÉÒÔÇáËɵØÓëÄÚÖõÄNode HTTP¿â¼¯³É£¬»ò×÷ΪExpressÖмä¼þʹÓá£ËüÌṩÁËÇ¿´óµÄ¹¦ÄÜ£¬ÈçʹÓÃKeygrip¶Ôcookie½øÐÐÇ©ÃûÒÔ·ÀÖ¹´Û¸Ä¡¢Ö§³ÖÑÓ³ÙcookieÑéÖ¤µÈ¡£
¶þ¡¢IndexedDB¼¼Êõ
³ýÁËCookie¹ÜÀíÖ®Í⣬IndexedDBÊÇÏÖ´úWeb¿ª·¢ÖÐÁíÒ»ÖÖÖØÒª¼¼Êõ¡£ËüÊÇÒ»¸öÔÚ¿Í»§¶Ë´æ´¢´óÁ¿½á¹¹»¯Êý¾ÝµÄÊý¾Ý¿âϵͳ¡£
1. ¸ÅÊö
IndexedDBÌṩÁËÒ»¸öÀàËÆNoSQLµÄkey/valueÊý¾Ý¿â£¬¿ÉÒÔ´æ´¢´óÁ¿½á¹¹»¯Êý¾Ý¡¢ÎļþºÍblob¡£Ã¿¸öÓòÖÁÉÙÓÐ1GBµÄ¿ÉÓÿռ䣬²¢ÇÒ×î¶à¿ÉÒԴﵽʣÓà´ÅÅ̿ռäµÄ60%¡£ËüÓÚ2011ÄêʵÏÖ£¬²¢ÓÚ2015Äê1Ô³ÉΪW3C±ê×¼£¬¾ßÓÐÁ¼ºÃµÄä¯ÀÀÆ÷Ö§³Ö¡£
2. ¹Ø¼üÊõÓï½âÊÍ
ÔÚÉîÈëÁ˽âIndexedDB֮ǰ£¬ÎÒÃÇÐèÒªÁ˽âһЩÏà¹ØÊõÓï¡£Êý¾Ý¿âÊÇÖ¸Ò»¸öÓò¿ÉÒÔ´´½¨ÈÎÒâÊýÁ¿µÄIndexedDBÊý¾Ý¿â£¬Ö»ÓÐͬһÓòÄÚµÄÒ³Ãæ²ÅÄÜ·ÃÎÊÊý¾Ý¿â¡£Object storeÊÇÏà¹ØÊý¾ÝÏîµÄkey/value´æ´¢£¬ÀàËÆÓÚMongoDBÖеļ¯ºÏ»ò¹ØÏµÊý¾Ý¿âÖÐµÄ±í¡£KeyÊÇÓÃÓÚÒýÓÃobject storeÖÐÿÌõ¼Ç¼£¨Öµ£©µÄΨһÃû³Æ¡£IndexÊÇÔÚobject storeÖÐ×éÖ¯Êý¾ÝµÄÁíÒ»ÖÖ·½Ê½£¬ËÑË÷²éѯֻÄܼì²ékey»òindex¡£SchemaÊÇÖ¸object store¡¢keyºÍindexµÄ¶¨Ò壬¶øversionÔò·ÖÅ䏸schemaµÄ°æ±¾ºÅ¡£
ͨ¹ýʹÓÃIndexedDB£¬¿ª·¢ÈËÔ±¿ÉÒÔÇáËɵش洢ºÍ¼ìË÷´óÁ¿Êý¾Ý£¬Ìá¸ßWebÓ¦ÓóÌÐòµÄÐÔÄܺÍÓû§ÌåÑé¡£½áºÏÆäËû
°×ñ°·çÖ¢×´
- СÃ×note3±¨¼Û
- ºþ±±¸ß¿¼ÊÇÈ«¹ú¼¸¾í
- º«Óï·Òë»úbesta
- ÈË¿ÚÆÕ²é2021¹«²¼Ê±¼ä
- ÀøÖ¾µÄ»°¼ò¶Ì°ÔÆø
- ´Ó»¯ÕÐÆ¸ÍøÕÐÆÕ¹¤
- н®Öп¼³É¼¨Ê²Ã´Ê±ºò³öÀ´2021
- ÒÁÀ³Ò®Ë¹ ¼Ó±´¶û
- ¶ùͯ·þ×°ÔÓÖ¾¹ÙÍøµÇ¼Èë¿Ú
- 2021Öп¼³É¼¨²éѯÈë¿ÚÍøÕ¾
- ÓàÒôÈÆÁºÈýÈÕ²»¾ø
- ¶ç½·ÓãÍ·ÊÇʲôµØ·½µÄ²Ë
- ¼ÆËã»úµÈ¼¶¿¼ÊÔÕæÌâ
- ¸¸Ç׸ø¶ù×Ó¿ÄÍ·
- ÔÙµ±·ë¸¾ÊÇʲôÉúФ
- Õã½Îª¿¼ÑÐÉúµ÷¾í