15 213 The course that gives CMU its Zip Web services Nov 29 2001 Topics HTTP Serving static content Serving dynamic content class27 ppt Web history 1945 Vannevar Bush As we may think Atlantic Monthly July 1945 Describes the idea of a distributed hypertext system a memex that mimics the web of trails in our minds 1989 Tim Berners Lee CERN writes internal proposal to develop a distributed hypertext system connects a web of notes with links intended to help CERN physicists in large projects share and manage information 1990 Tim BL writes a graphical browser for Next machines class27 ppt 2 CS 213 F 01 Web history cont 1992 NCSA server released 26 WWW servers worldwide 1993 Marc Andreessen releases first version of NCSA Mosaic browser Mosaic version released for Windows Mac Unix Web port 80 traffic at 1 of NSFNET backbone traffic Over 200 WWW servers worldwide 1994 Andreessen and colleagues leave NCSA to form Mosaic Communications Corp now Netscape class27 ppt 3 CS 213 F 01 100 000 000 Internet Domain Survey www isc org Internet hosts 10 000 000 1 000 000 100 000 Mosaic and Netscape 10 000 1 000 100 class27 ppt 4 CS 213 F 01 Web servers Clients and servers communicate using the HyperText Transfer Protocol HTTP client and server establish TCP connection Client requests content Server responds with requested content client and server close connection usually web client browser HTTP request web server HTTP response content Current version is HTTP 1 1 RFC 2616 June 1999 class27 ppt 5 CS 213 F 01 Web content Web servers return content to clients content a sequence of bytes with an associated MIME Multipurpose Internet Mail Extensions type Example MIME types text html HTML page text plain Unformatted text application postscript Postcript document image gif Binary image encoded in GIF format image jpg Binary image encoded in JPG format class27 ppt 6 CS 213 F 01 Static and dynamic content The content returned in HTTP responses can be either static or dynamic Static content content stored in files and retrieved in response to an HTTP request Examples HTML files images audio clips Dynamic content content produced on the fly in response to an HTTP request Example content produced by a program executed by the server on behalf of the client Bottom line all content is associated with a file managed by the server class27 ppt 7 CS 213 F 01 URLs Each file managed by a server has a unique name called a URL Universal Resource Locator URLs for static content http www cs cmu edu 80 index html http www cs cmu edu index html http www cs cmu edu identifies a file called index html managed by a Web server at www cs cmu edu that is listening on port 80 URLs for dynamic content http www cs cmu edu 8000 cgi bin adder 15000 213 identifies an executable file called adder managed by a Web server at www cs cmu edu that is listening on port 8000 that should be called with two argument strings 15000 and 213 class27 ppt 8 CS 213 F 01 How clients and servers use URLs Example URL http www aol com 80 index html Clients use prefix http www aol com 80 to infer What kind of server to contact Web server Where the server is www aol com What port it is listening on 80 Servers use suffix index html to Determine if request is for static or dynamic content No hard and fast rules for this Convention executables reside in cgi bin directory Find file on filesystem Initial in suffix denotes home directory for requested content Minimal suffix is which all servers expand to some default home page e g index html class27 ppt 9 CS 213 F 01 Anatomy of an HTTP transaction Client open connection to server Telnet prints 3 lines to the terminal unix telnet www aol com 80 Trying 205 188 146 23 Connected to aol com Escape character is GET HTTP 1 1 host www aol com Client request line Client required HTTP 1 1 HOST header Client empty line terminates headers HTTP 1 0 200 OK Server response line MIME Version 1 0 Server followed by five response headers Date Mon 08 Jan 2001 04 59 42 GMT Server NaviServer 2 0 AOLserver 2 3 3 Content Type text html Server expect HTML in the response body Content Length 42092 Server expect 42 092 bytes in the resp body Server empty line r n terminates hdrs html Server first HTML line in response body Server 766 lines of HTML not shown html Server last HTML line in response body Connection closed by foreign host Server closes connection unix Client closes connection and terminatesM class27 ppt 10 CS 213 F 01 HTTP requests HTTP request is a request line followed by zero or more request headers request line method uri version version is HTTP version of request HTTP 1 0 or HTTP 1 1 uri is typically URL for proxies URL suffix for servers method is either GET POST OPTIONS HEAD PUT DELETE or TRACE class27 ppt 11 CS 213 F 01 HTTP methods HTTP requests cont GET retrieve static or dynamic content arguments for dynamic content are in URI workhorse method 99 of requests POST retrieve dynamic content arguments for dynamic content are in the request body OPTIONS get server or file attributes HEAD like GET but no data in response body PUT write a file to the server DELETE delete a file on the server TRACE echo request in response body useful for debugging class27 ppt 12 CS 213 F 01 HTTP requests cont Request headers header name header data Provide additional information to the server Major differences between HTTP 1 1 and HTTP 1 0 HTTP 1 0 uses a new connection for each transaction HTTP 1 1 also supports persistent connections multiple transactions over the same connection Connection Keep Alive HTTP 1 1 requires HOST header class27 ppt 13 CS 213 F 01 HTTP HTTP response is a Responses response line followed by zero or more response headers Response line version status code status msg version is HTTP version of the response status code is numeric status status msg is corresponding English text OK Request was handled without error 200 Forbidden Server lacks permission to access file 403 Not found Server couldn t find the file 404 Response headers header name header data provide additional information about response Content Type MIME type of content in response body Content Length Length of content in response body class27 ppt 14 CS 213 F 01 GET request to Apache server from IE browser GET test html HTTP 1 1 Accept Accept Language en us Accept Encoding gzip deflate User Agent Mozilla 4 0 compatible MSIE 4 01 Windows 98 Host euro ecom cmu edu Connection Keep Alive CRLF class27 ppt 15 CS 213 F 01 GET response from Apache HTTP 1 1 200 OK
View Full Document