Transcript Web server

159.339
Quick
Tour
of
the
Web
LECTURE
Technologies:
The BIG picture
A bird’s eye view of the different
web technologies that we shall
explore and study.
Client-Server
Client
Web
browser
159.339
requests an Internet
resource by
specifying a URL and
providing input via HTTP
encoded strings
OS
•Usually we want to open an HTML file from some
website, but we can also open a program alternatively.
HTML supports Javascript, DOM, CSS, HTML Events
Client-Server
Client
Web
browser
159.339
requests an Internet
resource by
specifying a URL and
providing input via HTTP
encoded strings
Server
os
Web
server
os
Internet
Network Core
Client-Server
Client
Web
browser
159.339
Server-side program
works out the necessary
business logic and
dynamically builds an
HTML response.
Server
os
Web
server
os
Internet
Client-Server
Client
Web
browser
159.339
Server-side program
sends back output as
HTML using HTTP as
transport mechanism
Server
Web
server
Internet
Client-Server
Client
Web
browser
159.339
Client-side program (Internet Explorer,
Firefox) displays the HTML output
• HTML text
• Graphics
• Streaming video/audio
• XML
Server
Web
server
Internet
Our own webserver
159.339
•Our codes might be embedded into an HTML, or viceversa. It may generate an HTML on its own as well.
Server
Web
server
My codes
HTML
MySQL
Client
Operating System
Web
browser
Internet
PHP
Xitami Webserver
• free, fast and open source professional web server, written in
ANSI C
• Server supports HTTP/1.0, FTP, CGI/1.1, SSI protocols
• Security: basic authentication per directory, FTP access rights per
user and per directory
• Deployment: installs ready-to-run, portable to Windows, OS/2,
Unix, OpenVMS, fully portable web sites and web applications;
• Performance: internal multithreading engine, fast even on slower
systems
• Configuration: editable config files, or through a web-based
administration interface (WBA)
Documentation: http://legacy.imatix.com/html/xitami/
159.339
159.339
Simple CGI Demonstration
Let’s have a look at a very simple program (CGI) running in the server side
CGI - The executable file generated out of a C program.
Step 1. Run your webserver.
Step 2. Using a browser, request for the HTML file
containing our program from the server.
Warning! You should specify the port number used by your
webserver!
HTTP Protocol
159.339
HTTP and TCP/IP
159.339
• Webserver supports HTTP.
• HTTP compliancy is implemented
using TCP/IP components.
Server
Web
server
My codes
HTTP
HTML
MySQL
Client
Operating System
Web
browser
TCP/IP
Internet
PHP
Network Core
159.339
What’s in the network core?
Server
Web
server
My codes
HTTP
HTML
MySQL
Client
Operating System
Web
browser
TCP/IP
Internet
PHP
Validating HTML
Client
Web
browser
159.339
How to validate your HTML and CSS files?
We want to write HTML pages + CSS files
that are interoperable across many
platforms (OS + web browser combination)
Server
Web
server
http://www.w3.org/QA/Tools/
Editor
What editor can we use to assist us in writing PHP,
Javascript, HTML, CSS files, etc.?
phpDesigner Personal Edition
• a free editor for your web-development.
• rapid fast and full-featured PHP editor and PHP IDE with
built-in HTML, CSS and JavaScript editors and FTP/SFTP!
Link: http://www.mpsoftware.dk/
159.339
PuTTY
159.339
Using a simple tool called PuTTY, examine the HTTP protocol in action
when a web client interacts with your webserver (Xitami, running in your
own machine).
PuTTY is a free implementation of Telnet and SSH for Windows and Unix
platforms, along with an xterm terminal emulator. It is written and
maintained primarily by Simon Tatham.
What is the IP address of your machine? Ipconfig /all
Is your server running properly? What was the server’s response?
Which port number is open? netstat -anop TCP
http://surf11.com/entry/176/command-to-show-open-tcp-ports-windows
What’s next?
159.339
We shall be looking at all the details of prominent
internet programming languages and technology but we
shall study how to write HTML and CSS documents
first.
Next meeting, I shall provide a good background on the
nuts and bolts of the internet so that you may have
knowledge of the essential protocols that will be
interacting with our web server.
Servlets
159.339
CLIENT
Servlets run inside a Web Container - the component of the web server
that runs and interacts with servlets
Servlets
159.339
HTML, WML, XML
CLIENT
Servlets run inside a Web Container - the component of the web server
that runs and interacts with servlets
Servlet is running on the server listening for requests
When a request comes in, a new thread is generated by the web
container.
NetBeans
•Servlets go into a specific directory structure.
•NetBeans will create that for you.
• Compile, load, deploy your servlets.
Link: http://netbeans.org/downloads/
159.339
JSP
159.339
JSP encourages you to:
– Separate the (Java) code that creates the content
from the (HTML) code that presents it
– Have different members of your team work on the HTML layout and do
the Java programming
JSP vs. Competing tech.159.339
• JSP vs PHP
– Much richer language for the dynamic part
– Better tool support
– More resource efficient
• JSP vs pure servlets
– More convenient to create HTML
– Can use standard tools
– Divide and conquer
• JSP vs client-side Javascript
– You control the server, not the client
• JSP vs .NET
– Open standards: Portable to multiple servers and operating systems
• JSP vs static HTML
– Obvious!