From Extensibility to Evolvability Once upon a time, HTTP was simple – what happened?

Slides:



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

HTTP – HyperText Transfer Protocol
Web basics HTTP – – URI/L/Ns – HTML –
16-Jun-15 HTTP Hypertext Transfer Protocol. 2 HTTP messages HTTP is the language that web clients and web servers use to talk to each other HTTP is largely.
HTTP Hypertext Transfer Protocol. HTTP messages HTTP is the language that web clients and web servers use to talk to each other –HTTP is largely “under.
How the web works: HTTP and CGI explained
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 23 – Internet Applications Internet Directory.
TCP/IP Protocol Suite 1 Chapter 22 Upon completion you will be able to: World Wide Web: HTTP Know how HTTP accesses data on the WWW Objectives.
Lecture 7 TELNET Protocol & HyperText Transfer Protocol CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger.
1 HTTP - Hypertext Transfer Protocol Arthur : Yigal Eliaspur Date :
Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July.
1 The HyperText Transfer Protocol: HTTP Nick Smith Stuart Alley Tara Tjaden.
Hypertext Transfer Protocol Information Systems 337 Prof. Harry Plantinga.
HTTP Overview Vijayan Sugumaran School of Business Administration Oakland University.
2/9/2004 Web and HTTP February 9, /9/2004 Assignments Due – Reading and Warmup Work on Message of the Day.
Hypertext Transport Protocol CS Dick Steflik.
Client, Server, HTTP, IP Address, Domain Name. Client-Server Model Client Bob Yahoo Server yahoo.com/finance.html A text file named finance.html.
 What is it ? What is it ?  URI,URN,URL URI,URN,URL  HTTP – methods HTTP – methods  HTTP Request Packets HTTP Request Packets  HTTP Request Headers.
PL-IV- Group A HTTP Request & Response Header
Rensselaer Polytechnic Institute CSC-432 – Operating Systems David Goldschmidt, Ph.D.
Mail Server Fitri Setyorini. Content SMTP POP3 How mail server works IMAP.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
Electronic Mail Originally –Memo sent from one user to another Now –Memo sent to one or more mailboxes Mailbox –Destination point for messages.
FTP (File Transfer Protocol) & Telnet
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
HyperText Transfer Protocol (HTTP).  HTTP is the protocol that supports communication between web browsers and web servers.  A “Web Server” is a HTTP.
CSC 2720 Building Web Applications Getting and Setting HTTP Headers (With PHP Examples)
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
TCP/IP Protocol Suite 1 Chapter 22 Upon completion you will be able to: World Wide Web: HTTP Understand the components of a browser and a server Understand.
Rensselaer Polytechnic Institute Shivkumar Kalvanaraman, Biplab Sikdar 1 The Web: the http protocol http: hypertext transfer protocol Web’s application.
SOAP Tutorial Ching-Long Yeh 葉慶隆 Department of Computer Science and Engineering Tatung University
Maryam Elahi University of Calgary – CPSC 441.  HTTP stands for Hypertext Transfer Protocol.  Used to deliver virtually all files and other data (collectively.
Sistem Jaringan dan Komunikasi Data #9. DNS The Internet Directory Service  the Domain Name Service (DNS) provides mapping between host name & IP address.
TCP/IP Protocols Dr. Sharon Hall Perkins Applications World Wide Web(HTTP) Presented by.
Web HTTP Hypertext Transfer Protocol. Web Terminology ◘Message: The basic unit of HTTP communication, consisting of structured sequence of octets matching.
HTTP Hypertext Transfer Protocol
HTTP Hypertext Transfer Protocol RFC 1945 (HTTP 1.0) RFC 2616 (HTTP 1.1)
World Wide Web (WWW) A Distributed Document- Based System Group E Ricky Tong (D-A0-1611) Eddy Leong (D-A0-1623) Dick Lei (D-A0-1658)
Web Client-Server Server Client Hypertext link TCP port 80.
HTTP1 Hypertext Transfer Protocol (HTTP) After this lecture, you should be able to:  Know how Web Browsers and Web Servers communicate via HTTP Protocol.
CIS679: Lecture 13 r Review of Last Lecture r More on HTTP.
1 Seminar on Service Oriented Architecture Principles of REST.
Web Technologies Interactive Responsiveness Function Hypertext Web E-Publishing Simple Response Web Fill-in Forms Object Web « Full-Blown » Client/Server.
WWW: an Internet application Bill Chu. © Bei-Tseng Chu Aug 2000 WWW Web and HTTP WWW web is an interconnected information servers each server maintains.
Appendix E: Overview of HTTP ©SoftMoore ConsultingSlide 1.
Operating Systems Lesson 12. HTTP vs HTML HTML: hypertext markup language ◦ Definitions of tags that are added to Web documents to control their appearance.
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.
CITA 310 Section 2 HTTP (Selected Topics from Textbook Chapter 6)
Web Server Design Week 7 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/24/10.
HTTP Here, we examine the hypertext transfer protocol (http) – originally introduced around 1990 but not standardized until 1997 (version 1.0) – protocol.
EE 122: Lecture 21 (HyperText Transfer Protocol - HTTP) Ion Stoica Nov 20, 2001 (*)
CS 6401 The World Wide Web Outline Background Structure Protocols.
Real-Time Streaming Protocol draft-ietf-mmusic-rfc2326bis-01.txt Magnus Westerlund.
Overview of Servlets and JSP
Computer Networks with Internet Technology William Stallings Chapter 04 Modern Applications 4.1 Web Access - HTTP.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
Lecture # 1 By: Aftab Alam Department Of Computer Science University Of Peshawar Internet Programming.
What’s Really Happening
Hypertext Transfer Protocol (HTTP) COMP6218 Web Architecture Dr Nicholas Gibbins –
Hypertext Transfer Protocol
How HTTP Works Made by Manish Kushwaha.
Hypertext Transfer Protocol
Hypertext Transport Protocol
HTTP Protocol.
WEB API.
William Stallings Data and Computer Communications
There can be only one! The future of Application Layer Protocols
Web Server Design Week 4 Old Dominion University
HTTP Hypertext Transfer Protocol
Presentation transcript:

From Extensibility to Evolvability Once upon a time, HTTP was simple – what happened?

Fri, 8 October Overview of Talk What makes an extension? And why extend in the first place? In the good old days, HTTP was simple Why did it get complex? HTTP is already quite extensible Why isn’t this enough? What is Evolvability? How can we support it?

Fri, 8 October Why Extensions? Why not just a fixed set of features? Would be a lot easier Doesn’t work because… Extensions are fundamental to the Web The Web is an information space Not a single service Every one lives in the same information space How you live there is up to you Change of Focus From creating infrastructure to creating services using that infrastructure

Fri, 8 October What is an Extension? Qualification of a normal HTTP message authentication, payment, etc. New HTTP syntax and encoding Sticky headers, binary encoding etc. Extensions to the “HTTP application” WebDAV, etc. HTTP-like protocols for new applications RTSP, IMAP etc. Leaving HTTP and TCP entirely Multicast etc.

Fri, 8 October 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 document you retrieved Especially no content-type This were the early days of HTTP/0.9

Fri, 8 October Then HTTP/1.0 came along 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

Fri, 8 October And Much More Followed… Large number of added features Byte ranges Cookies Content negotiation Authentication and proxy authentication Proxying, caching, and gateways Hit metering Persistent connections and pipelining … Pattern has been copied in RTSP, SIP etc.

Fri, 8 October Thanks to HTTP’s Architecture All these extensions could fit into HTTP Using the basic HTTP building blocks… Request Method (one pr message) GET, HEAD, POST, DELETE, etc. Response Status Code (one pr message) 1xx, 2xx, 3xx, 4xx, 5xx, etc. Header Fields (many pr message) Protocol headers Upgrade, User-Agent, Accept, Date, Server, etc. Entity Headers Content-Length, Content-Encoding, etc.

Fri, 8 October The Good Part… What are the lessons so far? The good side of all these extensions: HTTP could actually support them The extensions provide very useful features Several of them have become widespread Even across trust domains! Thanks to the IETF WG HTTP is really quite extensible

Fri, 8 October And the Bad Part… All these extensions had to be part of the base protocol Have blurred the (already implicit) line between base protocol and extensions in HTTP Cost has been a very complex protocol HTTP/1.1 has been under way a long time Not just result of complex extensions but how they interact Adding new features gets harder and harder Reason: No way of replacing existing features Cost of backwards compatibility keeps increasing Will never be able to replace existing features

Fri, 8 October Extensibility vs Evolvability Cost pr feature increases over time Extensibility: Evolvability:

Fri, 8 October Interoperability vs. Evolvability Cost of evolvability: As evolvability goes up, ease of deployment goes down

Fri, 8 October Supporting Evolvability How are Extensions deployed in the Web? Often by extending existing applications Spreading from in the small to the large over time This means that: Applications have different capabilities at all times This requires that: Applications supporting a particular extension should be able to employ this with no prior agreement; Applications can require that the other party either understand and abide by the new protocol or abort the operation; Has to work with existing HTTP

Fri, 8 October The Four Rules of Evolvability Can be accomplished by expressing these four parameters as part of the protocol: What it is (identify extension) A URI identifies the extension in the global URI space May be resolvable (interface description, code, etc.) How to deal with it (optional or mandatory) Can recipient ignore it or not? Who should deal with it (hop-by-hop or end-2-end) Should this go to the proxy or the user-agent, origin server When to deal with it (ordering) First do this; then do this etc.

Fri, 8 October HTTP Extension Framework Mechanism for lowering cost of extensions Works with existing HTTP Stable specification ready to be used Stable specification Fulfills the 4 rules through support for Decentralized deployment based on URIs for identification No risk of collisions between methods, status codes, or header fields Evolution through mandatory declarations You can’t ignore this extension Separation of end-2-end and hop-by-hop extensions Allows Ordering of extensions

Fri, 8 October Example of Mandatory Ext. M-POST HTTP/1.1 Man: " … HTTP/ OK Ext: Date: Sun, 25 Oct :12:31 GMT …

Fri, 8 October Example of Optional Ext. GET HTTP/1.1 Opt: " … HTTP/ OK Opt: " ns=12 12-hitcount: 24 Cache-Control: no-cache="12-hitcount,Opt" Date: Sun, 25 Oct :12:31 GMT Expires: Sun, 25 Oct :12:31 GMT …

Fri, 8 October Extension Declaration Params What it is (identify extension) The URI of the extension points to a definition of that extension This can be a formal interface description, a piece of code, a textual description, or nothing at all (may not be resolvable) How to deal with it optional or mandatory Who should deal with it hop-by-hop or end-2-end When to deal with it ordering

Fri, 8 October Extension Declarations Use the header field space for declaring extensions This means that declarations can Float between Methods Float between Status Codes Can be applied to any HTTP request/response Few exceptions like 304 (Not Modified)

Fri, 8 October Server Response When a server sees an extended message it can respond with 510 (Not extended) Message did not contain the information I needed. This can either be parameters or extensions Client can then try again if it wants to 2xx (OK in some form) Request succeeded and extension was dealt with Any other HTTP code In case it is covered by HTTP already

Fri, 8 October Client Response When a client sees an extended response, it can Ignore optional extension declarations or deal with them if it wants to The server can only send mandatory extensions in a response if it knows that the client has some way of dealing with it For example if it has asked for a mandatory extension. The client can then retry the request with extensions included, or go away and forget about it