Chapter 9 Using Perl for CGI Programming. Computation is required to support sophisticated web applications Computation can be done by the server or the.

Slides:



Advertisements
Similar presentations
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 10 Servlets and Java Server Pages.
Advertisements

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 9 Using Perl for CGI Programming.
CGI Programming.
CGI Programming Part 2. Input Tags Many different ways of getting data from the user. The tag is used most often. has a type attribute –Specifies the.
Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013.
Using Perl for CGI Programming
JavaScript Forms Form Validation Cookies CGI Programs.
Servlets and a little bit of Web Services Russell Beale.
COS 381 Day 22. Agenda  Assignment #5 Corrected 2 B’s, 1 C, and 3 D’s  Next Capstone progress report due April 21  Capstone projects are DUE May 10.
 2002 Prentice Hall. All rights reserved. 1 Chapter 6 – Introduction to the Common Gateway Interface (CGI) Outline 6.1 Introduction 6.2 Client and Web.
How the web works: HTTP and CGI explained
COS 381 Day 20. Agenda  Assignment #5 Due  Capstone Progress Reports Overdue Were Due April 7  Capstone projects are DUE May 10 at 1PM  Assignment.
COS 381 Day 23. Agenda  Questions??  Resources Source Code Available for examples in Text Book in Blackboard
Chapter 10 Managing State Information PHP Programming with MySQL.
Guide To UNIX Using Linux Third Edition
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
COS 381 Day 23. Agenda  Questions??  Resources Source Code Available for examples in Text Book in Blackboard
CGI Programming: Part 1. What is CGI? CGI = Common Gateway Interface Provides a standardized way for web browsers to: –Call programs on a server. –Pass.
2440: 141 Web Site Administration Web Server-Side Programming Professor: Enoch E. Damson.
Chapter 10 Servlets and Java Server Pages. A servlet is a Java class designed to be run in the context of a special servlet container An instance of the.
 2004 Prentice Hall, Inc. All rights reserved. Chapter 25 – Perl and CGI (Common Gateway Interface) Outline 25.1 Introduction 25.2 Perl 25.3 String Processing.
Web Development & Design Foundations with XHTML Chapter 9 Key Concepts.
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
1 ‘Dynamic’ Web Pages So far, we have developed ‘static’ web-pages, e.g., cv.html, repair.html and order.html. There is often a requirement to produce.
1 Web Developer & Design Foundations with XHTML Chapter 6 Key Concepts.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Introduction to PHP and Server Side Technology. Slide 2 PHP History Created in 1995 PHP 5.0 is the current version It’s been around since 2004.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Forms and Form Controls Chapter What is a Form?
1 HTML and CGI Scripting CSC8304 – Computing Environments for Bioinformatics - Lecture 10.
Comp2513 Forms and CGI Server Applications Daniel L. Silver, Ph.D.
Chapter 33 CGI Technology for Dynamic Web Documents There are two alternative forms of retrieving web documents. Instead of retrieving static HTML documents,
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
Chapter 16 The World Wide Web. 2 The Web An infrastructure of information combined and the network software used to access it Web page A document that.
1 PHP and MySQL. 2 Topics  Querying Data with PHP  User-Driven Querying  Writing Data with PHP and MySQL PHP and MySQL.
JavaScript, Fourth Edition
2 1 Sending Data Using a Hyperlink CGI/Perl Programming By Diane Zak.
CP476 Internet Computing CGI1 CGI is a common way to provide for specific computations on server side, interactions with users, or access to databases.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
USING PERL FOR CGI PROGRAMMING
Web Server Administration Chapter 7 Installing and Testing a Programming Environment.
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 7: HTTP and CGI Fundamentals of Web Programming.
Chapter 8 Cookies And Security JavaScript, Third Edition.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 9 Using Perl for CGI Programming.
Chapter 9: Perl and CGI Programming CGI Programming Acknowledgement: Some materials are taken from Teach Yourself CGI Programming with PERL 5 in a Week.
Chapter 6 Server-side Programming: Java Servlets
Chapter 10 © 2003 by Addison Wesley Longman, Inc. 1 Chapter 10 Using Perl for CGI Programming.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
3 1 Sending Data Using an Online Form CGI/Perl Programming By Diane Zak.
Netprog 2002 CGI Programming1 CGI Programming CLIENT HTTP SERVER CGI Program http request http response setenv(), dup(), fork(), exec(),...
CP476 Internet Computing CGI1 Cookie –Cookie is a mechanism for a web server recall info of accessing of a client browser –A cookie is an object sent by.
CSE 341, S. Tanimoto Lisp CGI - 1 Lisp CGI Programming for the Web Web servers can invoke Lisp to “intelligently” create web pages on the fly. We will.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
ECMM6018 Enterprise Networking for Electronic Commerce Tutorial 7
CITA 310 Section 7 Installing and Testing a Programming Environment (Textbook Chapter 7)
 Previous lessons have focused on client-side scripts  Programs embedded in the page’s HTML code  Can also execute scripts on the server  Server-side.
 2001 Prentice Hall, Inc. All rights reserved. Chapter 7 - Introduction to Common Gateway Interface (CGI) Outline 7.1Introduction 7.2A Simple HTTP Transaction.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Introduction to CGI PROG. CGI stands for Common Gateway Interface. CGI is a standard programming interface to Web servers that gives us a way to make.
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
Lesson 11. CGI CGI is the interface between a Web page or browser and a Web server that is running a certain program/script. The CGI (Common Gateway Interface)
Chapter 5 © 2002 by Addison Wesley Longman, Inc. 1 Chapter 5 Sebesta: Programming the World Wide Web.
The Common Gateway Interface (CGI) Pat Morin COMP2405.
Chapter 7 - Introduction to Common Gateway Interface (CGI)
WWW and HTTP King Fahd University of Petroleum & Minerals
Chapter 27 WWW and HTTP.
10.1 The Common Gateway Interface
Presentation transcript:

Chapter 9 Using Perl for CGI Programming

Computation is required to support sophisticated web applications Computation can be done by the server or the client (browser) or both The Common Gateway Interface (CGI) is a protocol describing a standard way of providing server-side active web content Under circumstances determined by the server, an HTTP request will cause a program to run The output from the program will be the response returned to the client making the request Data from forms will be encoded in a request sent do the server This data can be used by a CGI program

ASP.NET from Microsoft Executable code embedded in web pages Java Servlets and Java Server Pages Servlets are executable code in Java Java server pages (JSP) are executable code embedded in web pages

There are several common ways a web server can use to determine if a web request should cause a CGI program to execute Usually, the determination is based on the target of the request Certain directories can be designated as containing CGI programs Often cgi-bin is used Certain file extensions can be designated as signifying a CGI program.pl usually identifies a Perl script

A request for a CGI program to executed can be made with a simple link ( tag in HTML) This method is limited Any data sent must be hard-coded into the link The usual way for invoking CGI programs is through the action attribute of a form Data from the form is then encoded and sent with the request

The CGI program generally creates the response by sending output to the standard output stream Using print in Perl The CGI program will usually have to provide the content-type header Content-type: text/html This will be the last line of the response headers and must be followed by a blank line The rest of the response is created by printing the HTML code desired to standard output

Both GET and POST requests under HTTP can be used to carry form data from the browser to the server The data is formatted into a query string Each form of request includes the information in a different way In a GET request, the query string is appended to the URL of the request, with a question mark used to separate it from the first part of the URL In a POST request, the query string is sent as the data part of the request In both cases, the query string is formatted the same

Each unit of data sent is encoded as name = value The name is usually the value of a name attribute of a form widget The value is the string representation of the widget value Several units are combined by separating them with ampersands, & Special characters in name and value are encoded The code is a percent sign, %, followed by the hexadecimal code for the character A space is encoded as %20 Some browsers will encode spaces as +

When the POST method is used, the query string can be read from standard input The CONTENT_LENGTH environment variable tells how many characters can be read When The GET method is used, the query string is given by the value of the environment variable QUERY_STRING

Writing a CGI program from scratch is very tedious Creating HTML requires numerous print statements Retrieving data from the query strings is tricky One of the reasons for Perl’s popularity for CGI programming is the powerful pattern matching facilities which greatly ease the task of parsing a query string The Perl module CGI.pm provides numerous functions to help with both of these problems

Shortcut functions return string values containing HTML code Note, the string must be printed out to actually become part of the response Some functions take no arguments print br; puts the tag into the response Some functions can be given a single argument which becomes the content of the tag print h1(“A Header”) puts A Header into the response

Attributes for tags are provided as attribute/value pairs in the argument list of the shortcut function The arguments are provided in the form of a literal hash Attribute names are preceded by a hyphen, - print textarea(-name => "Description", -rows => "2", -cols => "35"); produces this in the response

Attributes and content can both be provided to a shortcut by giving the attributes explicitly as a hash reference print a({-href => "fruit.html"}, Press here for fruit descriptions"); produces this in the response Press here for fruit descriptions If an array reference is provided for the content, a tag is created for each item, giving the tag all the specified attributes

The head shortcut function provides a standard header The start_html function provides the beginning part of an HTML document, through the start tag The function takes one argument, the document title

The param function takes a name as an argument The function returns the value associated to the name, if any, in the request

The example includes an HTML page, popcorn.html, for placing an order Also it includes a Perl CGI program for processing the data, popcorn.cgi Note, to run this example, you must have a web server configured to run CGI programs, you cannot simply browse to the file on your local system

The survey example is keeps track of data from a simple survey There are three components conelec.html presents the form and links conelec1.cgi processes a survey conelec2.cgi presents a summary of the results

A file is used to store a summary of the data The file is updated by conelec1.cgi after each survey is submitted Care must be taken that two simultaneous requests do not interfere with each other Both CGI programs will use the Perl flock function that will allow only one program at a time access to the file The file is accessed by coneclec2.cgi for each request for a summary

The Tr function will create a sequence of table rows from an argument that is a reference to a list Tr is capitalized to distinguish it from the transliterate function tr Similarly, the th and td functions will produce a sequence of tags from a reference to a list

Note the period between the th and td function calls, this concatenates the results in order to make a single row table({-border => "border"}, caption("Sales Figures"), Tr( [th(["Salesperson", "Mon", "Tues", “Wed", "Thu", "Fri"]), ] ) );

HTTP is a stateless protocol, that is, the server treats each request as completely separate from any other This, however, makes some applications difficult A shopping cart is an object that must be maintained across numerous requests and responses The mechanism of cookies can be used to help maintain state by storing some information on the browser system A cookie is a key/value pair that is keyed to the domain of the server This key/value pair is sent along with any request made by the browser of the same server A cookie has a lifetime which specifies a time at which the cookie is deleted from the browser

Cookies are only returned to the server that created them Cookies can be used to determine usage patterns that might not otherwise be ascertained by a server Browsers generally allow users to limit how cookies are used Browsers usually allow users to remove all cookies currently stored by the browser Systems that depend on cookies will fail if the browser refuses to store them

The cookie function takes a hash with three keys for the name, value and expiration time of a cookie The cookie value produced by this function must be passed to the header function using the –cookie key header(-cookie => $a_cookie) Calling the cookie function with no arguments produces a hash of all cookies from the current request The day_cookie.pl example illustrates using a cookie to store the last time the page was visited