Clarifying the fundamentals of HTTP

  • Authors:
  • Jeffrey C. Mogul

  • Affiliations:
  • HP Labs, 1501 Page Mill Road, Palo Alto, CA

  • Venue:
  • Software—Practice & Experience - Special issue: Web technologies
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The simplicity of HTTP was a major factor in the success of the Web. However, as both the protocol and its uses have evolved, HTTP has grown complex. This complexity results in numerous problems, including confused implementors, interoperability failures, difficulty in extending the protocol, and a long specification without much documented rationale.Many of the problems with HTTP can be traced to unfortunate choices about fundamental definitions and models. This paper analyzes the current (HTTP/1.1) protocol design, showing how it fails in certain cases, and how to improve these fundamentals. Some problems with HTTP can be fixed simply by adopting new models and terminology, allowing us to think more clearly about implementations and extensions. Other problems require explicit (but compatible) protocol changes.This paper explains that HTTP needs a clean and consistent data-type model, and in particular needs an explicit 'instance' data type; that HTTP needs a clear data access model, and that resources and instances should carry explicit access-model labels; and that HTTP needs a simple name space for implementations to declare sets of supported extensions.