Closed
Description
Bug report
Bug description:
Description: According to RFC 9110, a recipient that parses a timestamp value in an HTTP field MUST accept all three HTTP-date formats. This includes the obsolete RFC 850 format, e.g., Sunday, 06-Nov-94 08:49:37 GMT
. However, the Python standard library module http.cookies
currently fails to parse this format, which leads to the cookie being discarded entirely.
Steps to Reproduce:
- Attempt to parse a cookie with a date in the obsolete RFC 850 format using the
http.cookies
module. - Observe that the module fails to parse the date, resulting in the cookie being discarded.
Code Example:
import http.cookies
cookie_string = 'example=value; expires=Sunday, 06-Nov-94 08:49:37 GMT'
cookie = http.cookies.SimpleCookie()
cookie.load(cookie_string)
# The expected behavior is that the cookie's expiration date is correctly parsed.
# However, the module fails to parse the date in the obsolete RFC 850 format,
# resulting in the cookie being discarded.
print(cookie['example'].get('expires'))
Expected Behavior:
The http.cookies
module should correctly parse the obsolete RFC 850 date format and retain the cookie.
Actual Behavior:
The module fails to parse the date, resulting in a KeyError
and the cookie being discarded.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux