340 likes | 418 Views
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”
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