Skip to content

http.cookies module does not parse obsolete RFC 850 date format #123401

Closed
@Konano

Description

@Konano

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:

  1. Attempt to parse a cookie with a date in the obsolete RFC 850 format using the http.cookies module.
  2. 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

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    stdlibPython modules in the Lib dirtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions