Download - HTTP; The World Wide Web Protocol
![Page 1: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/1.jpg)
HTTP; The World Wide Web Protocol
HTTPWeb Content
Caching
Marc Andreessen
![Page 2: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/2.jpg)
Brief History of HTTP 1990-1993: The idea of a web “browser” is
contemplated – poor interfaces hinder browser use 1993: Marc Andreessen (then a grad student at
NSCA) posts Mosaic on an ftp cite. New features include: Hyperlinks Embedded images
December 1993: Mosaic growth makes the front page of New York Times
1994: Marc Andreessen and colleagues leave NSCA to form Mosaic Corp. (later renamed “Netscape”)
![Page 3: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/3.jpg)
Web Growth
![Page 4: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/4.jpg)
Web Server Statistics Apache is the most popular web server
today (freely available) Microsoft IIS is gaining ground
![Page 5: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/5.jpg)
Versions of HTTP Early protocol is HTTP 0.9
read only More recent versions:
HTTP 1.0 read, input, delete, ...
HTTP 1.1 performance optimizations
![Page 6: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/6.jpg)
HTTP Overview Client (browser) sends HTTP
request to server Request specifies affected URL Request specifies desired operation Server performs operation on URL Server sends response Request and reply headers are in
pure text
![Page 7: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/7.jpg)
Static Content and HTML Most static web content is written
in HTML HTML allows
Text formatting commands Embedded objects Links to other objects
Server need not understand or interpret HTML
![Page 8: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/8.jpg)
Example of an HTTP Exchange
Client ServerGET www.cs.uiuc.edu
Retrieve DataFrom Disk
![Page 9: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/9.jpg)
Fetching Multiple Objects Most web-pages contain embedded
objects (e.g., images, backgrounds, etc)
Browser requests HTML page Server sends HTML file Browser parses file and requests
embedded objects Server sends requested objects
![Page 10: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/10.jpg)
Fetching Embedded Objects
Client ServerGET www.cs.uiuc.edu
Retrieve DataFrom Disk
GET image.gifRetrieve ImageFrom Disk
![Page 11: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/11.jpg)
HTTP Operations GET: retrieves URL (most widely
used) HEAD: retrieves only response
header POST: posts data to server PUT: puts page on server DELETE: deletes page from server
![Page 12: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/12.jpg)
Simple HTTP Request and Reply
Request:GET http://www.server.com/page.html
HTTP/1.0
Response:HTTP-Version: HTTP/1.0 200 OKContent-Length: 3012Content-Type: text/html<body>
![Page 13: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/13.jpg)
HTTP 1.0 Client opens a separate TCP connection
for each requested object Object is served and connection is
closed Advantages
maximum concurrency Limitations
TCP connection setup/tear-down overhead TCP slow start overhead
![Page 14: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/14.jpg)
HTTP 1.0Client Server
ACK, GET www.cs.uiuc.eduRetrieve DataFrom Disk
Retrieve ImageFrom Disk
SYN
SYN, ACKconnect()
close()connect()
ACK, GET image.gif
SYN
SYN, ACK
close()
write()
write()
![Page 15: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/15.jpg)
HTTP 1.1 To avoid a connection per object model,
HTTP 1.1 supports persistent connections
Client opens TCP connection to server All requests use same connection Problems
Less concurrency Server does not know when to close idle
connections
![Page 16: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/16.jpg)
HTTP 1.1Client Server
ACK, GET www.cs.uiuc.eduRetrieve DataFrom Disk
Retrieve ImageFrom Disk
SYN
SYN, ACKconnect()
GET image.gif
close()
write()
write()
![Page 17: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/17.jpg)
Server Side Close()Client Server
ACK, GET www.cs.uiuc.edu Retrieve DataFrom Disk
Retrieve ImageFrom Disk
SYN
SYN, ACKconnect()
GET image.gif
write()
write()
Timeout! close()
Set timeout
Resettimeout
![Page 18: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/18.jpg)
Dynamic Content Web pages can be created as requests arrive Advantages
Personalization (e.g., my.yahoo.com), interaction with client input interaction with back-end applications
Disadvantages Performance penalty
Generating dynamic content (CGI, ASP, PHP, ColdFusion, JavaScript, Flash, …)
![Page 19: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/19.jpg)
CGI Scripts CGI scripts are URLs with a .cgi extension The script is a program (e.g., C, JAVA, …) When the URL is requested, server invokes
the named script, passing to it client info Script outputs HTML page to standard
output (redirected to server) Server sends page to client
![Page 20: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/20.jpg)
CGI Execution
ServerCGI
Script
fork()
Send page
Request Response
![Page 21: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/21.jpg)
Active Server Pages (ASPs) Active server pages are HTML
documents with extensions for embedded program execution
When request arrives, server fetches and parses the HTML document
Server executes embedded executable code and plugs output into page
Expanded page is sent to client
![Page 22: HTTP; The World Wide Web Protocol](https://reader036.vdocument.in/reader036/viewer/2022081603/56813c28550346895da5a27b/html5/thumbnails/22.jpg)
Quiz Match each call with a function this call performs.
1. accept() a) defines the type of socket (e.g., TCP/UDP) 2. listen() b) associates a socket with a port number3. connect() c) dequeues a client connection request4. bind() d) sends a TCP SYN packet to server5. socket() e) defines the length of the socket queue f) writes application data to the socket