è¿äºé½æ¯åºç¡ç¥è¯ï¼ä¸è¿æå¿
è¦åæ·±å
¥äºè§£ãå
ç®åä»ç»ä¸ä¸ã
äºè
çå®ä¹ï¼
å½ä½ å¨æµè§ç½ç«çæ¶åï¼WEB æå¡å¨ä¼å
éä¸å°å°èµææ¾å¨ä½ ç计ç®æºä¸ï¼Cookie ä¼å¸®ä½ å¨ç½ç«ä¸ææçæåææ¯ä¸äºéæ©ï¼
é½çºªå½ä¸æ¥ãå½ä¸æ¬¡ä½ åå
临åä¸ä¸ªç½ç«ï¼WEB æå¡å¨ä¼å
ççæ没æå®ä¸æ¬¡çä¸ç Cookie èµæï¼æçè¯ï¼å°±ä¼ä¾æ® Cookie
éçå
容æ¥å¤æ使ç¨è
ï¼éåºç¹å®çç½é¡µå
容ç»ä½ ã Cookie ç使ç¨å¾æ®éï¼è®¸å¤ææä¾ä¸ªäººåæå¡çç½ç«ï¼é½æ¯å©ç¨ Cookie
æ¥è¾¨è®¤ä½¿ç¨è
ï¼ä»¥æ¹ä¾¿éåºä½¿ç¨è
é身å®åçå
容ï¼åæ¯ Web æ¥å£çå
è´¹ email ç½ç«ï¼é½è¦ç¨å° Cookieã
å
·ä½æ¥è¯´cookieæºå¶éç¨çæ¯å¨å®¢æ·ç«¯ä¿æç¶æçæ¹æ¡ï¼èsessionæºå¶éç¨çæ¯å¨æå¡å¨ç«¯ä¿æç¶æçæ¹æ¡ã
åæ¶æ们ä¹çå°ï¼ç±äºéç¨æå¡å¨ç«¯ä¿æç¶æçæ¹æ¡å¨å®¢æ·ç«¯ä¹éè¦ä¿åä¸ä¸ªæ è¯ï¼æ以sessionæºå¶å¯è½éè¦åå©äºcookieæºå¶
æ¥è¾¾å°ä¿åæ è¯çç®çï¼ä½å®é
ä¸å®è¿æå
¶ä»éæ©ã
cookieæºå¶ãæ£ç»çcookieååæ¯éè¿æ©å±
HTTPåè®®æ¥å®ç°çï¼æå¡å¨éè¿å¨HTTPçååºå¤´ä¸å ä¸ä¸è¡ç¹æ®çæ示以æ示
æµè§å¨æç
§æ示çæç¸åºçcookieãç¶è纯粹ç客æ·ç«¯èæ¬å¦JavaScriptæè
VBScriptä¹å¯ä»¥çæcookieãècookieç使ç¨
æ¯ç±æµè§å¨æç
§ä¸å®çååå¨åå°èªå¨åéç»æå¡å¨çãæµè§å¨æ£æ¥ææåå¨çcookieï¼å¦ææ个cookieæ声æçä½ç¨èå´
大äºçäºå°è¦è¯·æ±çèµæºæå¨çä½ç½®ï¼åæ该cookieéå¨è¯·æ±èµæºç
HTTP请æ±å¤´ä¸åéç»æå¡å¨ã
cookieçå
容主è¦å
æ¬ï¼ååï¼å¼ï¼è¿ææ¶é´ï¼è·¯å¾ååãè·¯å¾ä¸åä¸èµ·ææcookieçä½ç¨èå´ãè¥ä¸è®¾ç½®è¿ææ¶é´ï¼å表示è¿
个cookieççå½æ为æµè§å¨ä¼è¯æé´ï¼å
³éæµè§å¨çªå£ï¼cookieå°±æ¶å¤±ãè¿ç§çå½æ为æµè§å¨ä¼è¯æçcookie被称为ä¼è¯cookieã
ä¼è¯cookieä¸è¬ä¸åå¨å¨ç¡¬çä¸èæ¯ä¿åå¨å
åéï¼å½ç¶è¿ç§è¡ä¸ºå¹¶ä¸æ¯è§èè§å®çãè¥è®¾ç½®äºè¿ææ¶é´ï¼æµè§å¨å°±ä¼æcookie
ä¿åå°ç¡¬çä¸ï¼å
³éåå次æå¼æµè§å¨ï¼è¿äºcookieä»ç¶ææç´å°è¶
è¿è®¾å®çè¿ææ¶é´ãåå¨å¨ç¡¬çä¸çcookieå¯ä»¥å¨ä¸åçæµ
è§å¨è¿ç¨é´å
±äº«ï¼æ¯å¦ä¸¤ä¸ªIEçªå£ãè对äºä¿åå¨å
åéçcookieï¼ä¸åçæµè§å¨æä¸åçå¤çæ¹å¼
sessionæºå¶ãsessionæºå¶æ¯ä¸ç§æå¡å¨ç«¯çæºå¶ï¼æå¡å¨ä½¿ç¨ä¸ç§ç±»ä¼¼äº
æ£å表çç»æï¼ä¹å¯è½å°±æ¯ä½¿ç¨æ£å表ï¼æ¥ä¿åä¿¡æ¯ã
å½ç¨åºéè¦ä¸ºæ个客æ·ç«¯ç请æ±å建ä¸ä¸ªsessionæ¶ï¼æå¡å¨é¦å
æ£æ¥è¿ä¸ªå®¢æ·ç«¯ç请æ±éæ¯å¦å·²å
å«äºä¸ä¸ªsessionæ è¯
ï¼ç§°ä¸ºsession idï¼ï¼å¦æå·²å
å«å说æ以åå·²ç»ä¸ºæ¤å®¢æ·ç«¯å建è¿sessionï¼æå¡å¨å°±æç
§session idæè¿ä¸ªsessionæ£ç´¢åºæ¥
使ç¨ï¼æ£ç´¢ä¸å°ï¼ä¼æ°å»ºä¸ä¸ªï¼ï¼å¦æ客æ·ç«¯è¯·æ±ä¸å
å«session idï¼å为æ¤å®¢æ·ç«¯å建ä¸ä¸ªsession并ä¸çæä¸ä¸ªä¸æ¤sessionç¸
å
³èçsession idï¼session idçå¼åºè¯¥æ¯ä¸ä¸ªæ¢ä¸ä¼éå¤ï¼åä¸å®¹æ被æ¾å°è§å¾ä»¥ä»¿é ç
å符串ï¼è¿ä¸ªsession idå°è¢«å¨æ¬æ¬¡ååº
ä¸è¿åç»å®¢æ·ç«¯ä¿åãä¿åè¿ä¸ªsession idçæ¹å¼å¯ä»¥éç¨cookieï¼è¿æ ·å¨äº¤äºè¿ç¨ä¸æµè§å¨å¯ä»¥èªå¨çæç
§è§åæè¿ä¸ªæ è¯åéç»
æå¡å¨ãä¸è¬è¿ä¸ªcookieçååé½æ¯ç±»ä¼¼äºSEEESIONIDãä½cookieå¯ä»¥è¢«äººä¸ºçç¦æ¢ï¼åå¿
é¡»æå
¶ä»æºå¶ä»¥ä¾¿å¨cookie被ç¦æ¢æ¶
ä»ç¶è½å¤æsession idä¼ éåæå¡å¨ã
ç»å¸¸è¢«ä½¿ç¨çä¸ç§ææ¯å«åURLéåï¼å°±æ¯æsession idç´æ¥éå å¨URLè·¯å¾çåé¢ãè¿æä¸ç§ææ¯å«å表åéèå段ãå°±æ¯æå¡å¨
ä¼èªå¨ä¿®æ¹è¡¨åï¼æ·»å ä¸ä¸ªéèå段ï¼ä»¥ä¾¿å¨è¡¨åæ交æ¶è½å¤æsession idä¼ éåæå¡å¨ãæ¯å¦ï¼
<form name="testform" action="/xxx">
<input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764">
<input type="text">
</form>
å®é
ä¸è¿ç§ææ¯å¯ä»¥ç®åçç¨å¯¹actionåºç¨URLéåæ¥ä»£æ¿ã
cookie åsession çåºå«ï¼
1ãcookieæ°æ®åæ¾å¨å®¢æ·çæµè§å¨ä¸ï¼sessionæ°æ®æ¾å¨æå¡å¨ä¸ã
2ãcookieä¸æ¯å¾å®å
¨ï¼å«äººå¯ä»¥åæåæ¾å¨æ¬å°çCOOKIE并è¿è¡COOKIE欺éª
èèå°å®å
¨åºå½ä½¿ç¨sessionã
3ãsessionä¼å¨ä¸å®æ¶é´å
ä¿åå¨æå¡å¨ä¸ãå½è®¿é®å¢å¤ï¼ä¼æ¯è¾å ç¨ä½ æå¡å¨çæ§è½
èèå°åè½»æå¡å¨æ§è½æ¹é¢ï¼åºå½ä½¿ç¨COOKIEã
4ãå个cookieä¿åçæ°æ®ä¸è½è¶
è¿4Kï¼å¾å¤æµè§å¨é½éå¶ä¸ä¸ªç«ç¹æå¤ä¿å20个cookieã
5ãæ以个人建议ï¼
å°ç»éä¿¡æ¯çéè¦ä¿¡æ¯åæ¾ä¸ºSESSION
å
¶ä»ä¿¡æ¯å¦æéè¦ä¿çï¼å¯ä»¥æ¾å¨COOKIEä¸
äº.sessionç
çå½å¨æ ããSessionåå¨å¨æå¡å¨ç«¯ï¼ä¸è¬ä¸ºäºé²æ¢å¨æå¡å¨çå
åä¸ï¼ä¸ºäºé«éååï¼ï¼Sessinonå¨ç¨æ·è®¿é®ç¬¬ä¸æ¬¡è®¿é®æå¡å¨æ¶å建ï¼éè¦æ³¨æåªæ访é®JSPãServletçç¨åºæ¶æä¼å建Sessionï¼åªè®¿é®HTMLãIMAGEçéæèµæºå¹¶ä¸ä¼å建Sessionï¼å¯è°ç¨request.getSession(true)强å¶çæSessionã
ããSessionä»ä¹æ¶å失æï¼
ãã1. æå¡å¨ä¼æé¿æ¶é´æ²¡ææ´»å¨çSessionä»æå¡å¨å
åä¸æ¸
é¤ï¼æ¤æ¶Session便失æãTomcatä¸Sessionçé»è®¤å¤±ææ¶é´ä¸º20åéã
ãã2. è°ç¨Sessionçinvalidateæ¹æ³ã
ããSession对æµè§å¨çè¦æ±ï¼
ããè½ç¶Sessionä¿åå¨æå¡å¨ï¼å¯¹å®¢æ·ç«¯æ¯éæçï¼å®çæ£å¸¸è¿è¡ä»ç¶éè¦å®¢æ·ç«¯æµè§å¨çæ¯æãè¿æ¯å 为Sessionéè¦ä½¿ç¨Cookieä½ä¸ºè¯å«æ å¿ãHTTPåè®®æ¯
æ ç¶æçï¼Sessionä¸è½ä¾æ®HTTPè¿æ¥æ¥å¤ææ¯å¦ä¸ºåä¸å®¢æ·ï¼å æ¤æå¡å¨å客æ·ç«¯æµè§å¨åéä¸ä¸ªå为JSESSIONIDçCookieï¼å®çå¼ä¸ºè¯¥Sessionçidï¼ä¹å°±æ¯HttpSession.getId()ç
è¿åå¼ï¼ãSessionä¾æ®è¯¥Cookieæ¥è¯å«æ¯å¦ä¸ºåä¸ç¨æ·ã
ãã该Cookie为æå¡å¨èªå¨çæçï¼å®çmaxAgeå±æ§ä¸è¬ä¸º-1ï¼è¡¨ç¤ºä»
å½åæµè§å¨å
ææï¼å¹¶ä¸åæµè§å¨çªå£é´ä¸å
±äº«ï¼å
³éæµè§å¨å°±ä¼å¤±æãå æ¤åä¸æºå¨ç两个æµè§å¨çªå£è®¿é®æå¡å¨æ¶ï¼ä¼çæ两个ä¸åçSessionãä½æ¯ç±æµè§å¨çªå£å
çé¾æ¥ãèæ¬çæå¼çæ°çªå£ï¼ä¹å°±æ¯è¯´ä¸æ¯åå»æ¡é¢æµè§å¨å¾æ çæå¼ççªå£ï¼é¤å¤ãè¿ç±»åçªå£ä¼å
±äº«ç¶çªå£çCookieï¼å æ¤ä¼å
±äº«ä¸ä¸ªSessionã
ãã注æï¼æ°å¼çæµè§å¨çªå£ä¼çææ°çSessionï¼ä½åçªå£é¤å¤ãåçªå£ä¼å
±ç¨ç¶çªå£çSessionãä¾å¦ï¼å¨é¾æ¥ä¸å³å»ï¼å¨å¼¹åºçå¿«æ·èåä¸éæ©"å¨æ°çªå£ä¸æå¼"æ¶ï¼åçªå£ä¾¿å¯ä»¥è®¿é®ç¶çªå£çSessionã
å¦æ客æ·ç«¯æµè§å¨å°Cookieåè½ç¦ç¨ï¼æè
ä¸æ¯æCookieæä¹åï¼ä¾å¦ï¼ç»å¤§å¤æ°çææºæµè§å¨é½ä¸æ¯æCookieãJava Webæä¾äºå¦ä¸ç§è§£å³æ¹æ¡ï¼URLå°åéåã
ããURLå°åéåæ¯å¯¹å®¢æ·ç«¯ä¸æ¯æCookieç解å³æ¹æ¡ãURLå°åéåçåçæ¯å°è¯¥ç¨æ·Sessionçidä¿¡æ¯éåå°URLå°åä¸ãæå¡å¨è½å¤è§£æéååçURLè·åSessionçidãè¿æ ·å³ä½¿å®¢æ·ç«¯ä¸æ¯æCookieï¼ä¹å¯ä»¥ä½¿ç¨Sessionæ¥è®°å½ç¨æ·ç¶æãHttpServletResponseç±»æä¾äºencodeURL(String url)å®ç°URLå°åéåï¼è¯¥æ¹æ³ä¼èªå¨å¤æ客æ·ç«¯æ¯å¦æ¯æCookieãå¦æ客æ·ç«¯æ¯æCookieï¼ä¼å°URLåå°ä¸å¨å°è¾åºæ¥ãå¦æ客æ·ç«¯ä¸æ¯æCookieï¼åä¼å°ç¨æ·Sessionçidéåå°URLä¸ã
ãã注æï¼TOMCATå¤æ客æ·ç«¯æµè§å¨æ¯å¦æ¯æCookieçä¾æ®æ¯è¯·æ±ä¸æ¯å¦å«æCookieã尽管客æ·ç«¯å¯è½ä¼æ¯æCookieï¼ä½æ¯ç±äºç¬¬ä¸æ¬¡è¯·æ±æ¶ä¸ä¼æºå¸¦ä»»ä½Cookieï¼å 为并æ ä»»ä½Cookieå¯ä»¥æºå¸¦ï¼ï¼URLå°åéååçå°åä¸ä»ç¶ä¼å¸¦æjsessionidãå½ç¬¬äºæ¬¡è®¿é®æ¶æå¡å¨å·²ç»å¨æµè§å¨ä¸åå
¥Cookieäºï¼å æ¤URLå°åéååçå°åä¸å°±ä¸ä¼å¸¦æjsessionidäºã