- HTTP
- HTML
- CSS
- JavaScript
- Node.js
- 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
- 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
- 2005: Jesse Garrett coins the term AJAX
- 2009: Ryan Dahl creates Node.js
- 2010: StongLoop release Express.js
- 2013: Facebook release React.js
- 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)
- Text-based
- Request-Response model
- Intended for simple document retrieval
- Limitations have led to many workarounds
- Faster and smarter (binary encoding)
- Two-way communication
- Eliminates head-of-line blocking
- Breaks many hacks around http 1.1
- attacker cannot read messages
- attacker cannot change message
- guaranteed through certificates
- Static Web sites: html only, reload on action
- AJAX Web sites: background data processing
- SPA: single page applications
- 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
- HTML: content and structure
- CSS: styling and presentation
- JavaScript: interactivity
- Browser APIs: multiple functionalities
- 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