<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jon Schutz Technical Notes and Recommendations &#187; Web Development</title>
	<atom:link href="http://notes.jschutz.net/topics/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://notes.jschutz.net</link>
	<description>Useful snippets technical info and recommendations</description>
	<lastBuildDate>Thu, 24 Jun 2010 07:07:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Multitouch Analytics</title>
		<link>http://notes.jschutz.net/2010/06/multitouch-analytics/</link>
		<comments>http://notes.jschutz.net/2010/06/multitouch-analytics/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 07:07:40 +0000</pubDate>
		<dc:creator>jon</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Website Optimisation]]></category>

		<guid isPermaLink="false">http://notes.jschutz.net/?p=140</guid>
		<description><![CDATA[Building on some of the ideas in the SEOMoz article How To Get Past Last-Touch Attribution With Google Analytics, MultiTouch Analytics offers a way to record and report on all of the marketing channels that contribute to any given sale.  It provides a javascript library to record the touches in a cookie, and a [...]]]></description>
			<content:encoded><![CDATA[<p>Building on some of the ideas in the SEOMoz article <a href="http://www.seomoz.org/blog/how-to-get-past-last-touch-attribution-with-google-analytics">How To Get Past Last-Touch Attribution With Google Analytics</a>, <a href="http://www.multitouchanalytics.com/">MultiTouch Analytics</a> offers a way to record and report on all of the marketing channels that contribute to any given sale.  It provides a javascript library to record the touches in a cookie, and a separate <a href="http://search.cpan.org/~jjschutz/WWW-Analytics-MultiTouch/bin/multitouch_report.pl">reporting package</a> to generate reports that show the contributions to each conversion from all the marketing channels.</p>
]]></content:encoded>
			<wfw:commentRss>http://notes.jschutz.net/2010/06/multitouch-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fishing Swap Meet</title>
		<link>http://notes.jschutz.net/2010/05/fishing-swap-meet/</link>
		<comments>http://notes.jschutz.net/2010/05/fishing-swap-meet/#comments</comments>
		<pubDate>Fri, 07 May 2010 05:05:14 +0000</pubDate>
		<dc:creator>jon</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://notes.jschutz.net/?p=135</guid>
		<description><![CDATA[Recently launched, the Golden Grove Amateur Fishing club Fishing Swap Meet site.
]]></description>
			<content:encoded><![CDATA[<p>Recently launched, the <a href="http://www.fishingswapmeet.info">Golden Grove Amateur Fishing club Fishing Swap Meet</a> site.</p>
]]></content:encoded>
			<wfw:commentRss>http://notes.jschutz.net/2010/05/fishing-swap-meet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSIE Cookies Bite Back!</title>
		<link>http://notes.jschutz.net/2008/02/msie-cookies-bite-back/</link>
		<comments>http://notes.jschutz.net/2008/02/msie-cookies-bite-back/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 11:37:41 +0000</pubDate>
		<dc:creator>jon</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://notes.jschutz.net/16/web-development/msie-cookies-bite-back</guid>
		<description><![CDATA[Here we are in 2008.  We build computers with RAM measured in GB and disk in TB.  I just discovered (the hard way) that Microsoft Internet Explorer can only handle 4096 bytes of cookies for a page in JavaScript.  Total.  Not each.  Total.
Worse, if the cookies on your page exceed [...]]]></description>
			<content:encoded><![CDATA[<p>Here we are in 2008.  We build computers with RAM measured in GB and disk in TB.  I just discovered (the hard way) that Microsoft Internet Explorer can only handle 4096 bytes of cookies for a page in JavaScript.  Total.  Not each.  Total.</p>
<p>Worse, if the cookies on your page exceed this limit and you try to read the cookies using document.cookie, you don&#8217;t just get some of the cookies or a set that is truncated to 4096 bytes; you get NOTHING.</p>
<p>From the Microsoft Knowledge Base:  &#8220;For one domain name, each cookie is limited to 4,096 bytes. This total can exist as one name-value pair of 4 kilobytes (KB) or as up to 20 name-value pairs that total 4 KB. &#8230; If you use the <strong>document.cookie</strong> property to retrieve the cookie on the client side, the <strong>document.cookie</strong> property can retrieve only 4,096 bytes. This byte total can be one name-value pair of 4 KB, or it can be up to 20 name-value pairs that have a total size of 4 KB.&#8221;</p>
<p>Stack that up against RFC 2965, which says:</p>
<pre>   ...general-use

   user agents SHOULD provide each of the following minimum capabilities

   individually, although not necessarily simultaneously:      *  at least 300 cookies

*  at least 4096 bytes per cookie (as measured by the characters

         that comprise the cookie non-terminal in the syntax description

         of the Set-Cookie2 header, and as received in the Set-Cookie2

         header)

*  at least 20 cookies per unique host or domain name

User agents created for specific purposes or for limited-capacity

   devices SHOULD provide at least 20 cookies of 4096 bytes, to ensure

   that the user can interact with a session-based origin server.</pre>
<p>According to the references, this problem applies up to MSIE 6.0, but testing shows it is still a problem in IE 7.</p>
<p>Needless to say, this is only a problem in IE.  Firefox and Safari, although they presumably have some limit, do not suffer the same ridiculously small bound.</p>
<p>Test it yourself; here is a simple <a href="http://notes.jschutz.net/cookie-demo/example.html" target="_blank">cookie limit test page</a> containing a script that sets 10 cookies, each of about 72 bytes, printing document.cookies at each iteration.  On first visit, the cookies disappear at iteration 6, and on subsequent visits at iteration 1 (until you clear cookies or close your browser).</p>
<p>I wonder how many shopping carts this has broken.</p>
<p>References:</p>
<ul>
<li><a href="http://support.microsoft.com/kb/306070">Number and size limits of a cookie in Internet Explorer</a></li>
<li><a href="http://support.microsoft.com/kb/820536/">Document.Cookie Property Returns an Empty String</a></li>
<li><a href="http://www.ietf.org/rfc/rfc2965.txt">RFC 2965 HTTP State Management Mechanism</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://notes.jschutz.net/2008/02/msie-cookies-bite-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
