HTTP: one of most widely addopted application protocols on the internet
- Common language bewteen clients and servers
Let’s take a historical tour of the evoution of the HTTP protocol
HTTP 0.9: one-line protocol
Original proposal: simplicity
Simple prototype with subset of proposed functionality
General architecture
- Client request: single ASCII character string
- Client request: terminated by carriage return (CLRF)
- Server response: ASCII character stream
- Server response: HTML
- Connection terminated afte document transfer is complete
But really- it just enables extremely smple Telnet ffriendly protocol
- Request- single line (e.g. GET and path)
- Response- single hypertext document
Recap of the features
- Client server, request-response protocol
- ASCII protocol, running over TCP/IP link
- Design to transfer HTML
- Connected between sever / client closed after every request
HTTP 1.0 Grapid Growth and Informational RFC
1991-1995: rapid co-evolution of HTML / web browsers. + public internet infrastructure
Huge list of desired capabilties that exposed limitations of HTTP 0.9
- Don’t want to serve just hypertext documents
So, May 1995 publish information RFC 1945- “common usage” of HTTP 1.0 implementations found in the wild
Key protocol changes
- Request can contain multiple newline separated header fields
- Response object prefixed with response status line
- Response object has own set of newline separated header fields
- Response object not limited to hypertext
- Any content type- now is more like hypermedia transport
- Connection between server + client closed after every request
HTTP 1.1 Internet Standard
Work on turning HTTP into official IETF internet standard
- First HTTP 1.1 standard in RFC 20168- January 1997
Resolved protocol ambiguites and introduced peformance optimizations
- Keepalive connections
- Chunks Encoding transfers
- Byte-range requests
- Transfer encodings
- Request Pipeling
Most obvious difference: connection keepalive allows reuse of existing TCP connection for multiple requests to the same host (ie image and hypertext)
Lots of other stuff going on
HTTP 2.0 Improving Transport Performance
HTTP has taken over the world- all kinds of devices speak HTTP to power our lives
Has begun to show signs of stress, and sonew initative announced for HTTP2.0 in 2012.
Focus of HTTP 2.0
- Improving transport perforamnce
- Lower latency
- higher throughput
- None of the high-level protocol semantics affected (ie. http heaers, values, use case)
Whole separate sectin of HTTP 2.0