The slides for this class are HTML files which both validate as HTML 5 and pass the WAVE Accessibility Checker.
They are made to look like slides using a Javascript called Slidy.
The following keystrokes do useful things in Slidy:
h - help (see all the commands)
f - fullscreen (gets rid of the links at the bottom of the window
space - advance a slide
left/right arrows - forward or back a slide
up/down arrows - scroll within a slide
a - show all slides at once for printing
u - up to the list of lectures
The Internet
The internet began as ARPANET in 1969.
The internet uses TCP/IP (Transmission Control Protocol/ Internet Protocol) to allow one computer to communicate with another.
Traditionally, an IP address for a machine is a 32 bit number.(IPv4). For humans, such an address is usually written as four numbers between 0 and 255 separated by periods. For example, 173.13.143.74. Many modern machines use
an 128 bit number (IPv6). For humans this would be written as 8 blocks of 4 hexadecimal numbers separated by colons. For example, 2601:646:8e02:5000:d589:895f:7b19:5681 (where we don't bother writing leading 0's)
Routing computers use these bytes to figure out where to send message packets.
Organizations are assigned blocks of IP addresses which they in turn use to assign an individual IP to a computer.
For example, a small organization might have the addresses from 192.57.126.0 to 192.57.126.255.
IP concerns routing packets, TCP uses packets to implement an end-to-end connection/channel between sender and receiver.
Several protocols run on top of TCP/IP such as telnet (allows you to log in to a machine over the internet) and FTP (allows you to transfer files over the internet).
Domain Names
To try to make computer addresses more meaningful, computers can be given text names such as:
peano.mynetwork.org
peano is the machine name. The whole name above is called a fully qualified domain name.
The conversion from domain names to IP addresses is done by having your computer contact a domain name server (DNS) which has a conversion table.
The DNS protocol to do this assumes you know the IP address of a Domain Name Server.
The IP address of a DNS server is often determined as part the protocol (DHCP) in which your computer obtains an IP address from your internet service provider, however, there are also some well known DNS servers such as Google's at 8.8.8.8.
The World Wide Web
For this semester, the protocol on top of TCP/IP we will be interest in is called HTTP (Hypertext Transfer Protocol).
It is used to retrieve from servers hypertext documents (one's with links and images. i.e., HTML) over the internet.
It was first proposed in 1989 by a group including Tim Berners-Lee at CERN.
The World Wide Web is the collection of servers and client that use this protocol.
Web Browsers
Web Browsers are clients used to request hypertext documents from HTTP servers.
The first browser developed by Berners-Lee was called WWW.
The first widely used browser was NSCA Mosaic.
It served as the basis for the first commercial browser Netscape.
The most common modern browsers are: Edge, Internet Explorer, Chrome, Firefox, Safari, and Opera.
The site evolt.org has executables for almost every browsers that has ever existed.
Today, most cell phones have browsers which support W3C compliant HTML and Javascript/ECMAscript.
As a web programmer you should code to standards not any particular browser. In fact, large organizations (such as SJSU) might be required to produce only pages which conform to standards such as accessibility standards.
Web Servers
The most common web servers as a fraction of the top million trafficked sites according to Netcraft as of July, 2016 are Apache (~43.18%), nginx (27.90%), IIS (~11.02%) (Microsoft Internet Information Server), and
Google (2.07%, only runs on Google servers).
As Apache is free, I expect you to have it downloaded and installed by the time the first homework is due.
Apache is included with XAMPP, so if you install XAMPP, it will largely set up apache for you.
Web Server Operation
In a typical exchange between a browser and a web server, the browser makes a TCP connection into port 80 of the web server and makes a GET request for a particular document.
You can, as a human, simulate this connection by telneting into port 80.
A web server has two sets of directories, the root of one of these is called the document root of the server. The web server looks in this directory to try to find the file to service the client's request.
The root of the other directory the server uses is called the server root. Under it is stored the server and its support software.
To initiate an exchange as above, the user typically supplies the browser with the protocol, say http; the machine, say pollett.org; and the path to the file /index.php in one string