Skip to content
Mark Nottingham edited this page Jul 28, 2016 · 4 revisions

This is list of things that might be interesting to think about in the future regarding HTTP.

General Work

Things that generally need to be done.

  • Clear layering / modularity - esp. relation to transport
  • Web browsing focus? Other use cases? E.g., IoT?
    • Browser Profile for HTTP
    • Other profiles? E.g., IoT, app
  • Energy efficiency
  • Browser APIs

H2Q

A straight mapping of HTTP/2 semantics to QUIC

  • UDP
  • Out of order delivery
  • Path to application / application path metadata?
  • Up-front routing information
  • Mobility (client and server)
  • Taking advantage of multi path
  • 0RT

H2Q Extensions?

  • FEC???!?
  • Unreliable (as a feature)

HTTP/3

A future backwards-incompatible revision to HTTP

  • Semantic backwards compatibility - how much can we break?
  • Firm limits on protocol elements (sizes, etc.)
  • Data-aware header encoding
  • Security / encryption requirements
  • Multiple metadata buckets / labels
  • Push as an extension?
  • Binary encoding of headers w/ data type awareness
  • EXTENDED_SETTINGS

SciFi, Ponies and Rainbows

Things that are attractive, but hard to achieve

  • Taking advantage of multicast
  • Peer-to-peer / distributed HTTP / content-centric networking / NDN
  • Resistance to traffic analysis
  • Built-in onion routing (lite?)
  • Selective encryption
  • Anti-Censorship
  • Cross-Stream compression

HTTP/2 Extensions

HTTP/2-specific extensions

  • Priority improvements / modifications
  • websockets
  • PUSH for pub/sub and store-forward
  • Pushing DNS / certs
  • BLOCKED frame
  • PUSH hints?

HTTP/* Extensions

Generic HTTP extensions that aren't specific to any particular version

  • Blind Caching
  • Conditional-on-hash
  • replacement for content-md5 (use cases?)
  • Multipart-range response media type replacement
  • zero knowledge proof
  • prioritisation hints - visibility, controls
  • partial upload
  • "delayed" requests - how long has been stored/in transit - including error responce semantics
  • High precision timestamps (in caching)