History of the Internet

History of the
Internet
Hamid Zarrabi-Zadeh
Web Programming – Fall 2013
2
Outline
• Course Information
• History of the Internet
• The HTTP Protocol
 HTTP Requests
 HTTP Responses
• Summary
Course Information
4
Contents
• HTML/CSS
• JavaScript
• Data Storage
• Server Interaction
• Python
• Web Architectures
• Django
• Advanced Topics
5
Grading
Assignments
20%
Final Exam
25%
Projects
25%
Midterm
20%
Quizzes
10%
6
Resources
• Course Website
 Syllabus
 Assignments
 Resources
• Piazza
 Discussions
 Announcements
7
Tutorials
• Head-TA
 Behnam Hatami
• Tutorial Sessions
 Saturdays, 12:00 – 13:30
• Office Hours
 Sun-Tue, 15:00 – 16:30
History of the Internet
9
Origins of the Internet
• J.C.R. Licklider (MIT) wrote about
the Galactic Network concept in
January 1960
• Became the first head of
Information Processing Office at
DARPA (Defense Advanced
Research Projects Agency) and
convinced his successors about
the importance of the project
10
Origins of the Internet
(cont’d)
• Leonard Kleinrock (MIT) published
the first paper and book in packet
switching theory in 1961 and 1964,
respectively.
• Kleinrock convinced Laurence G.
Roberts of the theoretical
feasibility of the project.
11
Origins of the Internet
(cont’d)
• In 1966, Roberts (MIT) went to
DARPA and started development
of ARPANET
• The first ARPANET link was
established between UCLA and
Stanford Research Institute at
22:30 October 29, 1969
"Do you see the L?“
"Yes, we see the L," came the response.
We typed the O, and we asked, "Do you see the O.“
"Yes, we see the O.“
Then we typed the G, and the system crashed ...
12
Internet Timeline: 1970s
• 1972: Email program was modified for use on
ARPANET
• 1973: First international connections to ARPANET
(England and Norway)
• 1976: Elizabeth II send email!
• 1979: USENET (Newsgroups)
established
13
Internet Timeline: 1980s
• 1983: ARPANET split into ARPANET (civilian) and
MILNET (military)
• 1984: Domain Name System (DNS) introduced
• 1985: File Transfer Protocol (FTP) introduced
• 1987: Number of hosts exceeds 10,000
14
Internet Timeline: 1990s
• 1990: Tim Berners-Lee (CERN) invents HTTP and
implements server and browser
• 1993: NCSA Mosaic takes the Internet by storm
• 1995: Sun launches Java (including applets)
• 1995: Netscape introduces LiveScript (JavaScript)
• 1996: Beginning of Browser Wars (Mosaic vs.
Netscape then later Netscape vs. Microsoft)
• 1998: Google search was launched
15
Internet Timeline: 2000s
• 2001: Wikipedia
• 2002: Weblogs (blogs) become hip
• 2004: Facebook
• 2006: Twitter microblogging
• 2008: DropBox
• 2009: Google Docs
16
Internet Users
17
Internet Hosts
18
Popular Browsers
• Most popular web browsers (Aug. 2013)
 Internet Explorer: 12%
 Firefox: 28%
 Chrome: 53%
 Safari, Opera: 6%
• Most widely-used Internet protocol: HTTP
• Highest bandwidth consumption: Peer-to-peer
file sharing protocols
The Hypertext Transfer
Protocol
20
History of HTTP
• Initial version by Tim Berners-Lee
(CERN) and implemented in the
World's first web browser/server
(Dec. 1990)
• HTTP 0.9 defined in 1991
• HTTP 1.0 defined in 1996
• HTTP 1.1 defined in 1997
21
HTTP Protocol Summary
• A typical HTTP transaction:
Web Client
Request
Response
Web Server
22
Uniform Resource Locator
• URL (Uniform Resource Locator)
 A Subset of Uniform Resource Identifiers (URIs)
• Format:
 protocol://host:port/path?query#frag
• Examples:
 http://ce.sharif.edu/courses/92-93/1/
 https://www.google.com/?q=test
23
The HTTP Request
• Request includes a header and optional body
GET /courses/ HTTP/1.1
Host: ce.sharif.edu
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xml;q=0.9,*/*;q=0.8
User-Agent: Chrome/29.0.1547.66 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Cookie: PHPSESSID=91ef778df57dd25aab1520845ed7076d;
24
Main HTTP Request Types
• GET
 Retrieve a resource
• HEAD
 Same as GET, but only retrieve HTTP header
• PUT
 Put information on the server
• POST
 Send information to the server
• OPTIONS
 Get information about the server
25
The HTTP Response
• Response includes a header and optional body,
separated by a blank line
HTTP/1.1 200 OK
Date: Sat, 14 Sep 2013 23:09:14 GMT
Server: Apache/2.2.16 (Debian)
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 1719
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Content-Type: text/html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
...
26
Common Response Codes
• 200 OK
 Success
• 404 Not Found
 The specified resource does not exist
• 403 Forbidden
 The specified resource exists, but can not be accessed
• 301 & 302 Document Moved
 The resource is at the new (specified) location
27
Summary
• The basic HTTP transaction is a request from the
client followed by a reply from the server
• Both requests and replies have a header
followed by an optional body
• 200 indicates a success
• 4xx indicates an error
28
References
• Wikipedia
 http://en.wikipedia.org/wiki/History_of_the_Internet
• Hobbes' Internet Timeline
 http://www.zakon.org/robert/internet/timeline/
• Internet Programming Course by Pat Morin
 http://cg.scs.carleton.ca/~morin/teaching/2405/