Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013.

Slides:



Advertisements
Similar presentations
WEB DESIGN TABLES, PAGE LAYOUT AND FORMS. Page Layout Page Layout is an important part of web design Why do you think your page layout is important?
Advertisements

Lecture 6/2/12. Forms and PHP The PHP $_GET and $_POST variables are used to retrieve information from forms, like user input When dealing with HTML forms.
Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
JavaScript Forms Form Validation Cookies CGI Programs.
HTML Form Processing Learning Web Design – Chapter 9, pp Squirrel Book – Chapter 11, pp
CS 898N – Advanced World Wide Web Technologies Lecture 6: PERL and CGI Chin-Chih Chang
1 Web Search Interfaces. 2 Web Search Interface Web search engines of course need a web-based interface. Search page must accept a query string and submit.
Python and Web Programming
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
Guide To UNIX Using Linux Third Edition
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.
CGI Programming Languages Web Based Software Development July 21, 2005 Song, JaeHa.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
Web server and web browser It’s a take and give policy in between client and server through HTTP(Hyper Text Transport Protocol) Server takes a request.
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.
J2EE Web Fundamentals Lesson 1 Introduction and Overview
1 Homework / Exam Exam 3 –Solutions Posted –Questions? HW8 due next class Final Exam –See posted schedule Websites on UNIX systems Course Evaluations.
PHP Tutorials 02 Olarik Surinta Management Information System Faculty of Informatics.
Advance Database Management Systems Lab no. 5 PHP Web Pages.
Reading Data in Web Pages tMyn1 Reading Data in Web Pages A very common application of PHP is to have an HTML form gather information from a website's.
Overview A plain HTML document is static A CGI program is executed in real-time, so that it can output dynamic information. CGI (Common Gateway Interface)
1 CS 3870/CS 5870 Static and Dynamic Web Pages ASP.NET and IIS.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
HTTP; The World Wide Web Protocol
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,
Server-side Scripting Powering the webs favourite services.
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
Python CGI programming
COMP 321 Week 7. Overview HTML and HTTP Basics Dynamic Web Content ServletsMVC Tomcat in Eclipse Demonstration Lab 7-1 Introduction.
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
Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and check boxes using HTML Add a pull-down.
Lecture # 6 Forms, Widgets and Event Handling. Today Questions: From notes/reading/life? Share Personal Web Page (if not too personal) 1.Introduce: How.
HTML Hyper Text Markup Language A simple introduction.
Java CGI Lecture notes by Theodoros Anagnostopoulos.
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 7: HTTP and CGI Fundamentals of Web Programming.
10/13/2015 ©2006 Scott Miller, University of Victoria 1 Content Serving Static vs. Dynamic Content Web Servers Server Flow Control Rev. 2.0.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
Website Development with PHP and MySQL Saving Data.
Chapter 6 Server-side Programming: Java Servlets
Forms and Server Side Includes. What are Forms? Forms are used to get user input We’ve all used them before. For example, ever had to sign up for courses.
1 © Netskills Quality Internet Training, University of Newcastle HTML Forms © Netskills, Quality Internet Training, University of Newcastle Netskills is.
1 © Copyright 2000 Ethel Schuster The Web… in 15 minutes Ethel Schuster
XHTML & Forms. PHP and the WWW PHP and HTML forms – Forms are the main way users can interact with your PHP scrip Typical usage of the form tag in HTML.
Introduction to JavaScript CS101 Introduction to Computing.
WWW: an Internet application Bill Chu. © Bei-Tseng Chu Aug 2000 WWW Web and HTTP WWW web is an interconnected information servers each server maintains.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
HTLM Forms CS3505. Form Handling in Browser html User Files out form WEbBROWSErWEbBROWSEr User read response submit Get URL?input html Get file html script.
Jan 2001C.Watters1 World Wide Web and E-Commerce Client Side Processing.
ECMM6018 Enterprise Networking for Electronic Commerce Tutorial 7
©SoftMooreSlide 1 Introduction to HTML: Forms ©SoftMooreSlide 2 Forms Forms provide a simple mechanism for collecting user data and submitting it to.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
World Wide Web Components Browsers and Servers CGI Processing Model (Common Gateway Interface) © Norman White, 2001.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
HTML Forms. A form is simply an area that can contain form fields. Form fields are objects that allow the visitor to enter information - for example text.
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.
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)
University of Kansas Department of Electrical Engineering and Computer Science Dr. Susan Gauch April 21, 2005 I T T C Introduction to Web Technologies.
The Common Gateway Interface (CGI) Pat Morin COMP2405.
Section 10.1 Define scripting
Servlets.
Section 17.1 Section 17.2 Add an audio file using HTML
World Wide Web Components
Presentation transcript:

Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013

 WWW and Client Server computing  Forms & CGI programming  Writing a CGI program

 Server computers are located all around the world and respond to requests (messages) from computers running browser software (Netscape, IE)  Browser applications understand HTML, (and now Javascript, Java etc.)

BServer http request Browser sends http request to server (I.e. GET index1.html)

<html><head> Sample Title Sample Title </head><body> Here is some text and a picture Here is some text and a picture </body></html>

BServer http request HTML file Server retrieves file Sends file (index1.html) to Browser

BServer http request HTML index1.html Browser “formats” index1.html May mean retrieving more files In order to display

BServer http request HTML index1.html GET pic1.gif index1.html contains reference to pic1.gif Browser then requests pic1.gif

BServer http request Index1.html GET pic1.gif index1.html pic1.gif Server next sends pic1.gif

BServer http request index1.html GET pic1.gif index1.html pic1.gif pic1.gif Browser displays pic1.gif

 Web Server sends a header in front of each file identifying the file type (HTML,GIF,JPEG etc.)  Most Browsers understand HTML, GIF and TEXT  Browsers can be configured to call external programs to handle new types of files

 These programs are called HELPER applications and dramatically extend the capabilities of the browser, since they can be developed independently of the client software  Examples - Quicktime viewers, sound players, VRML viewers etc.  To see the currently configured viewers go to options on the Browser title bar

 Browser functionality can also be extended by adding plugins.  Plugins are not standalone applications, but executable code that is dynamically linked into the browser when necessary.

 HTML provides an easy to use FORM capability, which allows a wide variety of input forms to be easily generated.  Form data types include  Text input - One line of text  Textarea - Multiple lines of text  Check boxes (on/off)  Radio boxes (1 of N)  Etc.

 Output of Form is formatted and sent to Server, along with the name of a program to process the contents of the form.  The WEB Server takes information from form, and passes it on as input to a Common Gateway Interface Program (CGI)  Output of CGI program is sent back to Client browser as an HTML (or other) file.

 CGI programs can do an almost unlimited set of activities...  Look up info in a database and send it to Browser.  Take input from user and add to a file.  Take input and send to a standard business application  CGI program can be in any language that runs on the server, including a shell language like sh or bash.

B httpserver CGI Program http form content input output HTML (Note, all processing is on server)

 Develop form to collect information from users  Write and test CGI program to handle form information  Put the name of the CGI program in the “ACTION” statement of the form.  Note: program can be on another server.

 Two Types of FORM processing options, GET and POST  GET - parameters sent as additions to URL string. Each individual parameter separated by &  POST - Data sent in message body. This is a more general method and can handle more input data.

 Server sends form (in html document) to client  Client displays form, and user fills in fields  Client sends form info to server (SUBMIT button)  Server runs the CGI program named in the ACTION section of the FORM  CGI program parses data as input  Output of CGI program is sent by the server to the client (i.e. it should be HTML)

 Advantages  Very general model, easy to do really neat things like front end existing applications, databases etc.  Many toolkits available to do common things  Disadvantages  All processing is done on server. May overload server  Interaction is all through forms  Lot’s of data traffic back and forth  Solution  HTML5 and it’s features

 CGI program needs to  Parse form input  Process the input  Generate html output

 GET format  Information is passed as a series of variable=value pairs separated by “&” to program named in action statement by adding them on to the URL (after a “?”)  Simple example – one line form with a field named “userid” and “ACTION=mycgiprog.cgi”  User enters “nwhite”  Browser sends the following to the web server 

 Web server takes the information after the “?” and creates an environment variable named “QUERY_STRING”, then executes the program “mycgiprog.cgi”  QUERY_STRING contains  userid=nwhite  CGI program retrieves value of QUERY_STRING, does appropriate processing, and (optionally) sends an HTML response back

 Both Windows and Unix support environment variables. These are user session variables which contain character strings. Many are automatically created when the user logs in, like PATH, PROMPT etc. Any program can create or retrieve the value of environment variables, so they are often used to pass small amounts of information from one application to another. Different operating systems have different methods for setting and retrieving environment variables. For example, in unix, you can retrieve an environment variables value by putting a $ in front of it I.e. $PATH. In Windows, you put % around it. I.e. %PATH%  Try this in unix  echo $PATH  Or Windows  echo %PATH%

 What if we want have more than one field?  No problem QUERY_STRING can contain many variable=value pairs separated by “&”  i.e. userid=nwhite&password=junk&fname=Norman  Possible problem, how big can environment variables be (how many characters)  GET only useful for limited input

 POST method is more general since it can handle lots of input  Input is passed as a sequence of characters (stdin)  Variable1=value1&Variable2=value2  ….  Environment variable CONTENT_LENGTH is set to the number of characters of input.  Environment variable Request_Method is set to POST (Instead of GET)  Input processing logic needs to be (slightly) different for GET and POST methods

 CGI output is passed back to the browser, hence has to be something (HTML) the browser can understand Like… Content-type: text/html output of HTML from CGI script Sample output What do you think of this?

 List the contents of your “websys” directory  Create a Shell Script named lister.cgi which contains #! /bin/sh # echo “Content-type: text/html” echo “ “ echo Listing echo ls –alt echo

 List the contents of your “websys” directory  With options passed as part of url (type=XXX)  Create a Shell Script named lister.cgi which contains #! /bin/sh # eval QS=`echo $QUERY_STRING` eval `echo $QS|sed –e “s/\&/ /g”` echo “Content-type: text/html” echo echo Listing echo ls *.$type echo

 To run it, put it in your websys directory chmod +rx lister.cgi  Type the following as a URL Your userid

 In the POST method, form data is NOT passed as part of the URL, instead it is passed to the “STANDARD INPUT” of the CGI program.  Advantages  Not limited by max size of environment variables  Users can’t see the input fields  Disadvantages  A little harder to handle  Users can’t save/send the link plus form data  i.e Send the results of a search to someone else

 World-Wide-Web model is much more powerful than it appears on the surface  Easily integrated with existing applications  Easy to add new functionality  CGI model can do lots of things…  Update files  Link to corporate databases  Specialized Applications

 Problems with CGI Model  Need to parse input  Overhead  Need to start up a new program for every request  Scalability  All processing on server, what happens as usage grows?  Reliability  How do we replicate for redundancy?

We will look at unix and how we can use it to develop web applications. Later we will see how to streamline the interaction with AJAX and then HTML5