1Introducing the webCS 640, Lecture 5The web in a nutshellWeb client Web serverConversationusing httpHTML documentInventor of the web: Tim Berners-LeeLecture outlinez The clientz The protocolz The serverz HTML2The browserz Complex program running on client computerz Main goal: get web pages from servers, display them and handle interaction with user z Standards prescribe browser behaviorz Various implementationsz Internet Explorer, Mozilla/Firefox/Netscape, Safariz Have inconsistent interpretation of standards, non-standard extensionsz Executes programs embedded in web pagesClient side programmingLimitedLimitedNetwork transfersNoNoAccess local filesLimitedExtensiveUser interactionNoYesCovered in classWeb gamesInteractive pagesTypical usesStrongLimited (HTML)GraphicsJavaJavaScriptLanguageAppletsScriptsFeatureLecture outlinez The clientz The protocolz The serverz HTML3HyperText Transfer Protocolz RFCs: 1945 HTTP/1.0 ; 2068,2616 HTTP/1.1z Well known port number: 80z Fundamental http operationsz Client opens TCP connection, requests documentz Server sends reply to client (includes document)z Text-based protocol similar to SMTP, uses MIMEz http conversations also includez Context information (e.g. browser type)z Negotiation of various optionsUniform Resource Locatorsz URLs are used to refer to web documentsz Browser displays URL of current pagez URLs are part of http conversationsz Links between documents also use URLsz URLs have a well-defined structurez Protocol used to access document (also ftp, https …)z DNS name of server holding documentz Location of file (path + file name)z May also have port number – http://server:8080/dir/http://www.cs.wisc.edu/classes/spring07.htmlLecture outlinez The clientz The protocolz The serverz HTML4The web serverz Multithreaded program handling hundreds of requests in parallelz IIS (Microsoft), apache (open source)z When the server receives a requestz Static pages are read from disk and sent to clientz For dynamic pages the server also executes some programs that build (parts of) the pagez Other functionsz Logging accessesz Authenticating usersServer side programmingz Short historyz CGI – separate programs launched by web serverz They produce an HTML document as outputz They receive arguments as inputz Strong isolation, bad performancez Programs embedded inside web page (php, ASP, JSP)z Program executed inside web server processz What are dynamic pages used for?z Personalizing based on user identityz Interacting with databases (e.g. on-line banking)z Web applications (e.g. web based email)z Separate database keeps persistent dataWeb applications gain groundVariesHighNetwork usageUnlimitedStrongUser interactionUpdate desktopUpdate serversUpgrade costDominantIncreasingPopularityBackup desktopBackup serversData backup costWhere installedAny computerAccessible fromUnlimitedStrongGraphicsDesktop app.Web app.Feature5Lecture outlinez The clientz The protocolz The serverz HTML HyperText Markup Languagez Standard defining how the structure and format of web documents is encodedz Most browsers render valid HTML consistentlyz HTML documents contain text – can include images, forms and interactive elementsz HTML uses tags (e.g. <b>bold</b>)z HTML documents can be rendered by clients with different constraints (e.g. window size)z HTML allows links to other documentsAn example of a web page<TITLE>Bucky Badger’s web page</TITLE><BODY><H1>Welcome to Bucky's web page</H1><IMG SRC="bucky.gif"><p>I am Bucky, the mascot for University of Wisconsin athletics. Please visit<A HREF="http://www.uwbadgers.com/football/index.html"> the web page of our football team</A> and <A HREF="http://www.uwbadgers.com/basketball/index.html"> the web page of our basketball team</A>.</BODY>6<TITLE>Bucky Badger’s web page</TITLE><BODY><H1>Welcome to Bucky's web page</H1><IMG SRC="bucky.gif"><P>I am Bucky, the mascot for University of Wisconsin athletics. Please visit<A HREF="http://www.uwbadgers.com/football/index.html"> the web page of our football team</A>and <A HREF="http://www.uwbadgers.com/basketball/index.html"> the web page of our basketball team</A>.</BODY>Web-related classesz Goal: learn how to develop web applications using bothclient and server side technologiesz Hands-on introduction to languages and toolsz “Big picture” issuesz Things covered elsewherez Full mastery of technologies – years of experiencez Building system software – CS 537z Using databases – CS 364z Building database systems – CS 564 Schedule of web classesz HTMLz Javascriptz DHTMLz httpz C#, Visual Studioz SQL interaction, ADO.Netz ASP.NET big picturez ASP.Net controlsz Web
View Full Document