Presentation on theme: "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."— Presentation transcript:
What is CGI? CGI = Common Gateway Interface Provides a standardized way for web browsers to: –Call programs on a server. –Pass data to programs on a server. –Receive responses from programs on a server.
What is CGI? (cont) CGI is the interface between server programs and other software. CGI is not a Perl specific concept. Any language can produce CGI programs. Why Perl? –Perl provides a nice interface for creating CGI scripts.
How Does CGI Work? Phase 1: Create. Phase 2: Request/Execute. Phase 3: Respond/Display.
Phase 1 A CGI script is created. –e.g. a Perl program to do your taxes. The script is placed on a server. –Made executable. –Given appropriate permissions. A webpage is created and linked to the CGI script. –Webpage is the script’s interface to the world.
Phase 2 A person visits the webpage and submits a request to run the script. Browser contacts the server with the CGI script: –Asks to run the script. –Passes input parameters to the script. Server runs the script on the input parameters.
Phase 3 Script produces output in the form of HTML. Server takes the output and returns it to the web browser. Browser displays the output as an HTML page. –Page may reference other CGI scripts.
An Overview of the Process Server CGI Program Input/ Output Request HTML
Calling a CGI Program CGI programs are called from HTML files. A common/simple way is with the HREF attribute of the anchor ( ) tag. For example, DO IT
Returning the Output CGI programs must create HTML output to return to the client. –HTML is the common language between the client and the CGI program. Communication with client is through standard output. –Output goes to server and then goes to screen. Use print function to send HTML output to client.
HTML OUTPUT First line of HTML output must specify the type: –i.e. type of the content of the output. The type is usually text/html. For example, –print “Content-type: text/html\n\n”; There must be a blank line after the first line.
More Powerful Interaction Many webpages gather information from their visitors. A more powerful interaction between CGI program and browser is needed. This interaction is provided by forms.
Forms A form is a collection of widgets in a web page. Solicit responses from the user. A form must include a submit button! When the submit button is clicked: –The CGI program specified in the form is contacted. –A string representation of the widgets’ values is sent to the server.
Form Values Remember a form’s values are sent to the server as a string. Represented as a sequence of name=value pairs: –name is the widget’s name. –value is the widget’s value. Values are textual only! –Other data types cannot be sent. Validity of values must be checked by CGI program.
Get vs. Post There are two ways to send a form’s values to a CGI program. Get is the default method. –Data string is attached to URL. –Seen in browser’s address bar. –Server removes string from URL. –Stored in environment variable, QUERY_STRING. Post is the optional method. –Data string is sent through standard input. –CGI program can simply read it. –Length of string is stored in environment variable, CONTENT_LENGTH.
Creating a Form tags are used to create a form. For example, …