Introduction

Web Programming Course

SUT • Fall 2019

Outline

  • Course Information

  • History of the Internet

  • The HTTP Protocol

    • HTTP Requests

    • HTTP Responses

  • Summary

Course Information

Contents

  • HTML/CSS
  • JavaScript
  • Data Storage
  • Server Interaction
  • Python
  • Web Architectures
  • Django
  • Advanced Topics

Grades

Final Exam 3 points
Midterm Exam 3 points
Quizzes/Take Homes 2 points
Home work 4 points
Project 8 points

Resources

  • Course Website
    • Syllabus
    • Assignments
    • Resources
  • Quera
    • Discussions
    • Announcements

Tutorials

  • Head-TA
    • Ali Asgari
  • Class Session
    • Sat-Mon 9:00 - 10:30 AM
  • Office Hour
    • Sat-Mon 9:00 - 10:30 AM
  • Tutorial Session
    • ?
  • Midterm Exam
    • 30 Aban 1398

History of the Internet

Origins of the Internet

  • 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 ...

Origins of the Internet

  • 1972: Email program was modified for use on
    ARPANET
  • 1973: First international connections to ARPANET
    (England and Norway)
  • 1973: ARPA study shows email composing 75% of all ARPANET traffic
  • 1978: Possibly the first commercial spam message is sent on 1 May by a DEC marketer advertising an upcoming presentation of its new DECSYSTEM-20 computers
  • 1979: USENET (Newsgroups)
    established

Origins of the Internet

  • 1984: Domain Name System (DNS) introduced
  • 1985: File Transfer Protocol (FTP) introduced
  • 1997: Number of hosts breaks 10,000
  • 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

Origins of the Internet

  • 2001: Wikipedia
  • 2002: Weblogs (blogs) become hip
  • 2004: Facebook
  • 2006: Twitter microblogging
  • 2008: DropBox
  • 2009: Google Docs
  • 2013: Netflix and YouTube account for over 50% of Internet traffic measured by bytes

Internet Users

Internet Hosts

Popular Browsers

  • Most popular web browsers (Aug. 2018)
    • Internet Explorer: 7.01%
    • Firefox: 10.96%
    • Chrome: 67.64%
    • Safari: 5.13%
  • Most widely-used Internet protocol: HTTP
  • Highest bandwidth consumption: Peer-to-peer
  • file sharing protocols

The Hypertext Transfer
Protocol

HTTP Protocol Summary

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

History of HTTP

  • HTTP 0.9: The One-Line Protocol (1991)
    • Client request is a single ASCII character string.

    • Client request is terminated by a carriage return (CRLF).

    • Server response is an ASCII character stream.

    • Server response is a hypertext markup language (HTML).

    • Connection is terminated after the document transfer is complete.

$> telnet google.com 80

Connected to 74.125.xxx.xxx

GET /about/

(hypertext response)
(connection closed)

Main HTTP Request Types

HTTP Method Description
GET Retrieve a resource
HEAD Same as GET, but only retrieve HTTP header
PUT Put information on the server
POST Send information to the serve
OPTIONS Get information about the server

History of HTTP

  • HTTP 1.0: Rapid Growth and Informational RFC (1996)
    • Request may consist of multiple newline separated header fields.

    • Response object is prefixed with a response status line.

    • Response object has its own set of newline separated header fields.

    • Response object is not limited to hypertext.

    • The connection between server and client is closed after every request.

History of HTTP

$> telnet website.org 80

Connected to xxx.xxx.xxx.xxx

GET /rfc/rfc1945.txt HTTP/1.0 
User-Agent: CERN-LineMode/2.15 libwww/2.17b3
Accept: */*

HTTP/1.0 200 OK 
Content-Type: text/plain
Content-Length: 137582
Expires: Thu, 01 Dec 1997 16:00:00 GMT
Last-Modified: Wed, 1 May 1996 12:45:26 GMT
Server: Apache 0.84

(plain-text response)
(connection closed)

Status codes

Status code Description
1XX Informational
2XX Successful
3XX Redirection
4XX Client Error
5XX Server Error

History of HTTP

  • HTTP/1.1: Internet Standard (1997)
    • changed the semantics of the HTTP protocol to use connection keep alive by default
    • content, encoding, character set, and even language negotiation, transfer encoding, caching directives, client cookies
$> telnet website.org 80
Connected to xxx.xxx.xxx.xxx

GET /index.html HTTP/1.1 
Host: website.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4)... (snip)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: __qca=P0-800083390... (snip)

History of HTTP

  • HTTP/2: Improving Transport Performance (2015)
    • Data compression of HTTP headers
    • HTTP/2 Server Push
    • Pipelining of requests
    • Fixing the head-of-line blocking problem in HTTP 1.x.
    • Multiplexing multiple requests over a single TCP connection

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

Title Text

Made with Slides.com