340 likes | 418 Views
Learn the fundamentals of webserver programming, its importance, and applications. Explore server-side vs. client-side programming, Java servlets, and server-side web applications. Enhance your understanding of URL concepts and practical examples.
E N D
webserver programming ICT voor O&O cursus 515 2,3,9 mar 2005
day 1 • general introduction • what is the web? • what do we mean by webserver programming? • when to use it? • what does it look like? • first introduction to Java servlets
the course is only a first introduction! • “you know Java” • “you know HTML” • we assume limited experience with them
we will not teach you: • Frontpage, Dreamweaver, etc. • website layout management (off-topic) • website content management • computer programming • Java • ASP, .NET, PHP, etc. (not used with Java) • specific Java technology such as JINI, JAXL, JDBC, J… (too advanced)
web technology • What is the web made of? • What does web interaction do? • What do we need server-side programming for? • What does a webserver do? • How does it fit into the webserver?
what is the web made of? • consider a user interacting with a webpage • what technology does it take?
quiz time! • what does http://www.win.tue.nl/ictoo/ mean? • what happens when a user clicks on a link to it? • what does http://wwwis.win.tue.nl/~rpost/webprog/cgi/tictactoe.cgi?move=5 • mean? • why are URLs a good idea?
web technology • x What is the web made of? • x What does web interaction do? • What do we need server-side programming for? • What does a webserver do? • How does it fit into the webserver?
what is server-side programming for? • to create applications! • example: • http://wwwis.win.tue.nl/~rpost/webprog/cgi/tictactoe.cgi
what is server-side programming for?example: tic-tac-toe (2) • We can play tic-tac-toe with HTML files. • Limitations?
what is server-side programming for?example: tic-tac-toe (3) • We can play tic-tac-toe with HTML files. • Limitations: • every response is fixed • we can’t save the score on the server • too many HTML files • changing the layout is a tedious job • changing the machine’s strategy is hard • communication between players: ?
what is server-side programming for?example: tic-tac-toe (4) • With a server-side program to generate the pages, • all limitations disappear: • a response can depend on anything • we can save the score on the server and show it • no more duplication of HTML • changing the layout is a one-time operation • changing the machine’s strategy is easy • users can play/chat/… via the application
what is server-side programming for? • conclusion: server-side programming supports • generic layout • generic functionality • (“generic”: for all webpages at once)
what is server-side programming for? • do people create tic-tac-toe games in HTML? • yes, many websites are! e.g.http://www.win.tue.nl/index.html • we will return to this example
server-side web applications vs … • client-side web applications • example: the Pacman applet by Benny Chow • written in Java (source code is available) • this is a Java applet (client-side web app),not a Java servlet (server-side web app) • (this course is about server-side web apps)
server-side web applications vs. … • client-side web applications: (e.g. Pacman): • can have a much more powerful user interface • require special web browser capabilities (plugins) • must be written to run in user’s web browser • standalone (non-web) applications: • even more powerful • must be downloaded and installed on the user’s OS • must be written to run on the user’s OS
server-side web applications • limited interaction in user interface • software + content + gathered data • reside on server • factors determining whether to use server-side web application:security, availability, reliability, portability, maintainability, manageability, UI flexibility, …
web technology • x What is the web made of? • x What does web interaction do? • / What do we need server-side programming for? • What does a webserver do? • How does it fit into the webserver?
what is server-side programming for?example: www.win.tue.nl (2) • http://www.win.tue.nl/index.htmlconsists of HTML pages + images • layout, images, buttons designed in Photoshop • first prototype made in FrontPage • alternative with server-side programming:http://www.win.tue.nl/
what is server-side programming for?example: www.win.tue.nl (3) • problems: maintaining consistency in look & feel • (not all Photoshop layouts and images can be used on the web) • not everybody uses FrontPage • some parts of the site are already generated with software; FrontPage doesn’t support that • how to convert existing pages? • virtually impossible to change the look and feelwhile the site is up and running
what is server-side programming for?example: www.win.tue.nl (4) • answer: server-side programming • the TU/e “webfilter” • generates a common look & feel for arbitrary webpages on the fly • example: http://wwwstijl.tue.nl/filter43/http://wwwis.win.tue.nl/~rpost/webprog/cgi/tictactoe.cgi
what is server-side programming for?example: www.win.tue.nl (5) • “webfilter” vs. FrontPage • solves all of the problems mentioned • must be tuned (by a programmer) to work on specific ranges of pages • requires an uncommon way of authoring • hard to sell(users don’t trust it, techs don’t trust it)
what is server-side programming for?example: www.win.tue.nl (6) • more viable: a Content Management System (CMS) • CMS = server-side web application for website authoring and management • solves most of the problems mentioned • limits author to range of options supported by CMS • very popular • example: www.win.tue.nl (uses the Typo3 CMS)
ready-to-use server-side programming • software packages you can freely install, configure, and use; examples: • CMS software • wiki software • blogging software • database managers (e.g. http://www.petriweb.org/phpMyAdmin • much much more
web technology • x What is the web made of? • x What does web interaction do? • x What do we need server-side programming for? • What does a webserver do? • How does it fit into the webserver?
what is a webserver made of? • core functionality e.g. serving files from the filesystem • built-in document generation e.g. error messages, status messages • getting a document from an executable (CGI) • special webserver modules for scripting / programming (SSI; PHP; Java servlets; ASP; etc)
CGI: Common Gateway Interface • a standard way to call external programs from a webserver • and let them return a document
CGI: example • tic tac toe of course: • http://wwwis.win.tue.nl/~rpost/webprog/cgi/tictactoe.cgi • source code will be made available
web technology • x What is the web made of? • x What does web interaction do? • x What do we need server-side programming for? • x What does a webserver do? • x How does it fit into the webserver?
servlets • difference with CGI scripts: • scripting engine is integrated with webserver • more efficient • requires special webserver support