CE419 Session 1: Fundamentals Web Programming Let's begin with the - - PowerPoint PPT Presentation
CE419 Session 1: Fundamentals Web Programming Let's begin with the - - PowerPoint PPT Presentation
CE419 Session 1: Fundamentals Web Programming Let's begin with the premise that everything you've known up to this point is wrong. 4 Story of the Web The World Wide Web has gone from never heard of it to cant live without
Let's begin with the premise that everything you've known up to this point is wrong.
4
Story of the Web
- The World Wide Web has gone from “never heard of it” to
“can’t live without it” in 25 years.
- Let’s take a look at its defining moments.
5
The Early Years AOL, CompuServe, BBS
1989 — 1995
6
Tim Berners-Lee “Vague but exciting”
1989
7
Mosaic web browser 1.0
1993
8
The Early Web Brands yahoo.com, match.com
1994
9
Netscape & Web Standards
1994
10
The Biggest Launch in Software History
1995
11
From Boom to Bust
1995 — 2000
12
The e-Commerce Era
1995
13
Google is Born
1997
14
Browser Wars Internet Explorer 5.0
1997
15
Napster & File Sharing
1999
16
The Dot-Com Crash The bubble has burst.
2000
17
People-Powered Web
2000 — 2004
18
The Web Speeds Up First Broadband Access
2000
19
Social Knowledge Sharing
2001
20
The First Social Networks
2003
21
Voice & Video Call Skype
2003
22
The Pirate Bay Illegal Downloading
2003
23
Web 2.0 Collaborative Web
2004 — 2007
24
The Dawn of Facebook 1.2 billion users now.
2004
25
Google, Google, Google! Gmail, Google Maps
2004
26
Video Moves Online YouTube
2005
27
The Twitter Age Begins Hand cannot erase.
2006
28
The Mobile Web
2007 — 2010
29
Cloud Gets Serious SaaS
2007
30
Smartphones Take Center Stage
2007
31
First Working Draft of HTML5
2008
32
Photo Sharing Instagram, Pinterest, Selfie
2010 — 2013
33
Security & Privacy Concerns
Today
34
It’s huge.
35
Key Layers of the Internet
36
Application Architectures
- Terminals & Mainframes
- Traditional Applications
37
Client-Server Architecture
38
39
Uniform Resource Locator
40
Request & Response
- http://ce.sharif.edu/courses/40419-1/home/
GET /courses/40419-1/home/ HTTP/1.1 Host: ce.sharif.edu HTTP/1.1 200 OK Date: Sun, 01 Feb 2015 07:13:09 GMT Content-Type: text/html <!DOCTYPE html> <html> <head> <title>Welcome to CE419</title> <meta content="i'm bored" /> </head>
Request Response
41
Request & Response
HTTP Protocol HTTP Protocol
42
Why use web apps?
- Only need a HTML-capable browser, everything else is
done by the server.
- Zero client administration cost.
- Access everywhere (with an internet connection)
- Instantaneous application updates.
43
Web Browser HTML, CSS, JS
A deeper look
44
Client Side: HTML
The Matrix Plot Thomas Anderson is a computer programmer who maintains a double life as "Neo" the hacker. Another hacker named Trinity contacts Neo and informs him that a man named Morpheus can tell him the meaning of "the Matrix”. Cast Keanu Reeves as Thomas A. Anderson / Neo Laurence Fishburne as Morpheus Production In 1994, the Wachowskis presented the script for the film Assassins to Warner Brothers.
45
Client Side: HTML
<h1>The Matrix</h1> <h2>Plot</h2> <p>Thomas Anderson is a computer programmer who maintains a double life as "Neo" the hacker. Another hacker named <strong>Trinity</strong> contacts Neo and informs him that a man named Morpheus can tell him the meaning of <em>the Matrix</em>.</p> <h2>Cast</h2> <ul> <li>Keanu Reeves as Thomas A. Anderson / Neo</li> <li>Laurence Fishburne as Morpheus</li> </ul> <h2>Production</h2> <p>In 1994, the Wachowskis presented the script for the film Assassins to
46
Client Side: HTML
47
Client Side: CSS
html { font-family: Georgia; } h1 { color:#00FF00; background:black; font-family:Monaco; } h2 { color: blue; border-bottom: 3px double blue; }
48
Client Side: CSS
49
Client Side: Javascript
- bject.onclick = function(){
alert('Why are you clicking?!'); };
50
Server Side
51
Server Side
- Programming languages, frameworks, web servers,
database engines, cache servers, etc.
52
Server Side
- A computer code that generates a response.
def hello_world(request): name = request.GET['name'] return """HTTP/1.1 200 OK Content-Type: text/html Hello, {}""".format(name)
53
Let’s talk about the course!
55
Course Structure
- Client-side Programming: HTML, CSS, Javascript
- Quick Overview of Python Programming Language
- Server-side Programming
- Django Web Framework
- Modern Web Development: Real-time applications
- Advanced Databases: MongoDB, Redis
- A bunch of advanced topics!
56