Hypertext Transfer Protocol (HTTP)

Information Systems and the World Wide Web

International School of New Media
University of Lübeck

Erik Wilde, UC Berkeley School of Information
2007-01-02
Creative Commons License

This work is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 2.5 License.

Abstract

The Hypertext Transfer Protocol (HTTP) is the protocol which transports Web contents. It is based on the Internet's reliable transport protocol, the Transmission Control Protocol (TCP). HTTP is more than a simple file retrieval protocol, it provides content negotiation and other features which turn the Web into a flexible and scalable information system. The other basic infrastructure building block of the Web is the Domain Name System (DNS), which provides a naming system for the number-oriented addressing scheme of the Internet protocols.

Outline (Foundations)

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

Network History

Networks vs. Internetworks

Outline (Networking Protocols)

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

Internet vs. ISO/OSI

Internet

Internet Principles

Be liberal in what you accept, and conservative in what you send.

Jon Postel, RFC 1122

Whenever possible, communications protocol operations should be defined to occur at the end-points of a communications system, or as close as possible to the resource being controlled.

J. Saltzer, D. Reed, D. Clark, End-to-end Arguments in System Design

ISO/OSI (Open Systems Interconnection)

OSI vs. Internet

Internet Protocols

Outline (Internet Protocol (IP))

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

IP Features

IP Addresses

IP Address Classes

Outline (Transmission Control Protocol (TCP))

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

TCP Features

Reliable Connections

TCP Window

Outline (Domain Name System (DNS))

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

Naming vs. Addressing

DNS Properties

Names Matter

Domain Name Space

Using DNS

DNS Request Processing

Outline (Other Internet Protocols)

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

User Datagram Protocol (UDP)

Outline (Hypertext Transfer Protocol (HTTP))

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

The Web's Protocol

DNS & HTTP

The two basic protocols which every Web browser must implement are DNS access and HTTP. However, most operating systems provide an API for DNS access, so the browser can use this service locally and only has to implement HTTP. TCP (which is required as the foundation for HTTP) is usually provided by the operating system.

Outline (HTTP Basics)

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

HTTP Messages

start-line
message-header *

message-body ?

HTTP Header Fields

HTTP Requests

Method Request-URI HTTP/Major.Minor
[Header]*

[Entity]?

HTTP GET

GET / HTTP/1.1
Host: ischool.berkeley.edu

HTTP Responses

HTTP/Major.Minor Status-Code Text
[Header]*

[Entity]?

HTTP Performance

HTTP Connection Handling

Outline (Content Negotiation)

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

What is Content Negotiation?

Three Different Variants

Server-Side Content Negotiation

Outline (HTTP in Practice)

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

Outline (HTTP over SSL (HTTPS))

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

HTTP and Security

HTTP and SSL

Outline (Proxies)

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

Proxies

Browsers & Proxies

A proxy is configured in the browser (manually or automatically), so that the browser sends all requests to the proxy instead of the target Web server. The proxy then forwards the request. Proxies can be chained, so that the requests and responses travel through a number of HTTP systems.

Firewalls

Outline (Conclusions)

  1. Foundations [21]
    1. Networking Protocols [6]
    2. Internet Protocol (IP) [3]
    3. Transmission Control Protocol (TCP) [3]
    4. Domain Name System (DNS) [6]
    5. Other Internet Protocols [1]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

Web Server Service