Skip to content

Accept Encoding has different semantics than HTTP standard #319

@Zaczero

Description

@Zaczero

connectrpc/connect-python#96

Today I learned, that connectrpc uses the standard Accept-Encoding header in a non-standard way: ordered list. This causes inefficiencies with existing software, like Google Chrome, that for historical compatibility reasons start with "gzip, deflate" even though zstd is clearly more optimal for dynamic responses like in the connectrpc case. Accept-Encoding like "gzip, deflate, br, zstd" means that the server should pick whatever algorithm without client preference. Changing the standard semantics seems like the wrong way to go about it. I believe the connectrpc should either properly handle the q= value semantics or use a new header to not conflict with existing software. Otherwise I end up in a situation where I create a service that is accessible via HTTP and most browser users have higher response latency and bigger response size for no real reason.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions