Pipal Academy

Please write to us at hello@pipal.in if you would like this course to be conducted at your organization.

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.

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

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

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.

Anand Chitipothu

Anand has been crafting beautiful software since two decades. He has strong product development experience with deep insights in system design, scalability, and developer experience. He has co-authored web.py, a micro web framework in Python, built Open Library at the Internet Archive, created a machine learning platform at Rorodata, trained hundreds of engineers through his deep-dive courses.