A new draft is underway for HTTP, that has a good chance of becoming an RFC. The draft is titled “Structured Headers for HTTP” and defines a standard way to:
- Encode a list of items in HTTP headers
- Encode a dictionary (hash, map, associative array depending on where you’re from).
- Encode a ‘parameterized list’. For example:
X-Header: item1; param1=value1; param2=value2, item2
The idea is that these types of structures are used quite a bit in both standards and custom extensions, so it makes a lot of sense to define a standard reusable way instead of reinventing this wheel for literally every new header.
Items in these data structures can contain things like:
- binary data
Another promise of this draft, is that one day these might be encoded in the protocol as some kind of binary structure, although in both HTTP/1.1 and HTTP/2 they are just encoded as text.
The library will be marked as ‘1.0.0’ as soon as the draft is released as an RFC. Until then BC breaking changes might happen as the spec evolves.