Week 1 - January 18, 2000
1.1 Short History of the WWW
1957 USSR lounched Sputnik
1958 US created ARPA
- Advanced Research Projects Agency
1969 DoD commisioned ARPAnet
to be created for research into networking protocols
1973 TCP/IP (Transmision
Control Protocol/Internet Protocol) proposed as standard
1982 TCP/IP adopted as
a standard
1983 First release of a
UNIX system incorporating TCP/IP protocols
about 500 Internet hosts
1986 NSF creates
NSFnet, connecting 5 supercomputing centers around hte country running
at 56Kbps
about 5,000 Internet hosts
1989 NSFnet was
upgraded to T1 capacity (1.5 Mbps)
about 100,000 Internet hosts
1990 ARPAnet ceased
to exit
once a purely academic research project, the Internet is now suddently
the next big thing on campuses and large corporation.
Tim Berbers-Lee, from the European particle research laboratory
CERN, developed a protocol for delivering different kind of files
over the Internet, using a common protocol. It was the beginning of the
World Wide Web. The interface was fully text based.
1991 National Center
for Supercomputing Applications (NCSA) in Illinois, developed a graphical
inerface for the web, known as Mosaic.
1992 over 1,000,000
Internet hosts; it took 20 years for the original ARPAnet
to reach this number
to make things more interactive than just static text and pictures, the
Commong Gateway Interface (CGI) protocol was added to HTTP
servers, allowing users to interact with the data and create on the fly
content for web pages.
search engines started to appear on the Web.
1993 over 2,000,000
Internet hosts
1994 over 4,000,000
Internet hosts
1995 NSF decommissioned
the NSFnet
March 1995 - number of official business addresses (.com) surpassed
that of educational ones (.edu)
May 1995 - Java Environment was announced by Sun at
SunWorld95.
1.2 Server Side Programming (CGI programs in C/C++, Perl,
etc)
By Server Side Programs we understand programs that
are running on the same computer with the HTTP (Hyper Text Transfer Protocol)
server, or programs that are not interacting directely with the user's
HTML browser: they use the HTTP server to create the user interface.
CGI protocol defines how the HTTP server communicates
with these programs.
Its function is to allow the HTTP server to go beyond
its normal boundaries for retrieving and accessing information (external
databases, files or programs output).
It then specifies how the data will transfered from
the server to the program/database and from this back to the server.
One can use any language to run a CGI script, as
long as the computer used to run the program is the same one with the one
running the HTTP server, or they are networked together.
Because its ease of use, PERL has become the de
facto standard language for CGI scripts.

1.3 Client Side Programming (JavaScripts and Java)
By Client Side Programs we understand programs that
are running on the same computer with the HTML browser. They usually have
their own interface inside or outside the web page or they change the content
of the page dinamically and locally, based on user input.
In order to run a client side program, the HTML
browser has to understand that language. For JavaScript the web browser
has a special interpretor which reads and executes each line of code. For
Java programs, the web browser has to have a Java RunTime Module, which
can understand and run the Java code (these are not instructions, this
is compiled code).
Both the JavaScript interpretor and the Java RunTime
Module are creating the Gateway between the local program and the web browser.
1.4 Perl vs Java
This is not only a war between Perl and Java, it's more
a war between Server Side and Clien Side programming.
A page containing a form which is the interface
for a CGI program may load 10 time faster than a page containing a Java
applet performing the same operation as the CGI program, Java applet may
be 10 times faster in processing the user request than the CGI program.
There a pros and cons for each type of program,
and it's the developer's decision which method to use. During the decision
process one has to take in consideration the following elements:
- the number of times
a user will interact with the program during one session
- which part is going
to take more time: running the CGI program or downloading the Java program.
- the amount of data
that will be transfered between the server and the client.
- the importance of
the interface for the program and the time used to write the program in
both ways.
- the computer time
used by each program to process the information: sometimes downloading
the data to the server, processing it and loading it back to the client
will be faster than processing the data locally.