Lecture 1
Lecture 1
Summer 2005
Course goals:
1
Reasonable questions
2
Web Internet
Internet: a physical network connecting millions of computers using the
same protocols for sharing/transmitting information (TCP/IP)
▪ in reality, the Internet is a network of smaller networks
3
History of the Internet
the idea of a long-distance computer network traces back to early 60's
4
Internet growth
throughout the 70's, the size of the ARPANET doubled every year
▪ decentralization made adding new computers easy
▪ ~1000 military & academic computers connected by 1984
Sep. 2002: estimated > 230M hosts (www.netsizer.com), > 600M users (www.nua.ie)
6
History of the Web
the idea of hypertext (cross-linked and inter-linked documents) traces back
to Vannevar Bush in the 1940's
▪ online hypertext systems began to be developed in 1960's
e.g., Andy van Dam's FRESS, Doug Englebert's NLS
▪ in 1987, Apple introduced HyperCard
recent estimates suggest 40-50 M Web sites, with 4-5 B Web pages!
9
Static vs. dynamic pages
most Web pages are static
▪ contents (text/links/images) are the same each time it is accessed
e.g., online documents, most homepages
HyperText Markup Language (HTML) is used to specify text/image format
as the Web moves towards online services and e-commerce, Web pages
must also provide dynamic content
▪ pages must be fluid, changeable (e.g., rotating banners)
▪ must be able to react to the user's actions, request and process info, tailor services
e.g., amazon.com, www.csuhayward.edu
10
Client-side programming
can download program with Web page, execute on client machine
▪ simple, generic, but insecure
JavaScript
▪ a scripting language for Web pages, developed by Netscape in 1995
▪ uses a C++/Java-like syntax, so familiar to programmers, but simpler
▪ good for adding dynamic features to Web page, controlling forms and GUI
▪ See: http://www.mcs.csuhayward.edu/~bhecker/CS-
3520/Examples/JavaScript/
Java applets
▪ can define small, special-purpose programs in Java called applets
▪ provides full expressive power of Java (but more overhead)
▪ good for more complex tasks or data heavy tasks, such as graphics
11
Server-side programming
can store and execute program on Web server, link from Web page
▪ more complex, requires server privileges, but secure
CGI programming
▪ programs can be written to conform to the Common Gateway Interface
▪ when a Web page submits, data from the page is sent as input to the
CGI program
▪ CGI program executes on server, sends its results back to browser as
a Web page
▪ good if computation is large/complex or requires access to private data
12
Exercise
▪ static components?
▪ dynamic components?
13