A brief history of the Web
... and web development
1980 - 1991
Birth of the web
Invention and implementation of:
HTTP, HTML, URL + Browser
HTTP
GET, POST, PUT, DELETE...

HTML
<h1>, <p>, <ul>... and above all <a>

URI
Uniform Resource Identifier

Web Browser
First browser: WorldWideWeb

First website (1991)

1992 - 1999
The static Web



Websites in HTML
<html>
<head>
<title>Web title</title>
</head>
<body>
<font color="#A40317">
<font size=+2>
Header
</font>
</font>
<p>
<font color="#000000">
Lorem ipsum...
</font>
</p>
<p>
<font color="#000000">
Lorem ipsum...
</font>
</p>
</body>
</html>
Vilaweb (1996)

UB (1996)

Generalitat (1997)

Limitations
Content is static
Websites are .html files
Poor style
Style in the HTML:
<font color="#ff000">, <font size="+2">, <table>
2000 - 2006
The dynamic web
Blogs, forums, wikis...



Style in CSS
Fonts, colors, spacing...

In the server, LAMP rules
Linux + Apache + MySQL + PHP




LAMP architecture






Request
Response

Wikipedia (2003)

Wordpress (2005)

A richer client?
JavaScript
- Runs in the browser
- Very slow
Examples:
- Countdown
- Hiding and showing elements

A richer client?
Flash



A richer client?
Java Applets



Limitations
Websites without much interaction
Flash and Java doesn't reach everyone
Doing websites from "scratch" is costly
2007 - 2011
The interactive Web
GMail, Twitter, Facebook...



AJAX
Asynchronous JavaScript and XML
Change the web content without refreshing



GMail

In the server: agile development






Request
Response


We always do the same
-
CRUD (Create, Read, Update, Delete)
-
Handle users (register, login, pa...)
-
Content in many languages
-
Read parameters from GET and POST
Code organization: Model - View - Controller
Model - View - Controller
class BlogPost:
author = User()
title = String()
body = Text()

Model
Controller
URLs, GET, POST...
<h1>
{{ post.title }}
</h1>
<p>
by {{ post.author }}
</p>
{{ post.body }}
View
Request
Response

Frameworks








Frameworks in the LAMP





Request
Response



Django / RoR + AJAX




Microframeworks




2012 - ...


Total interaction!
Rich applications everywhere
HTML5 + CSS3

-
<video>
-
<audio>
-
<canvas>
-
<svg>
-
MathML
-
WebSockets
-
File API
-
CSS transitions
JavaScript reborn
Faster than ever, handles more things


Frameworks for JavaScript
in the client



JavaScript in the server


... and in the future?

Web 3.0
Decentralized architectures, instead of central servers
Unified client development
Same development for websites, mobile apps, etc.
A brief history of Web... and web development
By victorlf
A brief history of Web... and web development
- 490