Transcript Document
Web Servers November 15, 2005 Slides modified from Internet & World Wide Web: How to Program. 2004 (3rd) edition. By Deitel, Deitel, and Goldberg. Published by Prentice Hall. ISBN 0-13-145091-3 1 Chapter 21 – Web Servers (IIS and Apache) Outline 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 Introduction HTTP Request Types System Architecture Client-Side Scripting versus Server-Side Scripting Accessing Web Servers Microsoft Internet Information Services (IIS) 21.6.1 Microsoft Internet Information Services (IIS) 5.0 21.6.2 Microsoft Internet Information Services (IIS) 6.0 Apache Web Server Requesting Documents 21.8.1 XHTML 21.8.2 ASP.NET 21.8.3 Perl 21.8.4 PHP 21.8.5 Python Web Resources 2 Objectives • In this lesson, you will learn: – To understand a Web server’s functionality. – To introduce Apache Web server. – To learn how to request documents from a Web server. 3 21.1 Introduction • Web server – Responds to client requests by providing resources • URI (Uniform Resource Identifier) • Web server and client communicate with platform-independent Hypertext Transfer Protocol (HTTP) 4 21.1 Introduction IIS 5.0 Microsoft Corporation 5.0 2/17/00 Windows 2000, Windows XP IIS 6.0 Microsoft Corporation 6.0 3/28/03 Windows Server 2003 Apache Web server Company Apache Software Foundation Version 2.0.47 Released 7/10/03 Platforms Windows NT/2000/XP, Mac OS X, Linux and other UNIX-based platforms, experimentally supports Windows 95/98 Brief The most popular The newest release of Currently the most description Web server for IIS from Microsoft. popular Web server. Windows 2000. Price Included with Included with Freeware. Windows 2000 Windows Server 2003 and Windows XP. Fig. 21.1 Web servers discussed in this chapter. 5 Web server architecture 6 How the WWW Works (Fitzgerald and Dennis, 2005 Figure 2.8) 7 Domain Name Server System (Fitzgerald and Dennis, 2005 Figure 5.8) 8 Example of an HTTP Request from a Web browser Command URL HTTP version GET http://www.kelley.indiana.edu/ardennis/home.htm HTTP/1.1 ]- Request Line Date: Mon 06 Aug 2001 17:35:46 GMT User-Agent: Mozilla/6.0 ]- Web browser (this is Netscape) Request Header Referer: http://www.indiana.edu/~aisdept/faculty.htm URL that contained the link to the requested URL (Fitzgerald and Dennis, 2005 Figure 2-9) 9 HTTP response from a Web server HTTP version Status code Reason HTTP/1.1 200 OK ]- Response Status Date: Mon 06 Aug 2001 17:35:46 GMT ]- Date Server: NCSA/1.3 ]- Web server Location: http:// www.kelley.indiana.edu/adennis/home.htm ]- URL Content-type: text/html ]- Type of file <html> <head> <title>Allen R. Dennis</title> </head> <body> <H2> Allen R. Dennis </H2> <P>Welcome to the home page of Allen R. Dennis</P> Response Header Response Body </body> </html> (Fitzgerald and Dennis, 2005 Figure 2-10) 10 21.2 HTTP Request Types • GET (default) and POST do basically the same thing: Send data from the client to the server. However, they have some differences: • GET – Appends form data directly to the end of the URL—visible to users (not suitable for sending passwords) – Limited to 2,048 characters for the entire URL – Result page can be bookmarked and cached • POST – Sends form data in the HTTP request—invisible to users – Virtually no limit (but check your specific configuration) – Results are not cacheable or bookmarkable 11 21.3 System Architecture • Multi-tier application (n-tier application) – Information tier (data or bottom tier) • Maintains data for the application • Stores data in a relational database management system (RDBMS) – Middle tier • Implements business logic and presentation logic • Control interactions between application clients and application data – Client tier (top tier) • Application’s user interface • Users interact directly with the application through the client tier 12 N-tier Client-Server Architecture (Fitzgerald and Dennis, 2005 Figure 2.5) 13 21.4 Client-Side Scripting versus Server-Side Scripting • Client-side scripts – Validate user input • Reduce requests needed to be passed to server • Access browser • Enhance Web pages with DHTML, ActiveX controls, and applets • Server-side scripts – – – – Executed on server Generate custom response for clients Wide range of programmatic capabilities Access to server-side software that extends server functionality 14 Installing a web server 15 Hosting a website: Self hosting • Install a web server on a computer • Local access – Using domain <localhost> – or IP address 127.0.0.1 – Necessary for server-side programming development • Global access – Register a human-readable domain name – Obtain IP address • Static: Costs more • Dynamic: Needs dynamic DNS system, e.g. http://www.dyndns.com/ 16 Hosting a website: Hosting service • Register a domain name – Assign name servers – Host takes care of IP addressing • Develop website locally • Upload website via FTP for global access – E.g. Filezilla 17 Web server architecture • LAMP: Most popular—fully open source – – – – Linux for operating system Apache for web server MySQL for database PHP for server-side scripting • Others: – WAMP: Uses Windows for operating system, with Apache, MySQL, and PHP – WISA: Full Microsoft package • • • • Windows Internet Information Server (IIS) SQL Server (enterprise) or Access (small-scale) ASP or ASP.NET 18 21.7 Apache Web Server • • • • • Currently the most popular Web server Stability Efficiency Portability Open-source 19 All-in-one Apache/MySQL/PHP packages • EasyPHP (recommended) – Includes PHPMyAdmin for administering MySQL database – Installation and configuration • AbriaSoft Merlin Desktop Edition – Includes PHPMyAdmin • WAMP Server • PHP Triad 20 Installing EasyPHP • Download EasyPHP, and follow the installation instructions • In addition, move the <mysql> and <phpmyadmin> folders into the <www> folder in the EasyPHP installation folder • For Windows 95, make the following adjustments before starting EasyPHP: – Download the Windows NT patch, rename it to EasyPHP.exe, and replace the existing EasyPHP.exe – Open DOS prompt, go to the EasyPHP installation folder, and run <easyphp /install> • Run EasyPHP in Windows, and it will start Apache and MySQL (PHP and PHPMyAdmin do not need to “start”) – Note that Windows 95 might show that Apache is not working, though actually it is working 21 Requesting XHTML or PHP documents • Request PHP documents from Apache • Save PHP documents in the www folder for EasyPHP (htdocs is the default Apache folder name) • Launch web browser – With EasyPHP, right-click on the status bar icon and click “Local Web” • Enter PHP document’s location in Address field, starting with http://localhost/ or http://127.0.0.1/ 22 21.8.1 XHTML and PHP Fig. 21.15 Fig. 21.23 Requesting test.html from IIS 6 or Apache. Requesting test.php from Apache. 23 21.9 Web Resources • www.microsoft.com/msdownload/ntoptionpack/askwiz.a sp • www.w3.org/Protocols • www.apache.org • httpd.apache.org • httpd.apache.org/docs-2.0 • www.apacheweek.com • linuxtoday.com/stories/18780.html • www.iisanswers.com • www.iisadministrator.com 24 References • Fitzgerald, Jerry and Alan Dennis, 2005. Business Data Communications and Networking. 8th edition. Wiley: New York. 25