history
play

WWW History What is WWW? an architecture framework for accessing - PDF document

WWW History What is WWW? an architecture framework for accessing linked document spread over CSCE 515: millions of machines 1989-1990 Tim Berners-Lee invents the World Wide Web at CERN Computer Network CERN: European center


  1. WWW History � What is WWW? � an architecture framework for accessing linked document spread over CSCE 515: millions of machines � 1989-1990 – Tim Berners-Lee invents the World Wide Web at CERN Computer Network � CERN: European center for nuclear research. � Means for distributing high-energy physics data Programming � Means for transferring text and graphics simultaneously ------ Web & HTTP � Client/Server data transfer protocol Wenyuan Xu � Communication via application level protocol � System ran on top of standard networking infrastructure Department of Computer Science and � Established a common language for sharing information on computers Engineering � Text mark up language University of South Carolina � Simple and easy to use � Requires a client application to render text/graphics CSCE515 – Computer Network Programming How the web works? WWW History contd. � User input: � 1994 – Mark Andreesen invents MOSAIC at National Center for Super Computing Applications (NCSA) � URL � First graphical browser � Hypertext link/ Hyperlink � Internet’s first “killer app” � Freely distributed � Web browser � Became Netscape Inc. � Gets the IP address of the server (via DNS) � 1995 (approx.) – Web traffic becomes dominant � Makes a TCP connection to port 80 on the server � Exponential growth � Sends an HTTP request to the web server � E-commerce � Receives the required files from the web server � Web infrastructure companies � Releases the TCP connection. � World Wide Web Consortium � Renders the page onto the screen as specified by its HTML or other web languages CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming WWW Components URI: Uniform Resource Identifiers � URIs defined in RFC 2396. � Structural Components � provide a simple and extensible means for � Clients/browsers – to dominant implementations identifying a resource � Servers – run on sophisticated hardware � Caches – many interesting implementations � Absolute URI: scheme://hostname[:port]/path � Internet – the global infrastructure which facilitates data � http://www.cse.sc.edu:80/foo/blah transfer � ftp://ftp.is.co.za/rfc/rfc1808.txt � Semantic Components � mailto:mduerst@ifi.unizh.ch � Hyper Text Transfer Protocol (HTTP) � Hyper Text Markup Language (HTML) � Relative URI: /path � eXtensible Markup Language (XML) /foo/blah � Uniform Resource Identifiers (URIs) No server mentioned CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming

  2. URL vs. URI? /foo/blah � Most popular form of a URI is the Uniform / Resource Locator (URL) � What is the difference between URL and URI? usr bin www etc � URI = URL+URN foo fun gif � URN: Uniform Resource Name � urn:isbn:0-395-36341-1 blah CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming HTTP Basic � HTTP is the protocol that supports HTTP communication between web browsers and web servers. Hypertext � A “Web Server” is a HTTP server Transfer Protocol Refs: � Most clients/servers today speak version 1.1, but 1.0 is also in use. RFC 1945 (HTTP 1.0) RFC 2616 (HTTP 1.1) CSCE515 – Computer Network Programming From the RFC Request - Response � “HTTP is an application-level protocol with � HTTP has a simple structure: the lightness and speed necessary for � client sends a request distributed, hypermedia information � server returns a reply. systems.” � HTTP can support multiple request-reply exchanges over a single TCP connection. � Transport Independence � The RFC states that the HTTP protocol generally takes place over a TCP connection, but the protocol itself is not dependent on a specific transport layer. CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming

  3. Well Known Address HTTP Versions � The original version now goes by the � The “well known” TCP port for HTTP name “HTTP Version 0.9” servers is port 80. � HTTP 0.9 was used for many years. � Other ports can be used as well... � Starting with HTTP 1.0 the version number is part of every request. � tells the server what version the client can talk (what options are supported, etc). CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming Request-Line Request-Line Request Line HTTP 1.0+ Request Headers . . . Headers . Method URI HTTP-Version \r\n blank line blank line . . Content... blank line � The request line contains 3 tokens (words). blank line � Lines of text (ASCII). Content... � space characters “ ” separate the tokens. � Lines end with CRLF “ \r\n ” � Newline (\n) seems to work by itself (but the protocol requires CRLF) � First line is called “Request-Line” � Typical HTTP request: GET /index.html HTTP/1.0 CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming Request-Line Methods Request Method Headers . . . � GET: retrieve information identified by the URI. blank line blank line � The Request Method can be: Content... � HEAD: retrieve meta-information about the URI. GET HEAD PUT � PUT: Store information in location named by URI. POST DELETE TRACE OPTIONS � POST: send information to a URI and retrieve result. � DELETE: remove entity identified by URI. future expansion is supported CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming

  4. More Methods Common Usage � GET, HEAD and POST are supported � TRACE: used to trace HTTP forwarding everywhere. through proxies, tunnels, etc. � HTTP 1.1 servers often support PUT, � OPTIONS: used to determine the DELETE, OPTIONS & TRACE. capabilities of the server, or characteristics of a named resource. CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming Request-Line HTTP Version Number The Header Lines Headers . . . � After the Request-Line come a number “ HTTP/1.0 ” or “ HTTP/1.1 ” blank line blank line (possibly zero) of HTTP header lines . Content... � Each header line contains an attribute name followed by a “:” HTTP 0.9 did not include a version number followed by a space and the attribute value. � The Name and Value are just text. in a request line. � Host: www.sc.edu � Request Headers provide information to the server about the client � what kind of client If a server gets a request line with no HTTP � what kind of content will be accepted � who is making the request version number, it assumes 0.9 � There can be 0 headers (HTTP 1.0) � HTTP 1.1 requires a Host: header CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming Request-Line Example HTTP Headers End of the Headers Headers . . . blank line blank line Accept: text/html Content... � Each header ends with a CRLF ( Host: www.sc.edu \r\n ) � The end of the header section is From: neytmann@cybersurg.com marked with a blank line. � just CRLF User-Agent: Mozilla/4.0 � For GET and HEAD requests, the Referer: http://foo.com/blah end of the headers is the end of the request! CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming

  5. POST Example GET Request GET /~wyxu/index.html HTTP/1.1 � A POST request includes some content Accept: */* (some data) after the headers (after the blank Host: www.cse.se.edu line). User-Agent: Internet Explorer From: cheater@cheaters.org � There is no format for the data (just raw Referer: http://foo.com/ bytes). There is a blank line here! � A POST request must include a Content- Length line in the headers: Content-length: 267 CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming Typical Method Usage Example POST Request Example POST Request GET used to retrieve an HTML document. POST /~wxy/changegrade.cgi wxy/changegrade.cgi HTTP/1.1 HTTP/1.1 POST /~ Accept: */* Accept: */* HEAD used to find out if a document has Host: www.cse.sc.edu Host: www.cse.sc.edu changed. User- User -Agent: Agent: SecretAgent SecretAgent V2.3 V2.3 Content- Content -Length: 35 Length: 35 POST used to submit a form. Referer: Referer : http://monte.cs.rpi.edu/blah http://monte.cs.rpi.edu/blah stuid=6660182722&item=test1&grade=99 =6660182722&item=test1&grade=99 stuid CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming Response Status Line Status-Line HTTP Response Headers . HTTP-Version Status-Code Message . . blank line blank line � ASCII Status Line � Status Code is 3 digit number (for Content... computers) � Headers Section � Message is text (for humans) � Content can be anything (not just text) � typically an HTML document or some kind of image. CSCE515 – Computer Network Programming CSCE515 – Computer Network Programming

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend