4.0-CGI&WebDocumentT..

Download Report

Transcript 4.0-CGI&WebDocumentT..

Part 4
Web technologies: HTTP, CGI,
PHP,Java applets)
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
1
Types of Web Pages

Static



Stored in file
Unchanging
Dynamic




FALL 2005
Formed by server
Created on demand
Output from a program
Use Common Gateway Interface (CGI)
technology
CSI 4118 – UNIVERSITY OF OTTAWA
2
Types of Web Pages (cont)

Active




FALL 2005
Executed at client
Consists of a computer program
Can interact with user
Use Java technology
CSI 4118 – UNIVERSITY OF OTTAWA
3
Summary of Web Document
Types
Web documents can be grouped into three
categories depending on when the information
in the document changes. The information in a
static document remains unchanged until the
author revises the document. The information
in a dynamic document can change whenever
a server receives a request for the document.
Information displayed by an active document
can change after the document has been
loaded into a browser.
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
4
CGI Technology

URL specifies




Location of Web server
CGI program on that server
Arguments to program
Web server




FALL 2005
Uses TCP for communication
Accepts HTTP request from client
Runs specified CGI program
Returns output to client
CSI 4118 – UNIVERSITY OF OTTAWA
5
CGI Technology (cont)

CGI program




FALL 2005
Performs arbitrary computation
Often written in a scripting language
Produces output file when run
Starts output with header
CSI 4118 – UNIVERSITY OF OTTAWA
6
Header in CGI Output


Stops at first blank line
Identifies



Encoding used
Type of document
Format
keyword: information
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
7
CGI Header Examples
HTML document header
Content Type: text/html

Text document header
Content Type: text/plain

Redirection header
Location: /over_here/item4

FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
8
Example CGI Script


Generates document
Document contains three lines of text



FALL 2005
Header
Blank line
Document creation date
CSI 4118 – UNIVERSITY OF OTTAWA
9
Parameters




CGI programs can be parameterized
URL can contain arguments that are passed
to CGI program
Question mark separates CGI path from
arguments
Server places information following question
mark in environment variable
QUERY_STRING
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
10
Example Environment
Variables
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
11
Encoding Information in a URL




Information that program stores between
invocations: state information
Information passed to browser in form of
cookie
Cookie consists of name/value pair
Long term (persistent) or short term (session)
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
12
Long-Term State Information

Program lifetime



CGI program invoked by server
Program exits after generating output
To maintain persistent data


FALL 2005
Write to file on disk
Read from file on disk
CSI 4118 – UNIVERSITY OF OTTAWA
13
Long-Term State Information



Client’s IP address in environment variable
Check if address in file
Respond to client
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
14
Short-Term State Information


Each invocation of a dynamic document
program can produce a document containing
a new set of URLs
Use new arguments in new URLs
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
15
Short-Term State Information

Argument encodes number of times executed
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
16
Example of Script Execution

Initial document
Content-type: text/html
<HTML>
This is the initial page.<BR><BR>
<A HREF=“http://www.nonexist.com/cgi/ex4?1”>
Click here to refresh the page.</A> </HTML>
Resulting display
This is the initial page.

Click here to refresh the page.
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
17
Example of Script Execution

Generated output
Content-type: text/html
<HTML>
You have displayed this page 2 times.<BR><BR>
<A HREF=“http://www.nonexist.com/cgi/ex4?2”>
Click here to refresh the page.</A> </HTML>
Resulting display
You have displayed this page 2 times.

Click here to refresh the page.
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
18
Generated URL Values
When it generates a document, a dynamic
document program can embed state
information as arguments in URLs. The
argument string is passed to the program for
the URL, enabling a program to pass state
information from one invocation to the next.
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
19
Server-Side Scripting




ASP (Active Server Pages)
JSP (Java Server Pages)
PHP (Perl Helper Pages)
ColdFusion
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
20
Server-Side Scripting
Server-side scripting technologies allow a
dynamic page to be created from a template or
skeleton that contains embedded commands or
program scripts. Instead of using a computer
program to generate an entire page, an
interpreter copies the page and replaces only
the scripting commands.
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
21
Continuously Changing
Information

Needed for



Animations
Rapid updates (e.g., stock prices)
Achieved with two mechanisms


FALL 2005
Server push
Active document
CSI 4118 – UNIVERSITY OF OTTAWA
22
Server Push Technology



Client forms connection
Server sends updates repeatedly
Impractical
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
23
Active Document Technology

Server


Client


Sends computer program to client
Runs program locally
Program


FALL 2005
Controls display
Interacts with user
CSI 4118 – UNIVERSITY OF OTTAWA
24
Active Document
Representation

Desire





Platform independence
Efficient execution
High-speed data transmission
Late binding
Consequence


FALL 2005
Compact representation
Interpretive execution
CSI 4118 – UNIVERSITY OF OTTAWA
25
Active Document Translation


Compiler produces machine-independent
binary
Browser interprets binary
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
26
Java Technology


Developed by Sun Microsystems
Used for



Conventional applications
Active documents (applets)
Includes



FALL 2005
Programming language
Run-time system
Class library
CSI 4118 – UNIVERSITY OF OTTAWA
27
Java Language Characteristics








High level
General purpose
Similar to C++
Object oriented
Dynamic
Strongly typed
Statically type checked
Concurrent
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
28
Java Run-Time Environment
Characteristics





Interpretative execution
Automatic garbage collection
Multi-threaded execution
Internet access
Graphics support
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
29
Java Library

Classes for








FALL 2005
Graphics manipulation
Low-level network I/O
Interaction with a Web server
Run-time system access
File I/O
Conventional data structures
Event capture
Exception handling
CSI 4118 – UNIVERSITY OF OTTAWA
30
Choice of Graphics Interface
Java includes an extensive graphics toolkit that
consists of run-time support for graphics as well as
interface software. The toolkit allows a programmer
to choose a high-level interface, in which the toolkit
handles details, or a low-level interface, in which the
applet handles details.
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
31
Example Java Applet

Window with two items



Text area
Button
Change text when button clicked
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
32
Illustration of Applet Display

Initial

After user clicks button
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
33
Example Applet Code
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
34
Applet Invocation



Available in HTML
Uses applet tag
Specifies



Codebase (machine and path)
Code (specific class to run)
Example
<applet codebase=“www.nonexist.com/pth”
code=“bbb.class”>
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
35
Java Functionality

HTML interface



HTTP interface



Controls display
Interacts with user
Accesses remote Web documents
Invokes other applets
Exceptions


FALL 2005
Indicate unanticipated circumstances
Can be caught and handled
CSI 4118 – UNIVERSITY OF OTTAWA
36
Example Applet Code
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
37
Example Applet Code
(continued)
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
38
Illustration of Applet Display
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
39
JavaScript Technology




Alternative to Java technology
Provides scripting language
Browser reads and interprets script in source
form
JavaScript can be integrated with HTML
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
40
JavaScript Example
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
41
JavaScript Example
FALL 2005
CSI 4118 – UNIVERSITY OF OTTAWA
42
Summary


Web is major application in Internet
Client



Called browser
Fetches and displays document
Web documents


FALL 2005
Stored on servers
Standard representation is HTML
CSI 4118 – UNIVERSITY OF OTTAWA
43
Summary (continued)

HTML



Markup language
Uses tags embedded in text
URL components





FALL 2005
Protocol
Domain name of server
Protocol port number
Path of item
Only domain is required
CSI 4118 – UNIVERSITY OF OTTAWA
44
Summary (continued)

Static web page


Dynamic web page


Unchanging
Output from a program on the server
Active web page


FALL 2005
Runs in browser
Consists of a computer program
CSI 4118 – UNIVERSITY OF OTTAWA
45
Summary (continued)

Dynamic web page technology




FALL 2005
Known as CGI
CGI program usually a script
Document begins with header line
URL can contain arguments
CSI 4118 – UNIVERSITY OF OTTAWA
46
Summary (continued)

Active web page technology



FALL 2005
Known as Java
Programming language plus runtime support
Document called applet
CSI 4118 – UNIVERSITY OF OTTAWA
47