Course Outline


About HTTP/2, REST and XMLHttpRequest

Pre-requisites

  • Participants must have a basic knowledge of HTTP and Web Application Development

Duration

  • 3-5 days (covering a subset of the topics - contact us for more information/customization)

Lab Setup

  • Hardware Configuration - Participants must have access to a system with the following hardware configuration:
    • 2GB of free RAM, 20GB of free disk space and full network connectivity
  • Software Configuration
    • Ubuntu 16.04 Desktop Edition (sudo/root access required)

Course Outline for HTTP/2, REST and AJAX

Introduction to HTTP
  • Introduction to Networking, TCP/IP and Application Layer Protocols
  • History of HTTP/1.x
  • How HTTP/1.x works
  • Request/Response cycle
HTTP/1.x Hacks to Achieve Web Scale
  • Combining JS/CSS
  • Image sprites
  • Multiple connections per origin
  • Server Push patterns
  • Websockets
Introduction to REST
  • What is a Resource?
  • Resource Representations
  • Uniform Resource Identifiers (URIs)
  • How HTTP methods work (a REST explanation)
  • Designing RESTful APIs and Apps
XMLHttpRequest and AJAX
  • World before AJAX
  • History of AJAX and Single Page Applications
  • Cross browser issues and HTML5
  • Applications Today
  • History APIs
  • Hacks to overcome cross-origin issues - JSONP, postMessage etc
Introduction to HTTP/2
  • What’s wrong with HTTP/1.x?
  • SPDY and the History of HTTP/2
Main HTTP/2 Features
  • A binary protocol
  • Request and response multiplexing
  • Single connection per origin
  • Flow control
  • Server push
  • Best practices of HTTP/1.x – anti patterns in HTTP/2?
HTTP/2 Tools
  • Getting started with HTTP/2
  • Browser compatibility
  • Using with Apache2
  • Caddy server
  • Debugging with Chrome Developer Tools
  • Client tooling – curl
  • Integrating with SSL

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.