/usr/share/doc/racket/net/cookie.html is in racket-doc 6.1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>21 Cookie: HTTP Client Storage</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_0");">▼</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">Net:<span class="mywbr"> </span> Networking Libraries</a></td></tr></table></div><div class="tocviewsublisttop" style="display: block;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1 </td><td><a href="http-client.html" class="tocviewlink" data-pltdoc="x">HTTP Client</a></td></tr><tr><td align="right">2 </td><td><a href="url.html" class="tocviewlink" data-pltdoc="x">URLs and HTTP</a></td></tr><tr><td align="right">3 </td><td><a href="uri-codec.html" class="tocviewlink" data-pltdoc="x">URI Codec:<span class="mywbr"> </span> Encoding and Decoding URIs</a></td></tr><tr><td align="right">4 </td><td><a href="websocket.html" class="tocviewlink" data-pltdoc="x">Web<span class="mywbr"> </span>Socket</a></td></tr><tr><td align="right">5 </td><td><a href="ftp.html" class="tocviewlink" data-pltdoc="x">FTP:<span class="mywbr"> </span> Client</a></td></tr><tr><td align="right">6 </td><td><a href="sendurl.html" class="tocviewlink" data-pltdoc="x">Send URL:<span class="mywbr"> </span> Opening a Web Browser</a></td></tr><tr><td align="right">7 </td><td><a href="smtp.html" class="tocviewlink" data-pltdoc="x">SMTP:<span class="mywbr"> </span> Sending E-<wbr></wbr>Mail</a></td></tr><tr><td align="right">8 </td><td><a href="sendmail.html" class="tocviewlink" data-pltdoc="x"><span class="stt">sendmail</span>:<span class="mywbr"> </span> Sending E-<wbr></wbr>Mail</a></td></tr><tr><td align="right">9 </td><td><a href="head.html" class="tocviewlink" data-pltdoc="x">Headers:<span class="mywbr"> </span> Parsing and Constructing</a></td></tr><tr><td align="right">10 </td><td><a href="imap.html" class="tocviewlink" data-pltdoc="x">IMAP:<span class="mywbr"> </span> Reading Mail</a></td></tr><tr><td align="right">11 </td><td><a href="pop3.html" class="tocviewlink" data-pltdoc="x">POP3:<span class="mywbr"> </span> Reading Mail</a></td></tr><tr><td align="right">12 </td><td><a href="mime.html" class="tocviewlink" data-pltdoc="x">MIME:<span class="mywbr"> </span> Decoding Internet Data</a></td></tr><tr><td align="right">13 </td><td><a href="base64.html" class="tocviewlink" data-pltdoc="x">Base 64:<span class="mywbr"> </span> Encoding and Decoding</a></td></tr><tr><td align="right">14 </td><td><a href="qp.html" class="tocviewlink" data-pltdoc="x">Quoted-<wbr></wbr>Printable:<span class="mywbr"> </span> Encoding and Decoding</a></td></tr><tr><td align="right">15 </td><td><a href="dns.html" class="tocviewlink" data-pltdoc="x">DNS:<span class="mywbr"> </span> Domain Name Service Queries</a></td></tr><tr><td align="right">16 </td><td><a href="nntp.html" class="tocviewlink" data-pltdoc="x">NNTP:<span class="mywbr"> </span> Newsgroup Protocol</a></td></tr><tr><td align="right">17 </td><td><a href="tcp.html" class="tocviewlink" data-pltdoc="x">TCP:<span class="mywbr"> </span> Unit and Signature</a></td></tr><tr><td align="right">18 </td><td><a href="tcp-redirect.html" class="tocviewlink" data-pltdoc="x">TCP Redirect:<span class="mywbr"> </span> <span class="RktSym"><span class="RktStxLink">tcp^</span></span> via Channels</a></td></tr><tr><td align="right">19 </td><td><a href="ssl-tcp-unit.html" class="tocviewlink" data-pltdoc="x">SSL Unit:<span class="mywbr"> </span> <span class="RktSym"><span class="RktStxLink">tcp^</span></span> via SSL</a></td></tr><tr><td align="right">20 </td><td><a href="cgi.html" class="tocviewlink" data-pltdoc="x">CGI Scripts</a></td></tr><tr><td align="right">21 </td><td><a href="" class="tocviewselflink" data-pltdoc="x">Cookie:<span class="mywbr"> </span> HTTP Client Storage</a></td></tr><tr><td align="right"></td><td><a href="doc-bibliography.html" class="tocviewlink" data-pltdoc="x">Bibliography</a></td></tr><tr><td align="right"></td><td><a href="doc-index.html" class="tocviewlink" data-pltdoc="x">Index</a></td></tr></table></div></div><div class="tocviewlist"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_1");">►</a></td><td>21 </td><td><a href="" class="tocviewselflink" data-pltdoc="x">Cookie:<span class="mywbr"> </span> HTTP Client Storage</a></td></tr></table><div class="tocviewsublistbottom" style="display: none;" id="tocview_1"><table cellspacing="0" cellpadding="0"><tr><td align="right">21.1 </td><td><a href="#%28part._cookie-procs%29" class="tocviewlink" data-pltdoc="x">Functions</a></td></tr><tr><td align="right">21.2 </td><td><a href="#%28part._cookie-examples%29" class="tocviewlink" data-pltdoc="x">Examples</a></td></tr><tr><td align="right">21.3 </td><td><a href="#%28part._.Cookie_.Unit%29" class="tocviewlink" data-pltdoc="x">Cookie Unit</a></td></tr><tr><td align="right">21.4 </td><td><a href="#%28part._.Cookie_.Signature%29" class="tocviewlink" data-pltdoc="x">Cookie Signature</a></td></tr></table></div></div></div><div class="tocsub"><div class="tocsubtitle">On this page:</div><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber">21.1<tt> </tt></span><a href="#%28part._cookie-procs%29" class="tocsubseclink" data-pltdoc="x">Functions</a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._valid-domain~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">valid-<wbr></wbr>domain?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-name~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie-<wbr></wbr>name?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-value~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie-<wbr></wbr>value?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._set-cookie%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">set-<wbr></wbr>cookie</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-comment%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie:<span class="mywbr"> </span>add-<wbr></wbr>comment</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-domain%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie:<span class="mywbr"> </span>add-<wbr></wbr>domain</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-max-age%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie:<span class="mywbr"> </span>add-<wbr></wbr>max-<wbr></wbr>age</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-path%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie:<span class="mywbr"> </span>add-<wbr></wbr>path</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-expires%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie:<span class="mywbr"> </span>add-<wbr></wbr>expires</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3asecure%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie:<span class="mywbr"> </span>secure</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aversion%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie:<span class="mywbr"> </span>version</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._print-cookie%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">print-<wbr></wbr>cookie</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get-<wbr></wbr>cookie</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%2Fsingle%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get-<wbr></wbr>cookie/<span class="mywbr"> </span>single</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-error%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie-<wbr></wbr>error</span></span></a></td></tr><tr><td><span class="tocsublinknumber">21.2<tt> </tt></span><a href="#%28part._cookie-examples%29" class="tocsubseclink" data-pltdoc="x">Examples</a></td></tr><tr><td><span class="tocsublinknumber">21.2.1<tt> </tt></span><a href="#%28part._.Creating_a_cookie%29" class="tocsubseclink" data-pltdoc="x">Creating a cookie</a></td></tr><tr><td><span class="tocsublinknumber">21.2.2<tt> </tt></span><a href="#%28part._.Parsing_a_cookie%29" class="tocsubseclink" data-pltdoc="x">Parsing a cookie</a></td></tr><tr><td><span class="tocsublinknumber">21.3<tt> </tt></span><a href="#%28part._.Cookie_.Unit%29" class="tocsubseclink" data-pltdoc="x">Cookie Unit</a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Fcookie-unit..rkt%29._cookie~40%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cookie@</span></span></a></td></tr><tr><td><span class="tocsublinknumber">21.4<tt> </tt></span><a href="#%28part._.Cookie_.Signature%29" class="tocsubseclink" data-pltdoc="x">Cookie Signature</a></td></tr><tr><td><a href="#%28form._%28%28lib._net%2Fcookie-sig..rkt%29._cookie~5e%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">cookie^</span></span></a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, "6.1", "../");" onfocus="this.style.color="black"; this.style.textAlign="left"; if (this.value == "...search manuals...") this.value="";" onblur="if (this.value.match(/^ *$/)) { this.style.color="#888"; this.style.textAlign="center"; this.value="...search manuals..."; }"/></form> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.1");">top</a></span><span class="navright"> <a href="cgi.html" title="backward to "20 CGI Scripts"" data-pltdoc="x">← prev</a> <a href="index.html" title="up to "Net: Networking Libraries"" data-pltdoc="x">up</a> <a href="doc-bibliography.html" title="forward to "Bibliography"" data-pltdoc="x">next →</a></span> </div><h3 x-source-module="(lib "net/scribblings/net.scrbl")" x-part-tag=""cookie"">21<tt> </tt><a name="(part._cookie)"></a><a name="(mod-path._net/cookie)"></a>Cookie: HTTP Client Storage</h3><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/cookie</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">net-lib</span></span></td></tr></table></div><div class="SIntrapara">The <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/cookie</span></a> library provides
utilities for using cookies as specified in RFC 2109 [<a href="doc-bibliography.html#%28cite._.R.F.C2109%29" data-pltdoc="x">RFC2109</a>].</div></p><h4 x-source-module="(lib "net/scribblings/net.scrbl")" x-part-tag=""cookie-procs"">21.1<tt> </tt><a name="(part._cookie-procs)"></a>Functions</h4><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._cookie~3f))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie?</a></span></span><span class="hspace"> </span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> represents a cookie, <span class="RktVal">#f</span>
otherwise.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._valid-domain~3f))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._valid-domain~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">valid-domain?</a></span></span><span class="hspace"> </span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> represents a valid domain,
<span class="RktVal">#f</span> otherwise.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._cookie-name~3f))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-name~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie-name?</a></span></span><span class="hspace"> </span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> is a valid cookie name string,
<span class="RktVal">#f</span> otherwise.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._cookie-value~3f))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-value~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie-value?</a></span></span><span class="hspace"> </span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> is a valid cookie value string,
<span class="RktVal">#f</span> otherwise.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._set-cookie))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._set-cookie%29%29" class="RktValDef RktValLink" data-pltdoc="x">set-cookie</a></span></span><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span><span class="RktVar">value</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-name~3f%29%29" class="RktValLink" data-pltdoc="x">cookie-name?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">value</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-value~3f%29%29" class="RktValLink" data-pltdoc="x">cookie-value?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Creates a new cookie, with default values for required fields.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._cookie~3aadd-comment))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-comment%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie:add-comment</a></span></span><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span><span class="RktVar">comment</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comment</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Modifies <span class="RktVar">cookie</span> with a comment, and also returns
<span class="RktVar">cookie</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._cookie~3aadd-domain))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-domain%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie:add-domain</a></span></span><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span><span class="RktVar">domain</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">domain</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._valid-domain~3f%29%29" class="RktValLink" data-pltdoc="x">valid-domain?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Modifies <span class="RktVar">cookie</span> with a domain, and also returns
<span class="RktVar">cookie</span>. The <span class="RktVar">domain</span> must match a prefix of the
request URI.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._cookie~3aadd-max-age))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-max-age%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie:add-max-age</a></span></span><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span><span class="RktVar">seconds</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">seconds</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Modifies <span class="RktVar">cookie</span> with a maximum age, and also returns
<span class="RktVar">cookie</span>. The <span class="RktVar">seconds</span> argument is number of seconds
that a client should retain the cookie.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._cookie~3aadd-path))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-path%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie:add-path</a></span></span><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span><span class="RktVar">path</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">valid-path?</span></td></tr></table></blockquote></div><div class="SIntrapara">Modifies <span class="RktVar">cookie</span> with a path, and also returns
<span class="RktVar">cookie</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._cookie~3aadd-expires))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-expires%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie:add-expires</a></span></span><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span><span class="RktVar">path</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">string</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Modifies <span class="RktVar">cookie</span> with an expiration, and also returns
<span class="RktVar">cookie</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._cookie~3asecure))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3asecure%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie:secure</a></span></span><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span><span class="RktVar">secure</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">secure</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Modifies <span class="RktVar">cookie</span> with a security flag, and also returns
<span class="RktVar">cookie</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._cookie~3aversion))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aversion%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie:version</a></span></span><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span><span class="RktVar">version</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">version</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Modifies <span class="RktVar">cookie</span> with a version, and also returns
<span class="RktVar">cookie</span>. The default is the only known incarnation of HTTP
cookies: <span class="RktVal">1</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._print-cookie))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._print-cookie%29%29" class="RktValDef RktValLink" data-pltdoc="x">print-cookie</a></span></span><span class="hspace"> </span><span class="RktVar">cookie</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cookie</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3f%29%29" class="RktValLink" data-pltdoc="x">cookie?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Prints <span class="RktVar">cookie</span> to a string. Empty fields do not appear in the
output except when there is a required default.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._get-cookie))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%29%29" class="RktValDef RktValLink" data-pltdoc="x">get-cookie</a></span></span><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span><span class="RktVar">cookies</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-value~3f%29%29" class="RktValLink" data-pltdoc="x">cookie-value?</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-name~3f%29%29" class="RktValLink" data-pltdoc="x">cookie-name?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cookies</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a list with all the values (strings) associated with <span class="RktVar">name</span>.</div></p><p>The method used to obtain the <span class="RktVal">"Cookie"</span> header depends on the
web server. It may be an environment variable (CGI), or you may have
to read it from the input port (FastCGI), or maybe it comes in an
initial-request structure, etc. The <span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%29%29" class="RktValLink" data-pltdoc="x">get-cookie</a></span> and
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%2Fsingle%29%29" class="RktValLink" data-pltdoc="x">get-cookie/single</a></span> procedure can be used to extract fields
from a <span class="RktVal">"Cookie"</span> field value.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/cookie..rkt)._get-cookie/single))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%2Fsingle%29%29" class="RktValDef RktValLink" data-pltdoc="x">get-cookie/single</a></span></span><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span><span class="RktVar">cookies</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-value~3f%29%29" class="RktValLink" data-pltdoc="x">cookie-value?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-name~3f%29%29" class="RktValLink" data-pltdoc="x">cookie-name?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">cookies</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%29%29" class="RktValLink" data-pltdoc="x">get-cookie</a></span>, but returns the just first value string
associated to <span class="RktVar">name</span>, or #f if no association is found.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._net/cookie..rkt)._make-cookie-error))"></a><a name="(def._((lib._net/cookie..rkt)._cookie-error~3f))"></a><a name="(def._((lib._net/cookie..rkt)._struct~3acookie-error))"></a><a name="(def._((lib._net/cookie..rkt)._cookie-error))"></a><span title="Provided from: net/cookie | Package: net-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie-error</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=exns.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._exn%7E3afail%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exn:fail</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._make-cookie-error%29%29" class="RktValLink" data-pltdoc="x">make-cookie-error</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for errors when handling cookies.</div></p><h4 x-source-module="(lib "net/scribblings/net.scrbl")" x-part-tag=""cookie-examples"">21.2<tt> </tt><a name="(part._cookie-examples)"></a>Examples</h4><h5 x-source-module="(lib "net/scribblings/net.scrbl")" x-part-tag=""Creating_a_cookie"">21.2.1<tt> </tt><a name="(part._.Creating_a_cookie)"></a>Creating a cookie</h5><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=let.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._let%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">let</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym">c</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-max-age%29%29" class="RktValLink" data-pltdoc="x">cookie:add-max-age</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._cookie~3aadd-path%29%29" class="RktValLink" data-pltdoc="x">cookie:add-path</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._set-cookie%29%29" class="RktValLink" data-pltdoc="x">set-cookie</a></span><span class="hspace"> </span><span class="RktVal">"foo"</span><span class="hspace"> </span><span class="RktVal">"bar"</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">"/servlets"</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">3600</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._print-cookie%29%29" class="RktValLink" data-pltdoc="x">print-cookie</a></span><span class="hspace"> </span><span class="RktSym">c</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote><p>Produces</p><blockquote class="SCodeFlow"><p><span class="RktRes">"foo=bar; Max-Age=3600; Path=/servlets; Version=1"</span></p></blockquote><p>To use this output in a “regular” CGI, instead of the last line use:</p><blockquote class="SCodeFlow"><p><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Writing.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._display%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">display</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Writing.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._format%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">format</a></span><span class="hspace"> </span><span class="RktVal">"Set-Cookie: ~a"</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._print-cookie%29%29" class="RktValLink" data-pltdoc="x">print-cookie</a></span><span class="hspace"> </span><span class="RktSym">c</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></p></blockquote><p>and to use with the PLT Web Server, use:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym">make-response/full</span><span class="hspace"> </span><span class="RktSym">code</span><span class="hspace"> </span><span class="RktSym">message</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=time.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-seconds%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">current-seconds</a></span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">mime</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">make-header</span><span class="hspace"> </span><span class="RktVal">#"Set-Cookie"</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string-%7E3ebytes%252Futf-8%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">string->bytes/utf-8</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._print-cookie%29%29" class="RktValLink" data-pltdoc="x">print-cookie</a></span><span class="hspace"> </span><span class="RktSym">c</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">body</span><span class="RktPn">)</span></td></tr></table></blockquote><h5 x-source-module="(lib "net/scribblings/net.scrbl")" x-part-tag=""Parsing_a_cookie"">21.2.2<tt> </tt><a name="(part._.Parsing_a_cookie)"></a>Parsing a cookie</h5><p>Imagine your Cookie header looks like this:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">cookies</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">"test2=2; test3=3; xfcTheme=theme6; xfcTheme=theme2"</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td></td></tr></table></td></tr></table></blockquote><p>Then, to get the values of the xfcTheme cookie, use</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%29%29" class="RktValLink" data-pltdoc="x">get-cookie</a></span><span class="hspace"> </span><span class="RktVal">"xfcTheme"</span><span class="hspace"> </span><span class="RktSym">cookies</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'("theme6" "theme2")</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%2Fsingle%29%29" class="RktValLink" data-pltdoc="x">get-cookie/single</a></span><span class="hspace"> </span><span class="RktVal">"xfcTheme"</span><span class="hspace"> </span><span class="RktSym">cookies</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">"theme6"</span></p></td></tr></table></blockquote><p>If you try to get a cookie that simply is not there:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%2Fsingle%29%29" class="RktValLink" data-pltdoc="x">get-cookie/single</a></span><span class="hspace"> </span><span class="RktVal">"foo"</span><span class="hspace"> </span><span class="RktSym">cookies</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie..rkt%29._get-cookie%29%29" class="RktValLink" data-pltdoc="x">get-cookie</a></span><span class="hspace"> </span><span class="RktVal">"foo"</span><span class="hspace"> </span><span class="RktSym">cookies</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'()</span></p></td></tr></table></blockquote><p>Note that not having a cookie is normally not an error. Most clients
won’t have a cookie set then first arrive at your site.</p><h4 x-source-module="(lib "net/scribblings/net.scrbl")" x-part-tag=""Cookie_Unit"">21.3<tt> </tt><a name="(part._.Cookie_.Unit)"></a><a name="(mod-path._net/cookie-unit)"></a>Cookie Unit</h4><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie-unit..rkt%29._cookie~40%29%29" class="RktValLink" data-pltdoc="x">cookie@</a></span> and <span class="RktSym"><a href="#%28form._%28%28lib._net%2Fcookie-sig..rkt%29._cookie~5e%29%29" class="RktStxLink" data-pltdoc="x">cookie^</a></span> are deprecated.
They exist for backward-compatibility and will likely be removed in
the future. New code should use the <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/cookie</span></a> module.</p></blockquote></blockquote></blockquote><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._net%2Fcookie-unit%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/cookie-unit</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">compatibility-lib</span></span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._net/cookie-unit..rkt)._cookie~40))"></a><span title="Provided from: net/cookie-unit | Package: compatibility-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Fcookie-unit..rkt%29._cookie~40%29%29" class="RktValDef RktValLink" data-pltdoc="x">cookie@</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">unit?</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Imports nothing, exports <span class="RktSym"><a href="#%28form._%28%28lib._net%2Fcookie-sig..rkt%29._cookie~5e%29%29" class="RktStxLink" data-pltdoc="x">cookie^</a></span>.</div></p><h4 x-source-module="(lib "net/scribblings/net.scrbl")" x-part-tag=""Cookie_Signature"">21.4<tt> </tt><a name="(part._.Cookie_.Signature)"></a><a name="(mod-path._net/cookie-sig)"></a>Cookie Signature</h4><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._net%2Fcookie-sig%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/cookie-sig</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">compatibility-lib</span></span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>signature</p></div></div><p class="RForeground"><a name="(form._((lib._net/cookie-sig..rkt)._cookie~5e))"></a><span title="Provided from: net/cookie-sig | Package: compatibility-lib"><span class="RktSym"><a href="#%28form._%28%28lib._net%2Fcookie-sig..rkt%29._cookie~5e%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">cookie^</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span>signature</p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara"><blockquote class="leftindent"></blockquote></div></p><p>Includes everything exported by the <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/cookie</span></a> module.</p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, "6.1", "../");" onfocus="this.style.color="black"; this.style.textAlign="left"; if (this.value == "...search manuals...") this.value="";" onblur="if (this.value.match(/^ *$/)) { this.style.color="#888"; this.style.textAlign="center"; this.value="...search manuals..."; }"/></form> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.1");">top</a></span><span class="navright"> <a href="cgi.html" title="backward to "20 CGI Scripts"" data-pltdoc="x">← prev</a> <a href="index.html" title="up to "Net: Networking Libraries"" data-pltdoc="x">up</a> <a href="doc-bibliography.html" title="forward to "Bibliography"" data-pltdoc="x">next →</a></span> </div></div></div><div id="contextindicator"> </div></body></html>
|