HTTP & Web Servers

About This Course

This course is intended for budding full-stack web developers to master the basics of HTTP, the protocol that underlies all web technology. In this course, you'll explore HTTP directly, talking with web servers and browsers by hand. You'll write and deploy low-level web applications in Python. And you'll learn more about how HTTP connects with other web technologies.

Why Take This?

HTTP is the language of the web. Learning how it works is an essential step to becoming a web developer. It's also incredibly handy for _any_ developer, given the omnipresence of HTTP today. This course focuses on the backend side of web technology, and at a relatively low level. By writing code that speaks HTTP directly, you will gain a greater understanding of how each piece of the web puzzle fits together.

Prerequisites and Requirements

**This course is intended for students with a working knowledge of Python, HTML, and the Unix shell. A Mac, Windows, or Linux computer is required.** In this course, you will run commands on your computer using a Unix-like shell environment (command line). A basic familiarity with the terminal, working with files and command-line programs, and the `git` version control software will be very useful. You will read and write object-oriented Python code using a text editor, and will read Python module documentation to learn about new modules. You will also write code that sends HTML to browsers, so a basic knowledge of HTML markup will come in handy. CSS and JavaScript are not required. This course does not use a virtual machine (VM). You will be installing and writing software on your own computer. You will need a text editor and the ability to install software. Elements of this course require communicating with web services including Github and Heroku.
HTTP is the fundamental protocol of the Web. Explore how it works using Python code and command-line tools.