You are on page 1of 17

World Wide Web

WeeSan Lee <weesan@cs.ucr.edu> http://www.cs.ucr.edu/~weesan/cs183/

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 GUI

Clients

Mosaic, Netscape, Mozilla, Firefox, Opera, Konqueror, Epiphany, IE, Safari, etc Link, wget, emacs, telnet, etc

Text

HTTP

Hypertext Transfer Protocol Listen on port 80 or http (/etc/services)

$ grep " 80/tcp" /etc/services

http

80/tcp

www

RFC2068 defines HTTP/1.0 RFC2616 defines HTTP/1.1 Built on top of TCP

HTTP (cont)

$ telnet www.cs.ucr.edu 80 Trying 138.23.169.15... Connected to www.cs.ucr.edu. Escape character is '^]'. GET / HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 16 Jul 2007 20:47:38 GMT Server: Apache/2.2.3 (CentOS) Last-Modified: Mon, 16 Jul 2007 20: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://www.cs.ucr.edu:80/~weesan/index.html http protocol/application www.cs.ucr.edu 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://www.cs.ucr.edu/ mailto:weesan@cs.ucr.edu

https

mailto

HTML

Hypertext Markup Language Eg. <head>

<title>A sample HTML</title>

</head> <body>

<a href=mailto:weesan@cs.ucr.edu>Me</a>

</body>

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


libphp4.so libphp5.so libperl.so

Servers support plugins for performance, eg.


Apache Server Installation

http://www.apache.org/ $ 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
$ /etc/init.d/httpd restart $ /etc/init.d/httpd stop $ chkconfig --level 2345 httpd on

To restart the httpd server

To stop the httpd server

To start the httpd server on reboot

Squid Cache Server

http://www.squid-cache.org/ 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://www.cs.ucr.edu/~weesan/cs183/login.php HTTP/1.0 Host: www.cs.ucr.edu

HTTP/1.0 200 OK Date: Thu, 08 May 2008 07: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)

.edu .com

.net

GET http://www.cs.ucr.edu HTTP/1.0

Squid Cache Server (cont)

Accelerator Mode

Reverse Proxy To make web server faster for static pages


Uses iptables Configuration-free from clients

Transparent Caching

Squid Cache Server (cont)

To create swap directories

$ squid z Run only once!!! $ RunCache


$ squid -k reconfiguration $ squid -k rotate

To run Squid Cache Server

To reload the configuration

To rotate the log files

Reference

LAH

Ch 21: Web Hosting and Internet Servers


http://www.apache.org/ http://www.squid-cache.org/

Apache Web Server

Squid Cache Server

You might also like