fall 2005csi 4118 – university of ottawa1 part 4 web technologies: http, cgi, php,java applets)

78
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)

Upload: norah-fowler

Post on 31-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 1

Part 4

Web technologies: HTTP, CGI,PHP,Java applets)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 2

World Wide Web

Major application protocol used on the Internet

Simple interface Two concepts

Point Click

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 3

Web Components

Browser Web server Hypermedia links Document representation Transfer protocol

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 4

Browser

Application program User’s interface to Web Becomes Web client to fetch information from

Web server Displays information for user

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 5

Web Server

Running program Stores set of Web documents Responds to request from browser by

sending copy of document

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 6

Hypermedia Concept

Web document contains mixture of Text Images Selectable pointers to other Web pages

Known as hypermedia

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 7

Hypermedia Link On A Web Document

Associated with object or area on screen Internally like a symbolic link Advantage

Can reference document on another computer Disadvantage

Can become invalid

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 8

Web Document

Called a web page One web page per file Can contain

Binary image Text file

Text standard Readable representation ASCII Specifies contents and layout Known as Hypertext Markup Language

(HTML)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 9

Terminology

Markup language Gives general layout guidelines Does not specify exact placement or format

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 10

Consequence of UsingA Markup Language

Web documents use the HyperText Markup Language representation. Instead of specifying a detailed document format, HTML allows a document to contain general guidelines for display, and allows a browser to choose details. Consequently, two browsers may display an HTML document differently.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 11

HTML Details

Document is free-format Embedded tags give display guidelines Tags often appear in pairs Tag format

Beginning tag

Ending tag<TAGNAME>

</TAGNAME>

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 12

General Form of HTML Document

<HTML><HEAD>

<TITLE>text that forms the document title

</TITLE></HEAD><BODY>

body of the document appears here</BODY>

</HTML>

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 13

Document Format

<HTML><HEAD><TITLE> text that forms the document title</TITLE></HEAD><BODY>body of the document appears here</BODY></HTML>

HTML source is free-formPrevious example equivalent to this

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 14

Example HTML Tags

Begin paragraph

<P> Line break (force a new line)

<BR> Main heading (largest, boldest font)

<H1> … text … </H1> Next heading (next largest)

<H2> … text … </H2>

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 15

Example of HTML Line Break

InputHello there.<BR>This is

an example<BR>of HTML.

OutputHello there.

This is an example

of HTML.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 16

Example of HTML Line Break (continued)

InputHello there.<BR><BR>This

shows<BR>HTML spacing.

OutputHello there.

This shows

HTML spacing.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 17

Example of HTML Headings

InputHello.<BR><H1>This is a

heading</H1><BR>Back to normal.

OutputHello.

This is a headingBack to normal.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 18

Other HTML Features

Numbered or unnumbered lists Images Links to other pages

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 19

Images in HTML

Explicitly denoted as image Specified with image tag Can specify alignment with text Example image tags

<IMG SRC=“file_name”>

<IMG SRC=“file_name” ALIGN=MIDDLE>

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 20

Images in HTML

Here is a picture. <IMG SRC=“file_name” ALIGN=MIDDLE>

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 21

Links to Other Pages

Symbolic representation Embedded in HTML document Browser

Hides text of link from user Associates link with item on page Makes item selectable

Called Uniform Resource Locator (URL)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 22

General Form of URL

Only domain name required Defaults

Protocol is http Port is 80 Path is index.html

protocol :// domain_name : port / item_name

name of accessprotocol to use domain name of

server computer

protocol portnumber path name

of item

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 23

Link in HTML

Link specified in <A> tag Applies to successive items Ends with </A> Called anchor

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 24

Example of Anchor Tag in HTML

InputThe text is published by<A HREF=http://www.prenhall.com>Prentice Hall, </A> one of the larger publishers of ComputerScience textbooks.

ProducesThe text is published by Prentice Hall, one of the larger publishers of Computer Science textbooks.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 25

Use of Client-Server Paradigm

Web server Makes set of pages available Uses port 80

Web client Called a browser Creates TCP connections to server Sends requests for items

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 26

Use of Client-Server Paradigm

Primary protocol used between browser and server known as HyperText Transfer Protocol (HTTP)

HTTP requests sent as text (ASCII) GET: request an item from the server HEAD: request status information about an

item POST: send data to the server

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 27

Use of Client-Server Paradigm

Response from server begins with ASCII header Status code (200 = handled request)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 28

Inside a Browser

Main controller Receives input from user Invokes client and interpreter

Clients One or more built into browser Uses network to fetch items

Interpreter One or more built in Displays items

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 29

Illustration of a Browser

Browser contains many components

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 30

Alternative Protocol Example

File transfer service Protocol is FTP Example URL

ftp://ftp.cs.purdue.edu/pub/comer/netbook/client.c

Can be used in anchor tag

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 31

Other Markup Languages

Extensible Markup Language (XML) does not specify layout

Tag names can be created as needed Example for a corporate phone book:

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 32

Caching in Browsers

Cache for recently accessed HTML pages Images

Item normally fetched from cache User can override HTTP can verify timestamp before fetching

new copy

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 33

Types of Web Pages

Static Stored in file Unchanging

Dynamic Formed by server Created on demand Output from a program Use Common Gateway Interface (CGI)

technology

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 34

Types of Web Pages (cont)

Active Executed at client Consists of a computer program Can interact with user Use Java technology

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 35

Summary of Web Document TypesWeb 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 36

CGI Technology

URL specifies Location of Web server CGI program on that server Arguments to program

Web server Uses TCP for communication Accepts HTTP request from client Runs specified CGI program Returns output to client

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 37

CGI Technology (cont)

CGI program Performs arbitrary computation Often written in a scripting language Produces output file when run Starts output with header

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 38

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 39

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 40

Example CGI Script

Generates document Document contains three lines of text

Header Blank line Document creation date

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 41

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 42

Example Environment Variables

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 43

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 44

Long-Term State Information

Program lifetime CGI program invoked by server Program exits after generating output

To maintain persistent data Write to file on disk Read from file on disk

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 45

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 46

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 47

Short-Term State Information

Argument encodes number of times executed

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 48

Example of Script Execution

Initial documentContent-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 displayThis is the initial page.

Click here to refresh the page.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 49

Example of Script Execution

Generated outputContent-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 displayYou have displayed this page 2 times.

Click here to refresh the page.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 50

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 51

Server-Side Scripting

ASP (Active Server Pages) JSP (Java Server Pages) PHP (Perl Helper Pages) ColdFusion

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 52

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 53

Continuously Changing Information Needed for

Animations Rapid updates (e.g., stock prices)

Achieved with two mechanisms Server push Active document

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 54

Server Push Technology

Client forms connection Server sends updates repeatedly Impractical

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 55

Active Document Technology

Server Sends computer program to client

Client Runs program locally

Program Controls display Interacts with user

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 56

Active Document Representation

Desire Platform independence Efficient execution High-speed data transmission Late binding

Consequence Compact representation Interpretive execution

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 57

Active Document Translation

Compiler produces machine-independent binary Browser interprets binary

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 58

Java Technology

Developed by Sun Microsystems Used for

Conventional applications Active documents (applets)

Includes Programming language Run-time system Class library

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 59

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 60

Java Run-Time Environment Characteristics

Interpretative execution Automatic garbage collection Multi-threaded execution Internet access Graphics support

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 61

Java Library

Classes for 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

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 62

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 63

Example Java Applet

Window with two items Text area Button

Change text when button clicked

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 64

Illustration of Applet Display

Initial

After user clicks button

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 65

Example Applet Code

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 66

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 67

Java Functionality

HTML interface Controls display Interacts with user

HTTP interface Accesses remote Web documents Invokes other applets

Exceptions Indicate unanticipated circumstances Can be caught and handled

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 68

Example Applet Code

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 69

Example Applet Code (continued)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 70

Illustration of Applet Display

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 71

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 72

JavaScript Example

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 73

JavaScript Example

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 74

Summary

Web is major application in Internet Client

Called browser Fetches and displays document

Web documents Stored on servers Standard representation is HTML

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 75

Summary (continued)

HTML Markup language Uses tags embedded in text

URL components Protocol Domain name of server Protocol port number Path of item Only domain is required

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 76

Summary (continued)

Static web page Unchanging

Dynamic web page Output from a program on the server

Active web page Runs in browser Consists of a computer program

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 77

Summary (continued)

Dynamic web page technology Known as CGI CGI program usually a script Document begins with header line URL can contain arguments

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 78

Summary (continued)

Active web page technology Known as Java Programming language plus runtime support Document called applet