week 1 - introduction to dynamic web pages

Upload: amirul-asyraf

Post on 08-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    1/24

    Slide 1Prepared 4/13/2011

    Introduction to DynamicWeb Pages

    Ken Coar

    [email protected],

    The Apache Group

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    2/24

    Slide 2Prepared 4/13/2011

    Disclaimers

    UNIX is a registered trademark ofX/OpenCompany Ltd

    PostScript is a registered trademark of AdobeSystems, Inc

    All other trademarks are the property of theirrespective owners, and no misuse is intended

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    3/24

    Slide 3Prepared 4/13/2011

    Acknowledgements

    I would like to gratefully acknowledge thecontributions of the following:

    Neil Gregory, Paul ScherrerInstitut

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    4/24

    Slide 4Prepared 4/13/2011

    Copies of This Presentation

    WILL BEavailable online at

    http://Web.Golux.Com/coar/

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    5/24

    Slide 5Prepared 4/13/2011

    Contents

    Whats a dynamic Web page?

    Forms

    Server-side includes

    Server-side scripts

    Client-side scripting

    Java applets

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    6/24

    Slide 6Prepared 4/13/2011

    Whats a Dynamic Web

    Page?

    Dynamic means different things to differentpeople

    Interactive forms

    Customising page content based on clientattributes

    Reactive pages

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    7/24

    Slide 7Prepared 4/13/2011

    Forms

    At base, just a fill-in sheet echoing its papercounterpart

    No client-side data cross-checking orvalidation; real validation must be done byserver upon receipt on a per-form basis

    A form can be no-action (suitable for viewingor read-only field value propagation), or can

    specify an URL to which the form contentswill be sent la script processing

    Facilities include ability to define default fieldvalues, and reset all fields to these defaults atuser selection

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    8/24

    Slide 8Prepared 4/13/2011

    Forms(continued)

    Input types available:

    Multiple choice (checkboxes)

    One-of-many selection (radio button)

    Pick-one from a menu

    Pick-N from a menu

    Text input (one- or multi-line)

    Password entry (echoed as *)

    Hidden data passing from page to page

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    9/24

    Slide 9Prepared 4/13/2011

    ISINDEX

    Poor mans form -- single field, intended forentering search keywords

    Activated by the tag

    Shorthand form to accept input and pass itback to the same URL as an argument (inQUERY_STRING)

    File/script receives contents of index field asnormal script argument input value (GETmethod)

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    10/24

    Slide 10Prepared 4/13/2011

    Server-Side Includes (SSIs)

    Directives embedded in Web page forserverto process before passing page to requestor

    Not all servers support them

    Incurs performance penalty due to parsingoverhead

    Generally needs to be enabled by servermanager

    Servermaysupport per-directory enabling

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    11/24

    Slide 11Prepared 4/13/2011

    Server-Side Includes (SSIs)(continued)

    Typical directives: exec, include, echo

    XSSI (extended SSI) includes conditional

    directives, such as

    I see youre using Internet Explorer.

    Netscapes Mozilla is your browser.

    I dont recognise your browser, so Im

    going to pretend its very dumb.

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    12/24

    Slide 12Prepared 4/13/2011

    Server-Side Scripts

    Applications executed by the server at run-time to process client input or generate

    document in response to client request Some Web servers permit script output to be

    included in other documents

    Some Web servers can be told to executescripts when errors (e.g., 404 Not Found)

    are encountered Information about the original request is

    available to error scripts

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    13/24

    Slide 13Prepared 4/13/2011

    Script Arguments

    Arguments can be passed to scripts byappending them to the script URL separated

    by a question mark Available to scripts in all methods

    As its part of the URL, a particular scriptresponse can be bookmarked as long as noPOST information was included

    http://host.net.com:8080/dir/script.cgi/addl/info?args

    Scheme

    Hostname

    Port

    Directory/filename

    Path Info

    Arguments

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    14/24

    Slide 14Prepared 4/13/2011

    Script Arguments(continued)

    How the script accesses the argumentsdepends upon your server interface

    Special characters are encoded (orescaped) and need to be converted back.This includes non-printing characters andthose with special significance in URLs, suchas slashes (/) and question marks (?)

    Encoding is done by replacing the characterwith a % and the two-digit hexadecimalrepresentation (e.g., / is replaced by %2f)

    Special case: spaces can be replaced with +or%20

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    15/24

    Slide 15Prepared 4/13/2011

    Path Info - Additional

    Information for Scripts

    Whatevers afterthe script-name but beforethe ?args

    Another way to pass information to the script

    As part of the URL, special characters areescaped

    Available to scripts in all methods

    http://host.net.com:8080/dir/script.cgi/addl/info?args

    Scheme

    Hostname

    Port

    Directory/filename

    Path Info

    Arguments

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    16/24

    Slide 16Prepared 4/13/2011

    Using Scripts to Handle

    Errors

    Possible through things like ApachesErrorDocument directive

    Used to prettify and customise error displays,particularly on multi-site hosts

    Use the CGI Status: response headerfield to propagate the error to the client,rather than returning the default 200 OK

    which indicates success -- otherwise anycaches will contain yoursuccessful errormessage (which may be due to a temporarycondition) rather than nothing at all

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    17/24

    Slide 17Prepared 4/13/2011

    Client-Side Scripting

    JavaScript is probably the most widely usedclient-side scripting language

    Usually scripts are embedded in the HTMLpage itself

    Provisions exist for keeping scripts inseparate files, but not all browsers supportthem

    JavaScript can provide run-time validation ofform field contents

    Not all browsers support client-sidescripting!

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    18/24

    Slide 18Prepared 4/13/2011

    The Well-Behaved HTMLPageor If youre going to emit HTML, emit goodHTML

    Page

    metadata

    Actual page

    content(body)

    doctype-declaration

    page title, et cetera

    headings, text,

    graphix, actual

    document content

    {

    {

    HTMLpage

    {

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    19/24

    Slide 19Prepared 4/13/2011

    Embedded JavaScript

    Appears in the HTML page in the container

    Defined by container

    Take care to keep unaware browsers fromtreating it as content:

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    20/24

    Slide 20Prepared 4/13/2011

    Java Applets

    Advantages

    Capabilities are enormous

    Everything a full language can do

    Disadvantages

    Requires a client that can run Java!

    Error reporting can be a problem

    Requires an additional download fromserver

    Java engine startup can be irritating

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    21/24

    Slide 21Prepared 4/13/2011

    Testing Your Pages

    Before announcing the existence of yourpages, you should check them out to verify

    that they look the way you want, and areaccessible to your desired audience

    You should look at your pages with as manydifferent browsers as you can (Netscape,Mosaic, Lynx, Cello, Internet Explorer, et

    cetera) - make sure the various appearancesmatch your expectations, and that things aredisplayed intelligently

    Try to break things

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    22/24

    Slide 22Prepared 4/13/2011

    Testing Your Pages(continued)

    Feed your HTML pages through the W3CHTML syntax validator at

    http://validator.w3.org/

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    23/24

    Slide 23Prepared 4/13/2011

    Going Further

    The Web Project pages:http://www.w3.org/

    RFC2068, the HTTP/1.1 specification HTML Syntax Validator

    http://validator.w3.org/

    CGI Specification:http://www.w3.org/pub/WWW/CGI/

    CGI RFC project:http://Web.Golux.Com/coar/cgi/

    USENET News

  • 8/7/2019 Week 1 - Introduction to Dynamic Web Pages

    24/24

    1998 by Ken A L Coar

    MeepZor Consulting