World Wide Web WeeSan Lee
Roadmap Introduction HTTP URL HTML CGI Apache Server Installation Squid Cache Server Q&A
Introduction Invented by Tim Berners-Lee in 1989/1990 Client-server architecture Servers Apache, Netscape Enterprise Server, MS IIS, etc Clients GUI Mosaic, Netscape, Mozilla, Firefox, Opera, Konqueror, Epiphany, IE, Safari, etc Text Link, wget, emacs, telnet, etc
HTTP Hypertext Transfer Protocol Listen on port 80 or http (/etc/services) $ grep " 80/tcp" /etc/services http80/tcp www RFC2068 defines HTTP/1.0 RFC2616 defines HTTP/1.1 Built on top of TCP
HTTP (cont) $ telnet 80 Trying Connected to Escape character is '^]'. GET / HTTP/1.0 HTTP/ OK Date: Mon, 16 Jul :47:38 GMT Server: Apache/2.2.3 (CentOS) Last-Modified: Mon, 16 Jul :08:44 GMT ETag: "889f0f-d5-71bab00" Accept-Ranges: bytes Content-Length: 213 Connection: close Content-Type: text/html; charset=UTF-8 …
URL Uniform Resource Locator Eg. http – protocol/application – hostname 80 – port ~weesan/ - directory Index.html - filename
URL (cont) Other protocols file file://etc/passwd ftp ftp://ftp.slackware.com/pub/slackware/slackware-12.0/ https mailto
HTML Hypertext Markup Language Eg. A sample HTML Me
CGI Common Gateway Interface A way to communicate with external programs and generate pages dynamically Example of external scripts/programs: Perl, PHP, Python, Ruby, Bash, C/C++, Cobol, etc Servers support plugins for performance, eg. libphp4.so libphp5.so libperl.so
Apache Server Installation $ yum install httpd Files are distributed all over the places /etc/httpd/conf/httpd.conf /usr/sbin/httpd /usr/sbin/apachectl /var/www/html/ /var/www/cgi-bin/ /var/log/httpd/access_log /var/log/httpd/error_log
Apache Server Installation (cont) To start the httpd server $ /etc/init.d/httpd start To restart the httpd server $ /etc/init.d/httpd restart To stop the httpd server $ /etc/init.d/httpd stop To start the httpd server on reboot $ chkconfig --level 2345 httpd on
Squid Cache Server A free version spawned from Harvest Cache Project from USC, which became NetCache, and 8 months later, it was acquired by NetApp Caches objects locally Saves bandwidth Reduces latency Fast, not process forking for new connections Supports Hierarchy Caching Listen on port 3128
Squid Cache Server (cont) $ telnet cache.cs.ucr.edu 3128 Trying cache.cs.ucr.edu... Connected to cache.cs.ucr.edu. Escape character is '^]'. GET HTTP/1.0 Host: HTTP/ OK Date: Thu, 08 May :11:19 GMT Server: Apache/2.2.3 (CentOS) X-Powered-By: PHP/5.1.6 Content-Type: text/html; charset=UTF-8 X-Cache: MISS from cache.cs.ucr.edu Via: 1.0 cache.cs.ucr.edu:3128 (squid/2.6.STABLE14) Proxy-Connection: close …
Squid Cache Server (cont).com.edu.net GET HTTP/1.0http://
Squid Cache Server (cont) Accelerator Mode Reverse Proxy To make web server faster for static pages Transparent Caching Uses iptables Configuration-free from clients
Squid Cache Server (cont) To create swap directories $ squid –z Run only once!!! To run Squid Cache Server $ RunCache To reload the configuration $ squid -k reconfiguration To rotate the log files $ squid -k rotate
Reference LAH Ch 21: Web Hosting and Internet Servers Apache Web Server Squid Cache Server