7 Why Use Perl for CGI?

Size: px
Start display at page:

Download "7 Why Use Perl for CGI?"

Transcription

1 7 Why Use Perl for CGI? Perl is the de facto standard for CGI programming for a number of reasons, but perhaps the most important are: Socket Support: Perl makes it easy to create programs that interface seamlessly with Internet protocols. Your CGI program can send a Web page in response to a transaction and send a series of messages to inform interested people that the transaction happened. Pattern Matching: Perl s regular expression support makes it ideal for handling form data and searching text. Flexible Text Handling: The way that Perl handles strings, in terms of memory allocation and de-allocation, fades into the background as you program. You simply can ignore the details of concatenating, copying, and creating new strings. There are some times when a mature CGI application should be ported to C or another compiled language. These are the Web applications where speed is important. If you expect to have a very active site, you probably want to move to a compiled language because they run faster. 7.5 CGI Apps versus Java Applets CGI and Java are two totally different animals. CGI is a specification that can be used by any programming language. CGI applications are run on a Web server. Java is a programming language that is run on the client side. CGI applications should be designed to take advantage of the centralized nature of a Web server. They are great for searching databases, processing HTML form data, and other applications that require limited interaction with a user. Java applications are good when you need a high degree of interaction with users: for example, games or animation. Java programs need to be kept relatively small because they are transmitted through the Internet to the client. CGI applications, on the other hand, can be as large as needed because they reside and are executed on the Web server. You can design your Web site to use both Java and CGI applications. For example, you might want to use Java on the client side to do field validation when collecting information on a form. Then once the input has been validated, the Java application can send the information to a CGI application on the Web server where the database resides.

2 7.6 Should You Use CGI Modules? There are a number of functions available in modules for CGI. Rather than reinventing the wheel, use the CGI modules that are available on the Internet at CGI::Lite will be enough for general purposes. This is already installed through Active Perl installed on the lab machines. We will be using the CGI module CGI.pm which will be included using the line: use CGI qw(:standard); at the beginning of the Perl script. 7.7 Some Raw Details of CGI Programming in Perl CGI Script Output A CGI script is programmed so that it MUST send information back to the browser in the following format: The Output Header A Blank Line The Output Data CGI Output Header A browser can accept input in a variety of forms. Depending on the specified form it will call different mechanisms to display the data. The output header of a CGI script must specify an output type to tell the server and eventually browser how to proceed with the rest of the CGI output. There are 3 forms of Header Type: Content-Type Location Status Content-Type is the most popular type. We now consider this further. We will meet the other types later. NOTE: Between the Header and Data there MUST be a blank line Content-Types The following are common formats/content-types (there are others): Format Content-Type HTML Text text/html text/plain

3 Gif JPEG Postscript MPEG image/gif image/jpeg application/postscript video/mpeg To declare the Content-Type your CGI script must output: Content-Type: content-type specification Typically the Content-Type will be declared to produce HTML. So the first line of our CGI script will look this: Content-Type: text/html Depending on the Content-Type defined, the data that follows the header declaration will vary. If it is HTML that follows then the CGI script must output standard HTML syntax. Thus to produce a Web page that sends a simple line of text "Hello World!" to a browser a CGI script must output: Content-Type: text/html <html> <head> <title>hello, world!</title> </head> <body> <h1>hello, world!</h1> </body> </html> A First Perl CGI Script without CGI module help Every Perl program MUST obey the following format: A first line consisting of: #!/usr/bin/perl The rest of the program consisting of legal Perl syntax and commands. For CGI the Perl output must be in HTML -- this is where Perl is really handy. Strictly speaking the first line is only required for running Perl programs on UNIX machines. Since windows does not care about this line and the intended

4 destination of a lot of Perl scripts is a UNIX/Linux machine it is a good idea to make this the first line of every perl program. To output from a Perl script you use the print statement: The first line of our CGI script must be `` Content-Type: text/html'' and the print statement must have 2 \n characters: One to terminate the current line, and the second to produce the required blank line between CGI header and data. print "Content-Type: text/html\n\n"; A complete first (hello.plx) program is a follows: #!/usr/bin/perl # hello.pl - My first CGI program print "Content-Type: text/html\n\n"; # Note there is a newline printed between # this header and Data # Simple HTML code follows print "<html> <head>\n"; print "<title>hello, world!</title>"; print "</head>\n"; print "<body>\n"; print "<h1>hello, world!</h1>\n"; print "</body> </html>\n"; HTTP Headers The first line of output for most CGI programs must be an HTTP header that tells the client Web browser what type of output it is sending back via STDOUT. For example, the Location header is used to redirect the client Web browser to another Web page. For example, let's say that your CGI script is designed to randomly choose from among 10 different URLs in order to determine the next Web page to display. Once the new Web page is chosen, your program outputs it like this: print("location: $nextpage\n\n"); Once the Location header has been printed, nothing else should be printed. That is all the information that the client Web browser needs.

5 7.7.4 URL Encoding One of the limitations that the WWW organizations have placed on the HTTP protocol is that the content of the commands, responses, and data that are passed between client and server should be clearly defined. It is sometimes difficult to tell simply from the context whether a space character is a field delimiter or an actual space character to add whitespace between two words. To clear up the ambiguity, the URL encoding scheme was created. Any spaces are converted into plus (+) signs to avoid semantic ambiguities. In addition, special characters or 8-bit values are converted into their hexadecimal equivalents and prefaced with a percent sign (%). For example, the string Dave Marshall 1 is encoded as If you look closely, you see that the < character has been converted to %3C and the > character has been coverted to %3E. Your CGI script will need to be able to convert URL encoded information back into its normal form. Fortunately, The cgidecode.pl contains a function that will convert URL encoded. This perl program: Defines the decodeurl() function. Gets the encoded string from the parameter array. Translates all plus signs into spaces. Converts character coded as hexadecimal digits into regular characters. Returns the decoded string. The Perl for cgidecode.pl is: sub decodeurl { $_ = shift; tr/+/ /; s/%(..)/pack('c', hex($1))/eg; return($_); } This function will be used in later to decode form information. It is presented here because canned queries also use URL encoding. 1 Dave is the author of the original of these notes

6 7.8 Security CGI has a number of security weaknesses. For example, if you pass information that came from a remote site to an operating system command, you are asking for trouble. For now it is sufficient to note that you should be careful to check out these issues. Check out CGIwrap (http://wwwcgi.umr.edu/cgiwrap/) to find out what to do An example Suppose that you had a CGI script that formatted a directory listing and generated a Web page that let visitors view the listing. In addition, let's say that the name of the directory to display was passed to your program using the PATH_INFO environment variable. The following URL could be used to call your program: Inside your program, the PATH_INFO environment variable is set to docs. In order to get the directory listing, all that is needed is a call to the ls command in UNIX or the dir command in DOS. Everything looks good, right? But what if the program was invoked with this command line? rm -fr; Now, all of a sudden, you are faced with the possibility of files being deleted because the semi-colon (;) lets multiple commands be executed on one command line.

Beginning CGI Programming in Perl

Beginning CGI Programming in Perl Beginning CGI Programming in Perl In this section we will lay the foundation for CGI script development. 432 We will introduce general CGI programming concepts relating to CGI output but then focus on

More information

Perl/CGI. CS 299 Web Programming and Design

Perl/CGI. CS 299 Web Programming and Design Perl/CGI CGI Common: Gateway: Programming in Perl Interface: interacts with many different OSs CGI: server programsprovides uses a well-defined users with a method way to to gain interact access with to

More information

C HAPTER E IGHTEEN T HE PGP, MAIL, AND CGI LIBRARIES. PGP Interface Library

C HAPTER E IGHTEEN T HE PGP, MAIL, AND CGI LIBRARIES. PGP Interface Library C HAPTER E IGHTEEN T HE PGP, MAIL, AND CGI LIBRARIES The PGP (pgp-lib.pl), mail (mail-lib.pl), and CGI (cgi-lib.pl) libraries are general libraries that support Web-store-specific functions. For example,

More information

Internet Technologies. World Wide Web (WWW) Proxy Server Network Address Translator (NAT)

Internet Technologies. World Wide Web (WWW) Proxy Server Network Address Translator (NAT) Internet Technologies World Wide Web (WWW) Proxy Server Network Address Translator (NAT) What is WWW? System of interlinked Hypertext documents Text, Images, Videos, and other multimedia documents navigate

More information

Computer Networks. Lecture 7: Application layer: FTP and HTTP. Marcin Bieńkowski. Institute of Computer Science University of Wrocław

Computer Networks. Lecture 7: Application layer: FTP and HTTP. Marcin Bieńkowski. Institute of Computer Science University of Wrocław Computer Networks Lecture 7: Application layer: FTP and Marcin Bieńkowski Institute of Computer Science University of Wrocław Computer networks (II UWr) Lecture 7 1 / 23 Reminder: Internet reference model

More information

CGI An Example. CGI Model (Pieces)

CGI An Example. CGI Model (Pieces) CGI An Example go to http://127.0.0.1/cgi-bin/hello.pl This causes the execution of the perl script hello.pl Note: Although our examples use Perl, CGI scripts can be written in any language Perl, C, C++,

More information

600-152 People Data and the Web Forms and CGI CGI. Facilitating interactive web applications

600-152 People Data and the Web Forms and CGI CGI. Facilitating interactive web applications CGI Facilitating interactive web applications Outline In Informatics 1, worksheet 7 says You will learn more about CGI and forms if you enroll in Informatics 2. Now we make good on that promise. First

More information

COMP 112 Assignment 1: HTTP Servers

COMP 112 Assignment 1: HTTP Servers COMP 112 Assignment 1: HTTP Servers Lead TA: Jim Mao Based on an assignment from Alva Couch Tufts University Due 11:59 PM September 24, 2015 Introduction In this assignment, you will write a web server

More information

Building a Multi-Threaded Web Server

Building a Multi-Threaded Web Server Building a Multi-Threaded Web Server In this lab we will develop a Web server in two steps. In the end, you will have built a multi-threaded Web server that is capable of processing multiple simultaneous

More information

1 Introduction: Network Applications

1 Introduction: Network Applications 1 Introduction: Network Applications Some Network Apps E-mail Web Instant messaging Remote login P2P file sharing Multi-user network games Streaming stored video clips Internet telephone Real-time video

More information

A Simple Shopping Cart using CGI

A Simple Shopping Cart using CGI A Simple Shopping Cart using CGI Professor Don Colton, BYU Hawaii March 5, 2004 In this section of the course, we learn to use CGI and Perl to create a simple web-based shopping cart program. We assume

More information

Perl in a nutshell. First CGI Script and Perl. Creating a Link to a Script. print Function. Parsing Data 4/27/2009. First CGI Script and Perl

Perl in a nutshell. First CGI Script and Perl. Creating a Link to a Script. print Function. Parsing Data 4/27/2009. First CGI Script and Perl First CGI Script and Perl Perl in a nutshell Prof. Rasley shebang line tells the operating system where the Perl interpreter is located necessary on UNIX comment line ignored by the Perl interpreter End

More information

MMGD0204 Web Application Technology. Chapter 9 SERVER-SIDE SCRIPTING LANGUAGE

MMGD0204 Web Application Technology. Chapter 9 SERVER-SIDE SCRIPTING LANGUAGE MMGD0204 Web Application Technology Chapter 9 SERVER-SIDE SCRIPTING LANGUAGE Server-Side Scripting Language A web server technology in which a user's request is fulfilled by running a script directly on

More information

1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment?

1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment? Questions 1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment? 4. When will a TCP process resend a segment? CP476 Internet

More information

CPSC 360 - Network Programming. Email, FTP, and NAT. http://www.cs.clemson.edu/~mweigle/courses/cpsc360

CPSC 360 - Network Programming. Email, FTP, and NAT. http://www.cs.clemson.edu/~mweigle/courses/cpsc360 CPSC 360 - Network Programming E, FTP, and NAT Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu April 18, 2005 http://www.cs.clemson.edu/~mweigle/courses/cpsc360

More information

Chapter 27 Hypertext Transfer Protocol

Chapter 27 Hypertext Transfer Protocol Chapter 27 Hypertext Transfer Protocol Columbus, OH 43210 Jain@CIS.Ohio-State.Edu http://www.cis.ohio-state.edu/~jain/ 27-1 Overview Hypertext language and protocol HTTP messages Browser architecture CGI

More information

10.1 The Common Gateway Interface

10.1 The Common Gateway Interface 10.1 The Common Gateway Interface - Markup languages cannot be used to specify computations, interactions with users, or to provide access to databases - CGI is a common way to provide for these needs,

More information

CTIS 256 Web Technologies II. Week # 1 Serkan GENÇ

CTIS 256 Web Technologies II. Week # 1 Serkan GENÇ CTIS 256 Web Technologies II Week # 1 Serkan GENÇ Introduction Aim: to be able to develop web-based applications using PHP (programming language) and mysql(dbms). Internet is a huge network structure connecting

More information

Basic Internet programming Formalities. Hands-on tools for internet programming

Basic Internet programming Formalities. Hands-on tools for internet programming Welcome Basic Internet programming Formalities Hands-on tools for internet programming DD1335 (gruint10) Serafim Dahl serafim@nada.kth.se DD1335 (Lecture 1) Basic Internet Programming Spring 2010 1 / 23

More information

LabVIEW Internet Toolkit User Guide

LabVIEW Internet Toolkit User Guide LabVIEW Internet Toolkit User Guide Version 6.0 Contents The LabVIEW Internet Toolkit provides you with the ability to incorporate Internet capabilities into VIs. You can use LabVIEW to work with XML documents,

More information

reference: HTTP: The Definitive Guide by David Gourley and Brian Totty (O Reilly, 2002)

reference: HTTP: The Definitive Guide by David Gourley and Brian Totty (O Reilly, 2002) 1 cse879-03 2010-03-29 17:23 Kyung-Goo Doh Chapter 3. Web Application Technologies reference: HTTP: The Definitive Guide by David Gourley and Brian Totty (O Reilly, 2002) 1. The HTTP Protocol. HTTP = HyperText

More information

Forms, CGI Objectives. HTML forms. Form example. Form example...

Forms, CGI Objectives. HTML forms. Form example. Form example... The basics of HTML forms How form content is submitted GET, POST Elements that you can have in forms Responding to forms Common Gateway Interface (CGI) Later: Servlets Generation of dynamic Web content

More information

Web Programming. Robert M. Dondero, Ph.D. Princeton University

Web Programming. Robert M. Dondero, Ph.D. Princeton University Web Programming Robert M. Dondero, Ph.D. Princeton University 1 Objectives You will learn: The fundamentals of web programming... The hypertext markup language (HTML) Uniform resource locators (URLs) The

More information

1 Recommended Readings. 2 Resources Required. 3 Compiling and Running on Linux

1 Recommended Readings. 2 Resources Required. 3 Compiling and Running on Linux CSC 482/582 Assignment #2 Securing SimpleWebServer Due: September 29, 2015 The goal of this assignment is to learn how to validate input securely. To this purpose, students will add a feature to upload

More information

CGI Programming. What is CGI?

CGI Programming. What is CGI? CGI Programming What is CGI? Common Gateway Interface A means of running an executable program via the Web. CGI is not a Perl-specific concept. Almost any language can produce CGI programs even C++ (gasp!!)

More information

PHP Debugging. Draft: March 19, 2013 2013 Christopher Vickery

PHP Debugging. Draft: March 19, 2013 2013 Christopher Vickery PHP Debugging Draft: March 19, 2013 2013 Christopher Vickery Introduction Debugging is the art of locating errors in your code. There are three types of errors to deal with: 1. Syntax errors: When code

More information

TCP/IP Networking, Part 2: Web-Based Control

TCP/IP Networking, Part 2: Web-Based Control TCP/IP Networking, Part 2: Web-Based Control Microchip TCP/IP Stack HTTP2 Module 2007 Microchip Technology Incorporated. All Rights Reserved. Building Embedded Web Applications Slide 1 Welcome to the next

More information

1945: 1989: ! Tim Berners-Lee (CERN) writes internal proposal to develop a. 1990:! Tim BL writes a graphical browser for Next machines.

1945: 1989: ! Tim Berners-Lee (CERN) writes internal proposal to develop a. 1990:! Tim BL writes a graphical browser for Next machines. Systemprogrammering 2009 Föreläsning 9 Web Services Topics! HTTP! Serving static content! Serving dynamic content 1945: 1989: Web History! Vannevar Bush, As we may think, Atlantic Monthly, July, 1945.

More information

10. Java Servelet. Introduction

10. Java Servelet. Introduction Chapter 10 Java Servlets 227 10. Java Servelet Introduction Java TM Servlet provides Web developers with a simple, consistent mechanism for extending the functionality of a Web server and for accessing

More information

Web Server for Embedded Systems

Web Server for Embedded Systems Web Server for Embedded Systems Klaus-D. Walter After the everybody-in-the-internet-wave now obviously follows the everything-in-the- Internet-wave. The most coffee, vending and washing machines are still

More information

Rweb: Web-based Statistical Analysis

Rweb: Web-based Statistical Analysis Rweb: Web-based Statistical Analysis Jeff Banfield Department of Mathematical Science Montana State University Bozeman, MT 59717 Abstract Rweb is a freely accessible statistical analysis environment that

More information

10CS73:Web Programming

10CS73:Web Programming 10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server

More information

Web development... the server side (of the force)

Web development... the server side (of the force) Web development... the server side (of the force) Fabien POULARD Document under license Creative Commons Attribution Share Alike 2.5 http://www.creativecommons.org/learnmore Web development... the server

More information

AS DNB banka. DNB Link specification (B2B functional description)

AS DNB banka. DNB Link specification (B2B functional description) AS DNB banka DNB Link specification (B2B functional description) DNB_Link_FS_EN_1_EXTSYS_1_L_2013 Table of contents 1. PURPOSE OF THE SYSTEM... 4 2. BUSINESS PROCESSES... 4 2.1. Payment for goods and services...

More information

Outline Definition of Webserver HTTP Static is no fun Software SSL. Webserver. in a nutshell. Sebastian Hollizeck. June, the 4 th 2013

Outline Definition of Webserver HTTP Static is no fun Software SSL. Webserver. in a nutshell. Sebastian Hollizeck. June, the 4 th 2013 Definition of in a nutshell June, the 4 th 2013 Definition of Definition of Just another definition So what is it now? Example CGI php comparison log-file Definition of a formal definition Aisaprogramthat,usingthe

More information

Make a folder named Lab3. We will be using Unix redirection commands to create several output files in that folder.

Make a folder named Lab3. We will be using Unix redirection commands to create several output files in that folder. CMSC 355 Lab 3 : Penetration Testing Tools Due: September 31, 2010 In the previous lab, we used some basic system administration tools to figure out which programs where running on a system and which files

More information

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence Web Development Owen Sacco ICS2205/ICS2230 Web Intelligence Brief Course Overview An introduction to Web development Server-side Scripting Web Servers PHP Client-side Scripting HTML & CSS JavaScript &

More information

Network Technologies

Network Technologies Network Technologies Glenn Strong Department of Computer Science School of Computer Science and Statistics Trinity College, Dublin January 28, 2014 What Happens When Browser Contacts Server I Top view:

More information

CSC 551: Web Programming. Spring 2004

CSC 551: Web Programming. Spring 2004 CSC 551: Web Programming Spring 2004 Java Overview Design goals & features platform independence, portable, secure, simple, object-oriented, Programming models applications vs. applets vs. servlets intro

More information

JAVASCRIPT AND COOKIES

JAVASCRIPT AND COOKIES JAVASCRIPT AND COOKIES http://www.tutorialspoint.com/javascript/javascript_cookies.htm Copyright tutorialspoint.com What are Cookies? Web Browsers and Servers use HTTP protocol to communicate and HTTP

More information

Fachgebiet Technische Informatik, Joachim Zumbrägel

Fachgebiet Technische Informatik, Joachim Zumbrägel Computer Network Lab 2015 Fachgebiet Technische Informatik, Joachim Zumbrägel Overview Internet Internet Protocols Fundamentals about HTTP Communication HTTP-Server, mode of operation Static/Dynamic Webpages

More information

Slides from INF3331 lectures - web programming in Python

Slides from INF3331 lectures - web programming in Python Slides from INF3331 lectures - web programming in Python Joakim Sundnes & Hans Petter Langtangen Dept. of Informatics, Univ. of Oslo & Simula Research Laboratory October 2013 Programming web applications

More information

Introduction. It would appear that. we have reached the. limits of what it is. possible to achieve with. computer technology, although one should be

Introduction. It would appear that. we have reached the. limits of what it is. possible to achieve with. computer technology, although one should be Introduction It would appear that we have reached the limits of what it is possible to achieve with computer technology, although one should be careful with such statements, as they tend to sound pretty

More information

INT322. By the end of this week you will: (1)understand the interaction between a browser, web server, web script, interpreter, and database server.

INT322. By the end of this week you will: (1)understand the interaction between a browser, web server, web script, interpreter, and database server. Objective INT322 Monday, January 19, 2004 By the end of this week you will: (1)understand the interaction between a browser, web server, web script, interpreter, and database server. (2) know what Perl

More information

Protocolo HTTP. Web and HTTP. HTTP overview. HTTP overview

Protocolo HTTP. Web and HTTP. HTTP overview. HTTP overview Web and HTTP Protocolo HTTP Web page consists of objects Object can be HTML file, JPEG image, Java applet, audio file, Web page consists of base HTML-file which includes several referenced objects Each

More information

A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming

A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming "The only way to learn a new programming language is by writing programs in it." -- B. Kernighan and D. Ritchie "Computers

More information

Protocolo FTP. FTP: Active Mode. FTP: Active Mode. FTP: Active Mode. FTP: the file transfer protocol. Separate control, data connections

Protocolo FTP. FTP: Active Mode. FTP: Active Mode. FTP: Active Mode. FTP: the file transfer protocol. Separate control, data connections : the file transfer protocol Protocolo at host interface local file system file transfer remote file system utilizes two ports: - a 'data' port (usually port 20...) - a 'command' port (port 21) SISTEMAS

More information

StreamServe Persuasion SP4 Service Broker

StreamServe Persuasion SP4 Service Broker StreamServe Persuasion SP4 Service Broker User Guide Rev A StreamServe Persuasion SP4 Service Broker User Guide Rev A 2001-2009 STREAMSERVE, INC. ALL RIGHTS RESERVED United States patent #7,127,520 No

More information

Hushmail Express Password Encryption in Hushmail. Brian Smith Hush Communications

Hushmail Express Password Encryption in Hushmail. Brian Smith Hush Communications Hushmail Express Password Encryption in Hushmail Brian Smith Hush Communications Introduction...2 Goals...2 Summary...2 Detailed Description...4 Message Composition...4 Message Delivery...4 Message Retrieval...5

More information

Java CPD (I) Frans Coenen Department of Computer Science

Java CPD (I) Frans Coenen Department of Computer Science Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials

More information

CGI Script Input: Accepting Input To Perl Scripts

CGI Script Input: Accepting Input To Perl Scripts CGI Script Input: Accepting Input To Perl Scripts A CGI script will typically require some form of input in order to operate. In fact, only very trivial CGI scripts can be created without input. 453 We

More information

Why File Upload Forms are a Major Security Threat

Why File Upload Forms are a Major Security Threat Why File Upload Forms are a Major Security Threat To allow an end user to upload files to your website, is like opening another door for a malicious user to compromise your server. Even though, in today

More information

Fig (1) (a) Server-side scripting with PHP. (b) Client-side scripting with JavaScript.

Fig (1) (a) Server-side scripting with PHP. (b) Client-side scripting with JavaScript. Client-Side Dynamic Web Page Generation CGI, PHP, JSP, and ASP scripts solve the problem of handling forms and interactions with databases on the server. They can all accept incoming information from forms,

More information

Web-based based Access to ROOT

Web-based based Access to ROOT Web-based based Access to ROOT at D-ZeroD Displaying histograms generated by ROOT in a Web Browser ROOT histogram server program Proxy CGI program invoked by a Web server from an HTML forms page Virtual

More information

1. Overview of the Java Language

1. Overview of the Java Language 1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax

More information

Using the AVR microcontroller based web server

Using the AVR microcontroller based web server 1 of 7 http://tuxgraphics.org/electronics Using the AVR microcontroller based web server Abstract: There are two related articles which describe how to build the AVR web server discussed here: 1. 2. An

More information

Scripting Languages 1

Scripting Languages 1 Scripting Languages 1 Scripting Languages (prehistory) Scripting languages have always been important in computer systems They are the glue that ties the different elements of the system together Their

More information

PHP: Introduction. CS7025: Network Technologies and Server Side Programming Lecturer: Saturnino Luz

PHP: Introduction. CS7025: Network Technologies and Server Side Programming  Lecturer: Saturnino Luz PHP: Introduction CS7025: Network Technologies and Server Side Programming http://www.scss.tcd.ie/~luzs/t/cs7025/ Lecturer: Saturnino Luz January 24, 2011 1 PHP: Introduction How does a browser request

More information

CHAPTER 7. E-Mailing with CGI

CHAPTER 7. E-Mailing with CGI CHAPTER 7 E-Mailing with CGI OVERVIEW One of the most important tasks of any CGI program is ultimately to let someone know that something has happened. The most convenient way for users is to have this

More information

ICT 6012: Web Programming

ICT 6012: Web Programming ICT 6012: Web Programming Covers HTML, PHP Programming and JavaScript Covers in 13 lectures a lecture plan is supplied. Please note that there are some extra classes and some cancelled classes Mid-Term

More information

Homeland Security Red Teaming

Homeland Security Red Teaming Homeland Security Red Teaming Directs intergovernmental coordination Specifies Red Teaming Viewing systems from the perspective of a potential adversary Target hardening Looking for weakness in existing

More information

Contents. ISiLS Lecture 12. Genome Browsers. Data Integration. Genome browsers Solutions for integration CORBA SOAP DAS Ontology mapping

Contents. ISiLS Lecture 12. Genome Browsers. Data Integration. Genome browsers Solutions for integration CORBA SOAP DAS Ontology mapping Contents ISiLS Lecture 12 short introduction to data integration F.J. Verbeek Genome browsers Solutions for integration CORBA SOAP DAS Ontology mapping 2 nd lecture BioASP roadshow 1 2 Human Genome Browsers

More information

Dynamic Content. Dynamic Web Content: HTML Forms CGI Web Servers and HTTP

Dynamic Content. Dynamic Web Content: HTML Forms CGI Web Servers and HTTP Dynamic Web Content: HTML Forms CGI Web Servers and HTTP Duncan Temple Lang Dept. of Statistics UC Davis Dynamic Content We are all used to fetching pages from a Web server. Most are prepared by a human

More information

Design and Implementation of Computer Network-Based Robotic System Using HTML Language and CGi Scripts

Design and Implementation of Computer Network-Based Robotic System Using HTML Language and CGi Scripts Design and Implementation of Computer Network-Based Robotic System Using HTML Language and CGi Scripts Maan M. Shaker* Mahmood Sh. Majeed ** Mahmood F. Abdullah*** Assistant Prof Assistant Prof Assistant

More information

EE984 Laboratory Experiment 2: Protocol Analysis

EE984 Laboratory Experiment 2: Protocol Analysis EE984 Laboratory Experiment 2: Protocol Analysis Abstract This experiment provides an introduction to protocols used in computer communications. The equipment used comprises of four PCs connected via a

More information

Remote login (Telnet):

Remote login (Telnet): SFWR 4C03: Computer Networks and Computer Security Feb 23-26 2004 Lecturer: Kartik Krishnan Lectures 19-21 Remote login (Telnet): Telnet permits a user to connect to an account on a remote machine. A client

More information

CIS 433/533 - Computer and Network Security. Web Vulnerabilities, Wrapup

CIS 433/533 - Computer and Network Security. Web Vulnerabilities, Wrapup CIS 433/533 - Computer and Network Security Web Vulnerabilities, Wrapup Professor Kevin Butler Winter 2011 Computer and Information Science Injection Attacks flaws relating to invalid input handling which

More information

Introduction. How does FTP work?

Introduction. How does FTP work? Introduction The µtasker supports an optional single user FTP. This operates always in active FTP mode and optionally in passive FTP mode. The basic idea of using FTP is not as a data server where a multitude

More information

(World Wide) Web WWW. Web History

(World Wide) Web WWW. Web History (World Wide) Web WWW A way to connect computers that provide information (servers) with computers that ask for it (clients like you and me) uses the Internet, but it's not the same as the Internet URL

More information

Evolution of the WWW. Communication in the WWW. WWW, HTML, URL and HTTP. HTTP Abstract Message Format. The Client/Server model is used:

Evolution of the WWW. Communication in the WWW. WWW, HTML, URL and HTTP. HTTP Abstract Message Format. The Client/Server model is used: Evolution of the WWW Communication in the WWW World Wide Web (WWW) Access to linked documents, which are distributed over several computers in the History of the WWW Origin 1989 in the nuclear research

More information

11.1 THE WORLD WIDE WEB

11.1 THE WORLD WIDE WEB 648 DISTRIBUTED DOCUMENT-BASED SYSTEMS CHAP. 11 11.1 THE WORLD WIDE WEB The World Wide Web (WWW) can be viewed as a huge distributed system consisting of millions of clients and servers for accessing linked

More information

Procedural Languages. Procedural Languages. Procedural Languages. Procedural Languages. Procedural Languages. Procedural Languages

Procedural Languages. Procedural Languages. Procedural Languages. Procedural Languages. Procedural Languages. Procedural Languages Objectives Differentiate between machine and and assembly languages Describe Describe various various ways ways to to develop develop Web Web pages pages including including HTML, HTML, scripting scripting

More information

Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports Server 6i

Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports Server 6i Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports Server 6i $Q2UDFOH7HFKQLFDO:KLWHSDSHU 0DUFK Secure Web.Show_Document() calls to Oracle Reports Server 6i Introduction...3 solution

More information

Python Programming: An Introduction to Computer Science

Python Programming: An Introduction to Computer Science Python Programming: An Introduction to Computer Science Chapter 1 Computers and Programs 1 Objectives To understand the respective roles of hardware and software in a computing system. To learn what computer

More information

Internet Technologies_1. Doc. Ing. František Huňka, CSc.

Internet Technologies_1. Doc. Ing. František Huňka, CSc. 1 Internet Technologies_1 Doc. Ing. František Huňka, CSc. Outline of the Course 2 Internet and www history. Markup languages. Software tools. HTTP protocol. Basic architecture of the web systems. XHTML

More information

HTTP. Internet Engineering. Fall 2015. Bahador Bakhshi CE & IT Department, Amirkabir University of Technology

HTTP. Internet Engineering. Fall 2015. Bahador Bakhshi CE & IT Department, Amirkabir University of Technology HTTP Internet Engineering Fall 2015 Bahador Bakhshi CE & IT Department, Amirkabir University of Technology Questions Q1) How do web server and client browser talk to each other? Q1.1) What is the common

More information

FF/EDM Intro Industry Goals/ Purpose Related GISB Standards (Common Codes, IETF) Definitions d 4 d 13 Principles p 6 p 13 p 14 Standards s 16 s 25

FF/EDM Intro Industry Goals/ Purpose Related GISB Standards (Common Codes, IETF) Definitions d 4 d 13 Principles p 6 p 13 p 14 Standards s 16 s 25 FF/EDM Intro Industry Goals/ Purpose GISB defined two ways in which flat files could be used to send transactions and transaction responses: interactive and batch. This section covers implementation considerations

More information

Email Electronic Mail

Email Electronic Mail Email Electronic Mail Electronic mail paradigm Most heavily used application on any network Electronic version of paper-based office memo Quick, low-overhead written communication Dates back to time-sharing

More information

APACHE WEB SERVER. Andri Mirzal, PhD N28-439-03

APACHE WEB SERVER. Andri Mirzal, PhD N28-439-03 APACHE WEB SERVER Andri Mirzal, PhD N28-439-03 Introduction The Apache is an open source web server software program notable for playing a key role in the initial growth of the World Wide Web Typically

More information

Working With Virtual Hosts on Pramati Server

Working With Virtual Hosts on Pramati Server Working With Virtual Hosts on Pramati Server 13 Overview Virtual hosting allows a single machine to be addressed by different names. There are two ways for configuring Virtual Hosts. They are: Domain Name

More information

World Wide Web. Before WWW

World Wide Web. Before WWW World Wide Web Joao.Neves@fe.up.pt Before WWW Major search tools: Gopher and Archie Archie Search FTP archives indexes Filename based queries Gopher Friendly interface Menu driven queries João Neves 2

More information

Evolution of the WWW. Communication in the WWW. WWW, HTML, URL and HTTP. HTTP - Message Format. The Client/Server model is used:

Evolution of the WWW. Communication in the WWW. WWW, HTML, URL and HTTP. HTTP - Message Format. The Client/Server model is used: Evolution of the WWW Communication in the WWW World Wide Web (WWW) Access to linked documents, which are distributed over several computers in the History of the WWW Origin 1989 in the nuclear research

More information

Efficiency of Web Based SAX XML Distributed Processing

Efficiency of Web Based SAX XML Distributed Processing Efficiency of Web Based SAX XML Distributed Processing R. Eggen Computer and Information Sciences Department University of North Florida Jacksonville, FL, USA A. Basic Computer and Information Sciences

More information

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14 The presentation explains how to create and access the web services using the user interface. Page 1 of 14 The aim of this presentation is to familiarize you with the processes of creating and accessing

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

More information

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #39 Search Engines and Web Crawler :: Part 2 So today we

More information

How to write a CGI for the Apache Web server in C

How to write a CGI for the Apache Web server in C How to write a CGI for the Apache Web server in C The Com/PC Embedded Gateway Linux (EGL/2) operating system comes with a pre-installed Apache Web server. Please see also mht-cpc1l-07.pdf: How to use the

More information

Network: several computers who can communicate. bus. Main example: Ethernet (1980 today: coaxial cable, twisted pair, 10Mb 1000Gb).

Network: several computers who can communicate. bus. Main example: Ethernet (1980 today: coaxial cable, twisted pair, 10Mb 1000Gb). 1 / 17 Network: several computers who can communicate. Bus topology: bus Main example: Ethernet (1980 today: coaxial cable, twisted pair, 10Mb 1000Gb). Hardware has globally unique MAC addresses (IDs).

More information

Streaming Stored Audio & Video

Streaming Stored Audio & Video Streaming Stored Audio & Video Streaming stored media: Audio/video file is stored in a server Users request audio/video file on demand. Audio/video is rendered within, say, 10 s after request. Interactivity

More information

Domain Name System (DNS)

Domain Name System (DNS) Application Layer Domain Name System Domain Name System (DNS) Problem Want to go to www.google.com, but don t know the IP address Solution DNS queries Name Servers to get correct IP address Essentially

More information

Modified Reverse Proxy Website Vulnerability Test Results

Modified Reverse Proxy Website Vulnerability Test Results Modified Reverse Proxy Website Vulnerability Test Results Vincent Berk and Marion Bates Institute for Security Technology Studies Dartmouth College September 10, 2001 Contents 1 Introduction 1 2 Preparation

More information

Two Historical Problems

Two Historical Problems Data Transfer Many programs use a disk file paradigm for I/O. Before networks, transferring data from one computer to another required the use of a removable medium (disk or tape) and the sneakernet. A

More information

XML Processing and Web Services. Chapter 17

XML Processing and Web Services. Chapter 17 XML Processing and Web Services Chapter 17 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of http://www.funwebdev.com Web Development Objectives 1 XML Overview 2 XML Processing

More information

Check list for web developers

Check list for web developers Check list for web developers Requirement Yes No Remarks 1. Input Validation 1.1) Have you done input validation for all the user inputs using white listing and/or sanitization? 1.2) Does the input validation

More information

Worksheet 3: Distributed File Systems

Worksheet 3: Distributed File Systems Worksheet 3 Distributed File Systems Name Class Please complete this worksheet and print it out. Author J.Jackson Objectives This exercise aims to investigate network file structures using various tools.

More information

Hypercosm. Studio. www.hypercosm.com

Hypercosm. Studio. www.hypercosm.com Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks

More information

Lecture 11 Web Application Security (part 1)

Lecture 11 Web Application Security (part 1) Lecture 11 Web Application Security (part 1) Computer and Network Security 4th of January 2016 Computer Science and Engineering Department CSE Dep, ACS, UPB Lecture 11, Web Application Security (part 1)

More information

SmartTV User Interface Development for SmartTV using Web technology and CEA2014. George Sarosi george.sarosi@twcable.com

SmartTV User Interface Development for SmartTV using Web technology and CEA2014. George Sarosi george.sarosi@twcable.com SmartTV User Interface Development for SmartTV using Web technology and CEA2014. George Sarosi george.sarosi@twcable.com Abstract Time Warner Cable is the second largest Cable TV operator in North America

More information

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET)

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET) 2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET) There are three popular applications for exchanging information. Electronic mail exchanges information between people and file

More information

Appendix. Web Command Error Codes. Web Command Error Codes

Appendix. Web Command Error Codes. Web Command Error Codes Appendix Web Command s Error codes marked with * are received in responses from the FTP server, and then returned as the result of FTP command execution. -501 Incorrect parameter type -502 Error getting

More information