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

  • 424