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.
- 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
The Energy & Resources Institute
4th Main, 2nd Cross
Domlur, 2nd Stage
Introduction to the key ideas behind the Internet, including IP address, domain name, ports and sockets.
- 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.
- 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 is a software consultant and trainer based in Visakhapatnam. He has over 13 years of experience in architecting and developing variety of software applications. He is co-author of web.py, a micro web framework in Python. He has worked at Strand Life Sciences and Internet Archive.