You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Radu Coravu (JIRA)" <ji...@apache.org> on 2016/05/30 05:28:12 UTC

[jira] [Comment Edited] (HTTPCLIENT-923) NetscapeDraftSpec is too strict about cookie expires date format

    [ https://issues.apache.org/jira/browse/HTTPCLIENT-923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15306239#comment-15306239 ] 

Radu Coravu edited comment on HTTPCLIENT-923 at 5/30/16 5:27 AM:
-----------------------------------------------------------------

This issue claims that this pattern is valid for cookies:

{code}
DD-Mon-YYYY HH:MM:SS GMT
{code}
but wikipedia seems to return this pattern:
{code}
Tue, 28 Jun 2016 12:00:00 GMT
{code}

which does not seem to be accepted.
Looking at the pattern for the expiry value:

https://en.wikipedia.org/wiki/HTTP_cookie#Expires_and_Max-Age

it seems to be something like:

Wdy, DD Mon YYYY HH:MM:SS GMT

So I think I was right adding a comment on this particular issue.


was (Author: radu_coravu):
This issue claims that this pattern is valid for cookies:

{code}
DD-Mon-YYYY HH:MM:SS GMT
{code}
but wikipedia seems to return this pattern:
{code}
28 Jun 2016 12:00:00 GMT
{code}

which does not seem to be accepted.
So I think I was right adding a comment on this particular issue.

> NetscapeDraftSpec is too strict about cookie expires date format
> ----------------------------------------------------------------
>
>                 Key: HTTPCLIENT-923
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-923
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient
>    Affects Versions: 4.0.1
>            Reporter: Jörgen Rydenius
>            Priority: Minor
>              Labels: cookie, expires, jetty
>             Fix For: 4.1 Alpha2
>
>
> The Netscape Draft specification (http://curl.haxx.se/rfc/cookie_spec.html) specifies clearly that the date format for Set-Cookie expires is "Wdy, DD-Mon-YYYY HH:MM:SS GMT". But on the other hand, in the examples section of the same document, the only example header that contains "Expires" is the following:
> Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-Nov-99 23:12:40 GMT
> Note that the weekday is fully spelled out and that the year is written as two digits only. I would say that the specification therefore makes the 2 or 4 digit year optional. I think NetscapeDraftSpec should reflect this. An example of a product that uses the 2 digit version is jetty 6 and 7. When using httpclient 4 talking to a jetty server, any Set-Cookie headers for persistent cookies will be interpreted as a 4 digit year in the date and the cookie will immediately be disregarded as expired by some 2,000 years or so. Httpclient 3 on the other hand had no problem understanding the persistent cookies from jetty. I filed a bug report https://bugs.eclipse.org/bugs/show_bug.cgi?id=304698 on jetty to change their date format, but on the other hand I also think httpclient 4 is too strict about the date format when even the original specification uses two alternatives.
> Workaround is easy by setting CookieSpecPNames.DATE_PATTERNS, but I really think that projects like jetty and httpclient should be compatible by default. Also, since the date format used by jetty is parsable but misinterpreted and disregarded by httpclient makes it especially hard to detect the first time on encounters the problem.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org