Skip to content

Latest commit

 

History

History
126 lines (81 loc) · 2.45 KB

web-dev-overview.md

File metadata and controls

126 lines (81 loc) · 2.45 KB

Overview of web development


Agenda

  • HTTP
  • HTML
  • CSS
  • JavaScript
  • Node.js

Short history of web development

  • 1965: Ted Nelson coins the word Hypertext
  • 1968: Doug Engelbart prototypes an "online system"
  • 1977: Vint Cerf and Bob Kahn develop the TCP/IP protocols at DARPA

Short history of web development

  • 1989: Tim Berners-Lee creates the first HTTP server at CERN
  • 1995: Brendan Eich creates JavaScript at Netscape
  • 1996: W3C releases the first CSS specification

Short history of web development

  • 2005: Jesse Garrett coins the term AJAX
  • 2009: Ryan Dahl creates Node.js
  • 2010: StongLoop release Express.js
  • 2013: Facebook release React.js

Short history of web development

Web development timeline


Networking

  • Protocol: a set of data formats and rules for communication
  • Bandwidth: the total capacity of a connection (Gb/s)
  • Throughput: the amount of data a node can process (Gb/s)
  • Latency: the amount of time a client waits for a response (seconds)

HTTP

  • Text-based
  • Request-Response model
  • Intended for simple document retrieval
  • Limitations have led to many workarounds

HTTP/2

  • Faster and smarter (binary encoding)
  • Two-way communication
  • Eliminates head-of-line blocking
  • Breaks many hacks around http 1.1

SSL: Secure Socket Layer

  • attacker cannot read messages
  • attacker cannot change message
  • guaranteed through certificates

Front-end evolution

  • Static Web sites: html only, reload on action
  • AJAX Web sites: background data processing
  • SPA: single page applications

The browser

  • has been evolving for over 20 years
  • mostly open, transparent and easy-to-use
  • protects multiple interests on a page
  • provides a built-in development environment

Front-end technologies

  • HTML: content and structure
  • CSS: styling and presentation
  • JavaScript: interactivity
  • Browser APIs: multiple functionalities

Back-end evolution

  • Static web server: returns files from disk
  • CGI Protocol: run a program to generate a response
  • Application Server: language specific implementations
  • Serverless: execute code on shared cloud infrastructure

Monolithic architecture

Monolithic


Microservice architecture

Services


Questions?