Pipal Academy

You’re viewing a past event. View upcoming events →

HTTP Bottom Up is a two-day hands-on workshop 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.

Pre-requisites

  • Experience of building web applications in any programming language
  • Familiarity with Python

September 16 & 17, 2016 (Friday & Saturday) 9:00 AM to 5:00 PM

Venue

The Energy & Resources Institute
4th Main, 2nd Cross
Domlur, 2nd Stage
Bangalore, Karnataka

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 and 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

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.