HTTP/1.0, 1.1 and Beyond, An Evolutionary Perspective on HTTP

Slides:



Advertisements
Similar presentations
Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
Advertisements

TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
The Application Layer Chapter 7. Electronic Mail Architecture and Services The User Agent Message Formats Message Transfer Final Delivery.
Chapter 2: Application Layer
Introduction to Management Information Systems Chapter 5 Data Communications and Internet Technology HTM 304 Fall 07.
From Extensibility to Evolvability Once upon a time, HTTP was simple – what happened?
1 The HyperText Transfer Protocol: HTTP Nick Smith Stuart Alley Tara Tjaden.
Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP  FTP  SMTP / POP3 / IMAP  Focus on client-server.
1 The World Wide Web. 2  Web Fundamentals  Pages are defined by the Hypertext Markup Language (HTML) and contain text, graphics, audio, video and software.
SMUCSE 4344 application layer. SMUCSE 4344 application vs. application-layer protocols application-layer protocol is just one piece –how the end hosts.
Presentation on Osi & TCP/IP MODEL
1 Computer Communication & Networks Lecture 28 Application Layer: HTTP & WWW p Waleed Ejaz
Sistem Jaringan dan Komunikasi Data #9. DNS The Internet Directory Service  the Domain Name Service (DNS) provides mapping between host name & IP address.
Chapter 1: Introduction to Web Applications. This chapter gives an overview of the Internet, and where the World Wide Web fits in. It then outlines the.
Web HTTP Hypertext Transfer Protocol. Web Terminology ◘Message: The basic unit of HTTP communication, consisting of structured sequence of octets matching.
Sockets process sends/receives messages to/from its socket
The Inter-network is a big network of networks.. The five-layer networking model for the internet.
Web Client-Server Server Client Hypertext link TCP port 80.
Lecture 6: Sun: 8/5/1435 Distributed Applications Lecturer/ Kawther Abas CS- 492 : Distributed system & Parallel Processing.
1 Seminar on Service Oriented Architecture Principles of REST.
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
Networking Fundamentals. Basics Network – collection of nodes and links that cooperate for communication Nodes – computer systems –Internal (routers,
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
TCP/IP (Transmission Control Protocol / Internet Protocol)
2007cs Servers on the Web. The World-Wide Web 2007 cs CSS JS HTML Server Browser JS CSS HTML Transfer of resources using HTTP.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications  app architectures  app requirements r 2.2 Web and HTTP.
Reading TCP/IP Protocol. Training target: Read the following reading materials and use the reading skills mentioned in the passages above. You may also.
Overview of Servlets and JSP
Computer Networks with Internet Technology William Stallings Chapter 04 Modern Applications 4.1 Web Access - HTTP.
Distributed OS.
Web fundamentals: Clients, Servers, and Communication
Chapter 9: Transport Layer
Tiny http client and server
Block 5: An application layer protocol: HTTP
Chapter 3 outline 3.1 Transport-layer services
How HTTP Works Made by Manish Kushwaha.
WWW and HTTP King Fahd University of Petroleum & Minerals
Hypertext Transfer Protocol
Encryption and Network Security
CISC103 Web Development Basics: Web site:
WEB SERVICES.
Internet transport protocols services
Understand the OSI Model Part 2
Protocols and networks in the TCP/IP model initially.
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
Web Development & Design Chapter 1, Sections 4, 5 & 6
Transport Layer Our goals:
Distributed Content in the Network: A Backbone View
CISC103 Web Development Basics: Web site:
Packet Switching To improve the efficiency of transferring information over a shared communication line, messages are divided into fixed-sized, numbered.
WEB API.
The Internet and HTTP and DNS Examples
Computer Communication & Networks
Application layer Lecture 7.
HTTP Hypertext Transfer Protocol
Multimedia and Networks
CSE 461 HTTP and the Web.
Chapter Goals Compare and contrast various technologies for home Internet connections Explain packet switching Describe the basic roles of various network.
Networking Theory (part 2)
Hyper Text Transfer Protocol
HyperText Transfer Protocol
Chapter 2 Network Models
EE 122: HyperText Transfer Protocol (HTTP)
Hypertext Transfer Protocol (HTTP)
William Stallings Data and Computer Communications
WebDAV Design Overview
There can be only one! The future of Application Layer Protocols
HTTP Hypertext Transfer Protocol
Networking Theory (part 2)
Presentation transcript:

HTTP/1.0, 1.1 and Beyond, An Evolutionary Perspective on HTTP Henrik Frystyk Nielsen

HTTP - an Evolutionary Perspective Purpose of this Talk Why did HTTP end up the way it did? What caused new features to be introduced? Nobody could have predicted the path it took! Kiss (Keep it simple, stupid!) principle is essential What is HTTP, really? The Basic HTTP Building Blocks Bare Bone HTTP In every big protocol there is a small waiting to get out Common Comments and Questions about HTTP On performance, state, complexity, extensibility Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP - an Evolutionary Perspective Once Upon a Time... HTTP started out as a simple hypertext protocol Send GET request - get back a document Hypertext was what you asked for and what you got There was no information about the documents you retrieved - was embedded in the document This were the early days of HTTP/0.9 Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

Then came the <IMG …> hack No more only text based documents Needed type information to distinguish images from text MIME provided a mechanism for describing protocol messages Was adopted for describing HTTP messages A major cross road on the evolutionary path HTTP/1.0 was on its way Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

Then came Proxies and Gateways First to get access to other systems like Gopher and WAIS Bootstrap mechanism for accessing information Then to traverse firewalls Turned out to be better than mechanisms like SOCKS And soon caching became popular based on last modified dates and heuristics Proxies crucial piece of Web architecture Allows for new levels of indirection Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP - an Evolutionary Perspective In the Mean Time... People wanted faster renditions of their pages containing text, images and audio Solution: Use multiple, parallel TCP connections This actually makes a lot of sense TCP sockets are easy to program You get a lot of resources from the OS and the Net It seems to be a lot faster! One problem - impact on Net a disaster Web applications were wasting huge amounts of resources. Servers did not do any real work Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP - an Evolutionary Perspective The More the Merrier People wanted all their information in their browser Use of POST to represent “strange ideas” POST is not AUTOMATABLE! Difference from Automated! It is not a question of handling strange ideas! It is a question of letting your computer handle strange ideas! HTTP become a byte transport Lack of interoperability Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

The Web was Commercialized Vanity host names become popular Everybody wants their own domain name (www.henrik.com) Due to a misoptimization, this could only be done using multiple IP addresses Result is that many machines have multiple IP addresses Examples of 100 or more IP addresses pr machine Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

…and Fueled by Advertisement Main accounting mechanism was hit counts in the form of TCP connections No trust in heuristic caching - bust it! We loose revenue every time a cache serves a cached document Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

Result: The Internet was on its Knees Several reports of busy links collapsing - no data got through IP addresses were consumed at very high rate But… I don’t think that HTTP would have the position it has today as the most used protocol if started with HTTP/1.1 Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP/1.1 - The Big Fire Fighter Main purpose was to fix three problems Provide a semantically well-defined caching model Support vanity hostnames Limiting waste of TCP connections Criteria for solutions was that the end user would see a clear win People need personal incentives to change Implementors need clear market benefit to implement Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP - an Evolutionary Perspective Hmm, Looks Promising! Success criteria was met In our performance work, we could show that HTTP/1.1 cuts down Round Trip Times by a lot Cut down TCP overhead by a factor of three Cut down time to transfer data by a factor of 2 We can blast out PPP, LANs and WANs Have not made explicit testing on wireless Would urge people to help doing this Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP - an Evolutionary Perspective But How can We Extend it? HTTP is not a centrally controlled protocol Has maybe never been It’s extended by everybody for any possible purpose Clearly suffering from “HTTP is the hammer - everything is a nail” syndrome No structured way of extending HTTP Lack of type information Using POST as a tunnel mechanism Reducing HTTP to a byte transport We need a more powerful framework! Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP - the Next Generation HTTP-NG is generic application level protocol A simple, extensible framework Explicit Layering and modularization Break up the big “lump” style HTTP message Extensibility at the core Lessons from our HTTP/PEP/Mandatory work Can the Web be implemented using Distributed Object technology? Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP - an Evolutionary Perspective So What is HTTP anyway? Let’s have a quick look at the model It looks like MIME but isn’t quite HTTP is a layered Protocol Has Scope, Proxying and Caching Has inherent fuzziness built in Content negotiation and redirections It looks like RPC but isn’t quite Proxies are explicit in the interfaces Has the notion of end-to-end and hop-by-hop scope Interfaces are both vertical and horizontal Headers separated from methods Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

Methods, Headers, and Status Codes No explicit relationship between methods, header fields and status codes in an HTTP message. Relationship must be defined implicitly Methods to be performed on the resource A priori agreement of semantics. Can’t be extended dynamically Headers carry information about the parties involved, the transaction, the message body or the resource Unknown header fields must be ignored without affecting the outcome of the transaction Status Codes are the results returned by the server Status codes are somewhat easier to extend, as unknown status codes must be treated as the x00 code of that class. Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

Common Questions about HTTP People often discard HTTP using inaccurate assumptions Not a question of “HTTP all over” but a path for evolvability Working our way towards a generic application level protocol framework An important goal of HTTP-NG! Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP - an Evolutionary Perspective Why is HTTP/1.1 so big? I have often heard: We only need a small subset, not the whole thing What does it really take to be an HTTP application? Not a lot! Most features defined by header fields have a request part and a response part. The SHOULD and MUST requirements in which header field to support often comes in pairs: if you support a certain feature then you have to support all header fields associated with that feature. Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP is for HTTP URLs, right? HTTP can handle arbitrary URIs - not only “http://…” This is a consequence of Proxies and Gateways in the HTTP model I don’t believe in Gateways I want one information space with a consistent set of services URI space is getting more complex New URI schemes on a daily basis A serious problem for interoperability Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

I can’t use HTTP - I need state! HTTP is inherently a stateless protocol Request-response pairs are independent but not necessarily idempotent. POST, as well as sequences of PUT and DELETE, changes state State can be built on top of HTTP Often sufficient to add a simple header field or a parameter on an existing one Cookies is state at a higher level Involves the end-user and hence concerns about privacy etc. Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP - an Evolutionary Perspective HTTP is for TCP Only! There is (almost) nothing that binds HTTP to TCP HTTP is known to run on top of non-TCP networks Often said that UDP is faster than TCP Pipelining changes this dramatically: requests and responses take fragments of TCP packets UDP Support should be done by layering Many examples of MIME based protocols supporting UDP at the application level Doesn’t make sense! Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP can’t handle Streamed Data There is a difference between Controlling and Transmitting HTTP is not a real time protocol But can be used to control audio/video streams Essentially as a remote control protocol Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

HTTP - an Evolutionary Perspective HTTP is too Slow! Well, performance is relative HTTP is not a fast protocol - but there are not very many fast protocols around POP is really bad with respect to round trips (RTT). CORBA is really bad with respect to bytes and RTTs On wireless, RTT is the factor that kills you HTTP/1.1 is fairly good at avoiding RTT delays Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective

More Information on the Web HTTP-NG Project HTTP-NG Activity HTTP-NG Working Groups (W3C Members only) HTTP/1.x Overview W3C Member Site W3C Sunday, February 24, 2019Sunday, February 24, 2019 HTTP - an Evolutionary Perspective