Trainer

Jump to

HTTP Bottom Up is a two-day hands-on course to explore everything that happens behind the scenes of your favorite web framework.

This workshop explores building web applications starting all the way from bare sockets, without using any framework. Even though this is not the most production way to build web applications, this exercise will give a chance to observe and understand everything that happens behind the scenes of any web application.

After the course, the participants will be in a better position to architect web applications and reason about their performance and scaliabity.

The workshop uses Python 3 for all the examples and exercises.

Audience

The course is designed for professional software developers involved in developing web applications.

This course assumes that the participants already have decent experience in building web applications and familiarity with Python programming language.

Pre-requisites

Experience in building web applications

Familiarity with Python programming language

Course Outline

The Internet

Introduction to the key ideas behind the Internet, including IP address, domain name, ports and sockets.

Internet Applications

Introduciton to client-server architecture

Study of popular internet applications like SMTP, NTP, DNS etc.

Building Internet applications

Concurrency patterns (multi-threading, multi-processing and async)

The World Wide Web

Understanding URIs and Hypertext

Deep dive into HTTP

Exploring HTTP methods, status codes and using curl and netcat

Building an HTTP client

Write programs to:

crawl web pages

submit forms

extract information from web pages

Building an HTTP server

Build a web server from scratch that supports:

serving static files

CGI

Python WSGI

Writing Simple WSGI applications

Implement a WSGI server

Building a web framework

Build a web framework from scratch containing the following features:

routing system

utilities to read query string

access HTTP headers

read POST input

handle cookies and sessions

Best Practices and Scalability Considerations

Discussion on best practices including REST

Discussion on scalability

Duration & Format

The suggested duration of the course is 2 days.

This is an interactive course and it is suggested to limit the number of participants to 15 or less for it to be effective.

Trainer

Anand has been crafting beautiful software since a decade and half. He’s now building a data science platform, rorodata, which he recently co-founded. He regularly conducts advanced programming courses through Pipal Academy.
He is co-author of web.py, a micro web framework in Python. He has worked at Strand Life Sciences and Internet Archive.