Skip to content
Willy Tarreau edited this page Sep 17, 2015 · 2 revisions

HTTP Ideas

HTTP/3

  • Transport

    • Path to application / application path metadata
    • FEC
    • UDP
    • Taking advantage of multipath
    • Out of order delivery
    • Unreliable (as a feature)
    • Taking advantage of multicast
    • Peer-to-peer / distributed HTTP / content-centric networking / NDN
    • Mobility
  • Up-front routing information

    point here is to make it possible for so called "http routers" (mostly load balancers and possibly caches) not to have to decipher TLS just to get the information needed to take a routing decision. Among these elements we could have a short hash of the URL and a short server identifier

  • Web browsing focus? Other use cases? E.g., IoT?

    • Browser Profile for HTTP
    • Other profiles? E.g., IoT, app
  • Multiple metadata buckets / labels

  • Data-aware header encoding

  • Firm limits on protocol elements (sizes, etc.)

    Discussions have long shown there's no one-size-fits-all, but having no limits on most protocol elements is even harder to deal with in many implementations than agreed-on hard-limits and creates more interoperability issues (eg: header length implied by large cookies). Specifically we should define which parts should be negociable and which ones fixed.

  • Energy efficiency

    may imply to consider profiles (cf above). Eg: no TLS, different compression for CPU efficiency, different compression for radio efficiency, and so on

  • Clear layering / modularity - esp. relation to transport

  • Semantic backwards compatibility - how much can we break?

    this is of particular importance for protocol gateways (eg: H/3 to H/1)

  • Security / encryption requirements

  • Resistance to traffic analysis

  • Built-in onion routing (lite?)

  • Notification / store-and-forward / pub/sub

  • Selective encryption

  • DoS resistance

HTTP/2 over TCP/TLS

  • Explore large latency optimisation
  • Recommended standards / usage for H2 over TCP
    • IW
    • TFO (including impact on specs/apps/apis)
    • Congestion control algorithms
    • Pacing
  • Connection timeout improvements
  • Congestion control tweaks for fairness relative to h1
  • Dynamic TLS record sizes
  • Explore / advise on use of multiple connections
  • Connection coalescing
  • Path to application / application to path?

HTTP/2 Extensions

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

HTTP/* Extensions

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

Other

  • Health check convention / practices
  • New DNS records - available protocols, etc.)
Clone this wiki locally