A HTTP structured-header parser for Javascript

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:

  • strings
  • integers
  • floats
  • 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.

Anyway, I wrote a small javascript library to parse these strings. You can find it here:

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.