Re: [PHP4BETA] Y2K
| From: | Rasmus Lerdorf | Date: | Thu, 01 Jan 1970 00:00:00 +0000 |
| Subject: | Re: [PHP4BETA] Y2K | ||
| References: | 1 | Groups: | php.version4 |
| Request: | Send a blank email to php-version4+get-2079@lists.php.net to get a copy of this message | ||
> Was that 70 standard official? Are browsers required to support it?
Nothing about Netscape's cookie spec was ever made standard. It is
mentioned in RFC 2109 section 10.1.2. There they show the 2-digit version
that was in Netscape's original cookie spec. To this day, Netscape's spec
is vague. http://www.netscape.com/newsref/std/cookie_spec.html
shows a 4-digit year in the spec, but then they give this as an example:
Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-Nov-99 23:12:40 GMT
at the bottom of the page. This must have been pointed out to them a
million times over the years.
They also reference RFC822 in the Netscape spec and RFC822 uses 2-digit
years.
> We should try to find out what browsers don't support 4-digit years.
Alternatively since we know they all support 2-digit years and nobody is
likely to write a browser any time soon that isn't backward compatible,
flipping that switch by default is a bad idea. But I agree, it would be
nice to have a definitive list.
There is a edge-condition problem as well. All versions of Netscape
consider "70" to mean 1970 and all version of IE consider "70" to be
2070. They both seem to agree that "69" is 2069, however. There is
another edge-condition problem using an hour string of "24". IE gets
creative and turns that into year 12577. NS gets it right and treat "24"
like a "00".
The 1970/2070 problem would be solved by going to 4-digit years. So it
would be a good idea to do. I just don't have a good handle on how many
old browsers this would affect and I doubt the year "70" issue has bitten
too many people.
-Rasmus