Skip to content

[TODO] Research compatibility with RFC 6874 and cover it with tests #998

Open
@webknjaz

Description

@webknjaz

Describe the bug

I recently faced missing support for IPv6 URLs with scoped Zone ID suffixes in modern web-browsers. Apparently, they're pointing fingers to each other being unable to decide who should implement/formalize it first (https://ungleich.ch/u/blog/ipv6-link-local-support-in-browsers/).
But there's RFC 6874 that seems to be accepted (although some places on the internet label it as a "proposed standard"). Still, this is something that many libs look up to so we should too. That standard insists on the separator being a URL-encoded %25 (while a point was made for supporting unencoded % for backwards compatibility: urllib3/urllib3#1641 (comment)).

I briefly checked yarl's code and it seems to me that %25 is never supported (strings are partitioned by "%"). There are no test cases that specify the expectations explicitly. We should introduce those and make sure the implementation is consistent with the standard.

To Reproduce

Research needed. I'm just documenting this as a "TODO".

Expected behavior

The behavior should be aligned with urllib3/urllib3#1641 and popular implementations outside the Python ecosystem, like cURL.

Logs/tracebacks

N/A

Python Version

N/A

multidict Version

N/A

yarl Version

N/A

OS

N/A

Additional context

https://datatracker.ietf.org/doc/html/rfc6874

Code of Conduct

  • I agree to follow the aio-libs Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions