Cookie (¦±©_)
Cookie §Þ³N¬O¦bÂsÄý¾¹Àx¦s¸ê°Tªº¤@ºØ¤èªk¡A ¦Ó³o¨Ç¸ê°T´NºÙ¬°
Cookie ¡A ¦øªA¾¹¥i¥HÀx¦s¤@¨Ç¸ê°T¨ìÂsÄý¾¹¡A
¨ì¤U¦¸ÂsÄý¾¹¦A»P¦øªA¾¹·¾³q®É¡A ³o®É¸ê°T´N·|¶Ç¨ì¦øªA¾¹¡C Cookie
§Þ³N¦b NN 2.0 ¶}©l¨Ï¥Î¡C
¨Ï¥Î Cookie ªº¨Ò¤l¡G
- ¤ë¾ä°O¨ÆÃ¯¡G ±Nn°O¦íªº°T®§Àx¦s¦bÂsÄý¾¹¡A
¨ì¯S©wªº®É¶¡¼u¥X¸Ó°T®§
- Ó¤H¤Æºô¯¸¡G °O¿ý§A¦b¬Yºô¯¸ªº³]©w¡A ¨Ò¦pI´ºÃC¦â¡A
·í§A¤U¦¸¦A¨ì¸Ó¯¸®É´N·|¥Î§A©Ò³]©wªºI´ºÃC¦â¡F
°O¿ý§A¤§«e¦b¬Yºô¯¸ÂsÄý¨ì¨º¤@¶¡A
¨ì¤U¦¸ÂsÄý¸Ó¯¸®É´N¦Û°Ê±a§A¨ì¸Ó¶¡A ¸`¬ÙÂsÄý®É¶¡
- µn¤J«O¦w¡G ·í§Aµn¤J¬Yºô¯¸®É¡A
¦øªA¾¹·|°O¿ý¤@¨Ç¸ê°T¨ìÂsÄý¾¹¡A ¥H½T©w§A¬O§_¨ºÓµn¤Jªº¨Ï¥ÎªÌ
¥H¤U¬O¤j·§ªº HTTP ¹B§@¡G
- ·íÂsÄý¾¹n¨D¬YÓ URL (¨Ò¦pºô¶ªº URL) ®É¡A ´N·|±N¤@Ó HTTP n¨D
(HTTP Request) ¶Ç°e¨ì¦øªA¾¹¡A ³oÓRequest ªº header ¥]§t¤F¤@¨Ç¸ê°T¡A
¨Ò¦p¸Ó¶ªº¸ô®|¦WºÙ¡C
- ¦øªA¾¹¦¬¨ì Request «á¡A ´N·|¶Ç¦^¤@Ó HTTP ¤ÏÀ³ (HTTP Response)
¨ìÂsÄý¾¹¡A ³oÓ Response ¤]¦³¤@Ó header¡A
¥¦¥]§t¤F¸Ó¶ªº¤@¨Ç¸ê°T¡A ¨Ò¦p MIME «¬ºA¡C
Request ©M Response ªº header ³£¥]§t¤F³\¦hÄæ¸ê°T¡A
¦Ó¨C¤@Äæªº°ò¥»®æ¦¡¦p¤U¡G
¨Ò¤l¡G HTTP Request Header
GET
http://home4u.hongkong.com/entertainment/music/mpx/js/header.htm HTTP/1.1
HOST: home4u.hongkong.com
ACCEPT: */*
User-Agent: NetAnts/1.0 |
¨Ò¤l¡G HTTP Response Header
HTTP/1.0 200 Document Follows
Date: Tue, 17 Aug 1999 08:59:10 GMT
Server: NCSA/1.3
Content-Type: text/html
Last-Modified: Tue, 17 Aug 1999 08:54:38 GMT
Content-Length: 80
<html><head><title> HTTP Header </title>
<body>
Hello, world
</body>
</html> |
»¡©ú¡G
- ¨Ò¤l¤¤©Ò¦³¤º®e³£¬O¦øªA¾¹¶Ç¦^ÂsÄý¾¹ªºªF¦è¡A ¦Ó <html>
¼Ð°O¤§«eªºªF¦è´N¬O Header ¤F¡A Header ¥]§t¤F¤@¨Ç«n¸ê°T¡A ¨Ò¦p
Conent-Type: text/html¡A ¥Î¨Ó§i¶DÂsÄý¾¹¡A ¤º®eªº MIME «¬ºA¬O text/html¡F
Header »P <html> ¤¤¶¡¹j¤F¤@¦æ¡A ¬O¥Î¨Ó§i¶DÂsÄý¾¹¨ºùجO Header
ªºµ²§À¡C
¥H¤U¬O Cookie ªºÂ²³æ¹B§@¡G
- ·í¦øªA¾¹¦¬¨ìÂsÄý¾¹ªº Request «á¡A ´N¶Ç¦^¤@Ó HTTP Response
¨ìÂsÄý¾¹¡A ³oÓ Response ªº Header ¥i¥H¥]§t¤F¤@өΪ̦hÓ Set-Cookie Äæ¡A ³o¤@Äæ¥]§t¤F¦øªA¾¹·QÀx¦sªº Cookie
¸ê°T¡A ¨Ò¦p³oÓ Cookie ªº¦WºÙ¡B È¡B ¦³®Ä¤é´Á¡B «O¦w©Ê¡B
¥i¨Ï¥Îªººô°ì©M¸ô®|¦WºÙµ¥¡C
- ÂsÄý¾¹´N·|±N Cookie Àx¦s°_¨Ó¡A ³q±`Àx¦s¦b¤@ÓÀɮפº¡C
- ¤§«á·íÂsÄý¾¹n¨D¬Y¤@Óºô¶®É¡A ÂsÄý¾¹·|Àˬd¥¦Àx¦s¤Fªº Cookie
¬O§_¤¹³\³Q¨º¤@Óºô¶¦s¨ú¡A ¦pªG¬O¤¹³\ªº¸Ü¡A ´N·|¦b HTTP Request
Header ¥[¤J Cookie ¤@Äæ¡A ¤@¦P¶Ç°e¨ì¦øªA¾¹¡C
HTTP Response Header ¦³¤@Äæ¬O Set-Cookie¡A
·í¦øªA¾¹·Q¦bÂsÄý¾¹Àx¦s¸ê°T®É´N·|¥[¤J³oÄæ¡C
¥¦ªº°ò¥»®æ¦¡¦p¤U¡G
Set-Cookie: name=value; expires=date;
path=path; domain=domain; secure |
®æ¦¡´N¦p Name/Value Pair ¤@¼Ë¡A ¦Ó¨CÓ Name/Value Pair ³£³Q¤À¸¹ (;)
¤À¹j¡C
»¡©ú¡G
°Ñ¼Æ |
»¡©ú |
name=value |
name ¬O Cookie ªº¦WºÙ¡A value ¬O¸Ó Cookie ªºÈ¡A
³oÓ¦r¦ê·|¥H 16 ¶i¨î½s½X¡C ¤Ó°Ñ¼Æ¤§¤¤¡A
¥u¦³³oӰѼƬO¥²»Ýªº¡C |
expires=date |
«ü©w Cookie ªº¦³®Ä¤é´Á¡A ·í¹L¤F¦³®Ä¤é´Á«á¡A ¨ºÓ Cookie
´N¤£·|¦AÀx¦s¦bÂsÄý¾¹¡F date ¬O GMT ®æ¦¡ªº¦³®Ä¤é´Á¡C
¦pªG¤£«ü©w³oӰѼơA ¸Ó Cookie ªº¦³®Ä¤é´Á´N¬O¨Ï¥ÎªÌ°h¥XÂsÄý¾¹®É
(End of Browser Session) |
path=path |
«ü©w¥i¥H¦s¨ú¸Ó Cookie ªº¸ô®|¡A ¦pªGÂsÄý¾¹n¨Dªº URL ¥G¦X Cookie
ªººô°ì©M¸ô®|¦WºÙ (domain ©M path)¡A ´N·|¶Ç°e¸Ó Cookie
¨ì¦øªA¾¹¡C ¦pªG¤£«ü©w³oӰѼơA path ´N«ü©w¬°³]©w¸Ó Cookie
ªººô¶©Ò¦bªº¸ô®| |
domain=domain |
«ü©w¥i¥H¦s¨ú¸Ó Cookie ªººô°ì¡C ¦pªG¤£«ü©w³oӰѼơA domain
´N«ü©w¬°³]©w¸Ó Cookie ªººô¶©Ò¦bªººô°ì |
secure |
«ü©w Cookie ¥u¥i¥H¶Ç°eµ¹ HTTPS ¦øªA¾¹ (¥Î SSL ªº HTTP ¦øªA¾¹) |
¡@
HTTP Request Header ¦³¤@Äæ¬O Cookie¡A
·íÂsÄý¾¹n¨Dªº URL ²Å¦X¶Ç°e Cookie ªº±ø¥ó®É´N·|¥[¤J³oÄæ¡C
¥¦ªº°ò¥»®æ¦¡¦p¤U¡G
Cookie: name1=value1; name2=value2;
... |
Cookie Äæ¥u¶·¥]§t Cookie ªº¦WºÙ©MÈ¡A ¦Ó®æ¦¡©M Set-Cookie ¬Û¦ü¡A
¤]¬O¥Î¤À¸¹¤À¹j¨CÓ Name/Value Pair¡C
¡@
¦øªA¾¹n¨ú±oÂsÄý¾¹ªº Cookie ¸ê°T¨Ó§@°µ¤£¦Pªº¤u§@¡A ¤@¯ë³£·|¥Î
CGI Script¡C
¥H¤U¬O¥Î CGI Script ¨Ó¦s¨ú Cookie ªº¹B§@¨Ò¤l¡G
- ÂsÄýªÌn¨D¬YÓ URL¡A ¦Ó³oÓ URL ¬O¤@Ó CGI Script ªº URL
- CGI Script ·|Àˬd¨ºÓ HTTP Request Header ¦³§_¥]§t Cookie
¤@Äæ
- ¦pªG¨S¦³ªº¸Ü¡A ´Nªí¥ÜÂsÄýªÌ¥i¯à¬O²Ä¤@¦¸n¨D¸Ó URL
- ¦pªG¦³ªº¸Ü¡A ´Nªí¥ÜÂsÄýªÌ¥H«e´¿¸gn¨D¸Ó URL¡A CGI Script Ū¨ú¸Ó
Cookie ªº¸ê°T¨Ó°µ¤£¦Pªº¤u§@¡A ¨Ò¦p¶Ç¦^¤£¦P¤º®eªººô¶
- CGI Script ¤]¥i¥H¦b¨C¦¸¶Ç¦^ HTTP Response ®É³]©w Cookie¡A ¥H§ó·s Cookie
ªº¤º®e¡C
¡@
¦pªG¥Î JavaScript ¨Ó¦s¨ú Cookie¡A ¨º»ò¦øªA¾¹¤£¥Î°õ¦æ CGI Script
¨Ó³]©w Cookie¡A ¤]¥i¥H¨ú±o¥Ñ JavaScript ³]©wªº Cookie¡A
¤j¤j´î¤Ö¤F¦øªA¾¹ªº¤u§@¡C
JavaScript ¬O¥Î document.cookie ³oÓÄݩʨӦs¨ú Cookie ªº¡A
¥H¤U¬O¥Î JavaScript ¨Ó¦s¨ú Cookie ªº¹B§@¨Ò¤l¡G
- ÂsÄýªÌn¨D¬YÓ HTML ºô¶ªº URL¡A ¦Ó³oÓºô¶¤º¦³ JavaScript
- JavaScript ·|Ū¨ú document.cookie ªº¤º®e
- ¦pªG¨S¦³ªº¸Ü¡A ´Nªí¥ÜÂsÄýªÌ¥i¯à¬O²Ä¤@¦¸n¨D¸Ó URL
- ¦pªG¦³ªº¸Ü¡A ´Nªí¥ÜÂsÄýªÌ¥H«e´¿¸gn¨D¸Ó URL¡A JavaScript
·|Ū¨ú¸Ó Cookie ªº¸ê°T¨Ó°µ¤£¦Pªº¤u§@
- JavaScript ¥i¥H§Y®É³]©w Cookie¡A ¦Ó¤£¶·»P¦øªA¾¹·¾³q¡C
¨Ò¤l¡G ¥Î JavaScript ³]©w 2 Ó
Cookie js_tut_eg_cookie1.htm
<script>
function setck() {
document.cookie = "myname=Tom";
document.cookie = "myage=16";
alert("Cookies have been set")
}
</script>
<form>
<input type=button value="Set Cookie" onclick="setck()">
<input type=button value="document.cookie" onclick="alert(document.cookie)">
</form> |
»¡©ú¡G
- ¦pªG§A¬O²Ä¤@¦¸¨Ó¨ì¥»¯¸¡A ¨Ã¥B¤@¶}©l´N«ö "document.cookie"
«ö¶s¡A ´N·|¨£¨ì document.cookie ªºÈ¬OªÅ¥Õªº¡F ·í«ö¤U "Set
Cookie" ¤§«á¡A ´N·|³]©w 2 Ó Cookie¡A ¤§«á¦A«ö¤U
"document.cookie" «ö¶s®É¡A ´N·|¨£¨ì document.cookie ¦³³o 2 Ó Cookie
¤F¡C ¦]¬°¨S¦³³]©w¥¦Ìªº¦³®Ä¤é´Á¡A ©Ò¥H·í§AÃö³¬ÂsÄý¾¹®É¡A
´N³o¨âÓ Cookie ´N·|¥¢®Ä¤F¡C
- document.cookie = "myname=Tom";
³]©w Cookie ¡A ³oÓ Cookie
ªº¦WºÙ©MȤÀ§O¬O myname ©M Tom¡A ³o¤@¥yªº§@¥Î´Nµ¥©ó¥H¤Uªº HTTP
Response Header Äæ¦ì¡G
- alert(document.cookie)
Ū¨ú document.cookie
ªº¤º®e¡A document.cookie ªº®æ¦¡´N©M HTTP Response Header ªº Cookie
Äæ¤@¼Ë¡G
- Á`¤§¡A ¥Î JavaScript ¦s¨ú Cookie ®É©Ò¥Îªº Cookie ®æ¦¡¬O»P HTTP
Request/Response Header ¤@¼Ëªº¡C
§Ú̳q±`¥Î¤é´Áª«¥óªº toGMTString() ¤èªk§â date Âন GMT¡A
ÁÙ·|¥Î¨ä¥¦¤èªk¨Ó«ü©w Cookie ªº¦³®Ä¤é´Á¡C
¨Ò¤l¡G ³]©w¤@Ó Cookie¡A
¥¦¦b¨â¤ÀÄÁ¤§«á´N¥¢®Ä js_tut_eg_cookie2.htm
<script>
function setck() {
var st = ""
var expires = new Date();
expires.setTime(expires.getTime() + 2 * 60 * 1000);
st = "myname=Tom; expires=" + expires.toGMTString()
document.cookie = st
alert(st + "\nThis cookie will be expired in 2 minutes.")
}
function cycle() {
window.status = document.cookie
setTimeout("cycle()", 1)
}
cycle()
</script>
<form>
<input type=button value="Set Cookie" onclick="setck()">
</form> |
»¡©ú¡G
§A¤]¥i¥H«ü©w Cookie ¦b¬Y¤@Ó¯S©w¤é´Á¥¢®Ä¡A ¨Ò¦p§A·Q¥¦¦b 2001 ¦~
1 ¤ë 2 ¤é 3 ®É 4 ¤À¥¢®Ä¡A ¥i¥H±N¤§«e¨Ò¤l¤¤ªº expires
ÅܼƥΥH¤U¤èªk¨Ó³]©w¥¦ªºÈ¡G
var expires = new Date();
expires.setYear(2001);
expires.setMonth(0);
expires.setDate(1);
expires.setHours(2);
expires.setMinutes(3); |
ÂsÄý¾¹n¨D URL ®É¡A ·|Àˬd¦³¨S¦³ Cookie ²Å¦X¸Ó URL ªººô°ì¦WºÙ
(domain)¡A ¦pªG¦³¬YÓ Cookie ²Å¦X¡A ´N·|Àˬd¥¦ªº¸ô®| path
¬O§_²Å¦X¸Ó URL¡A ¦pªG²Å¦Xªº¸Ü´N·|°e¨ì¦øªA¾¹¡C
¨Ò¤l¡G
domain |
²Å¦Xªº URL ºô°ì |
¤£²Å¦Xªº URL ºô°ì |
xoom.com |
www.xoom.com
members.xoom.com |
www.zoom.com
zoom.com |
members.xoom.com |
members.xoom.com |
www.xoom.com |
·í Cookie ªº domain ²Å¦X URL ªº domain ®É¡A ¤§«á´NÀˬd¬O§_²Å¦X URL
ªº¸ô®|¡A ²Å¦Xªº¸Ü´N·|¶Ç°e¸Ó Cookie¡C
¨Ò¤l¡G
path |
²Å¦Xªº URL ¸ô®| |
¤£²Å¦Xªº URL ¸ô®| |
/ |
ºô°ì¦WºÙ¤º©Ò¦³ªº¸ô®| |
¡@ |
/foo |
/foobar
/foo/bar.html |
¨S¦³¥]§t /foo ¦r¦êªº¸ô®| |
¡@
·í§A·Q§R°£¬YÓ Cookie ®É¡A ¥u¶·¦b³]©w Cookie ®É«ü©w name¡A
¦Ó expires ´N«ü©w¬°¤@Ó¤w¸g¹L¥hªº¤é´Á¡C n»s³y¤@Ó¹L¥hªº¤é´Á¡A
¥u¶·±N getTime() ¶Ç¦^ªº¤é´Á´î¤@¡A ´N¥i¥H½T©w³oÓ¤é´Á¤w¸g¹L¥h¡C
¨Ò¤l¡G §R°£ Cookie js_tut_eg_cookie3.htm
<script>
function setck() {
document.cookie = "myname=Tom"
alert(document.cookie)
}
function delck() {
var expires = new Date();
expires.setTime (expires.getTime() - 1);
document.cookie = "myname=; expires=" + expires.toGMTString()
alert(document.cookie)
}
function cycle() {
window.status = document.cookie
setTimeout("cycle()", 1)
}
cycle()
</script>
<form>
<input type=button value="Set Cookie" onclick="setck()">
<input type=button value="Delete Cookie" onclick="delck()">
</form> |
¡@
Cookie °£¤F¥i³Q¶Ç°e¨ì¦øªA¾¹¡A ÁÙ¥i¥H¥Î JavaScript ¨ÓŪ¨ú¬YÓ Cookie
ªºÈ¡C
¤èªk«Ü²³æ¡A ¬Û«H¤j®a³£ª¾¹D Cookie ªº®æ¦¡¤F¡A º¥ý¨ú±o
document.cookie ¦r¦ê¡A µM«á±q¦r¦ê¤¤§ä¥X§A·QnŪ¨úªº Cookie ¦WºÙ¡A
¦pªG§ä¨ìªº¸Ü¡A ´N¥i¥HŪ¨ú¥¦ªºÈ¡C
¨Ò¤l¡G Àx¦s¡B Ū¨ú©M§R°£
Cookie test_lib_cookie.htm , lib_cookie.js
»¡©ú¡G
- ¶}±Ò¨Ò¤l«á¡A §A¥i¥H¦bºô¶¤¤ Set Cookie ½d³ò¿é¤J Cookie
ªº¦WºÙ©MÈ¡A µM«á«ö "Set Cookie" «ö¶s¡A ³o¼Ë´N³]©w¤F¤@Ó
Cookie¡A §A¤]¥i¥H³]©w¦hÓ Cookie¡A ¦Óª¬ºA¦C·|§Y®É¤Ï¬M document.cookie
ªºÈ¡C
·QŪ¨ú¬YÓ Cookie ªºÈ¡A ¥u¶·¿é¤J¸Ó Cookie ªº¦WºÙ¨ì Get
Cookie ªº Name Äæ¦ì¡A µM«á«ö "Get Cookie Value" «ö¶s¡A ³o®É Value
Äæ¦ì´N·|Åã¥Ü¸Ó Cookie ªºÈ¤F¡C
·Q§R°£¬YÓ Cookie¡A ¤]¥u¶·¿é¤J¸Ó Cookie ªº¦WºÙ¨ì Delete Cookie ªº Name
Äæ¦ì¡A µM«á«ö "Delete Cookie" «ö¶s¡A
¤§«á´N·|µoıª¬ºA¦C¥¢¥h¤F¸Ó Cookie ªººî¼v¡C
- lib_cookie.js
¥¦¬O¤@Ó JavaScript ÀɮסA ¤ºùئ³
3 Ó¨ç¼Æ¡G
lib_cookie.js ¤ºªº¨ç¼Æ |
»¡©ú |
set_cookie(name, value) |
³]©w Cookie¡A ¥¦¬O¤@Ó Robust ¨ç¼Æ¡A §A¥i¥H¥[¤J expires, path, domain,
secure µ¥°Ñ¼Æ¡A ¥H¤U¤¶²Ðªº Cookie Maker ·|À°§A¦Û°Ê»s³y¹ïÀ³ªº°Ñ¼Æ |
get_cookie(name) |
¶Ç¦^ Cookie ªºÈ |
del_cookie(name) |
§R°£ Cookie |
¡@
¬°¤F¤è«K¤j®a³]©w Cookie ¡A ¦³¨Ç±Ð¾Çºô¯¸¼g¤FÓ Cookie Maker¡A
§A¥u¶·¿é¤J Cookie ªº¦³Ãö¸ê®Æ¡A ´N·|¦Û°Ê»s³y¥H¤W¤TÓ¨ç¼Æªº°Ñ¼Æ¡C
¥H¤U¨Ò¤l¬O±q CNET ±o¨Óªº¡A ¤£¹L¦Ñ®v×§ï¤F¬Y¨Ç¦a¤è¡G
¤u¨ã¡G Cookie Maker
cookie_maker.htm
NN 2.0 ªº Cookie ¨î¦p¤U¡G
- ³Ì¦h¥u¥iÀx¦s 300 Ó Cookie
- ¨CÓ Cookie ¤£¥i¥H¤j¹L 4K ¦ì¤¸²Õ¡A ¸Ó Cookie
ªº©Ò¦³Äݩʳ£pºâ¦b¤º¡A ¦pªG¤Óªøªº¸Ü¡A ¸Ó Cookie ´N·|³Q°Åµu
- ¨CÓºô°ì (domain) ³Ì¦h¥u¥i¥HÀx¦s 20 Ó Cookie¡A ¦pªG¦h¥Xªº¸Ü¡A
³Ìªø®É¶¡¨S¦³³Q¦s¨úªº Cookie ´N·|³Q§R°£
[¨ì¶³»]
[º¶]
[³t¬dªí]
|