
HTTP & Web Servers
Summary
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.
Expected Learning
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.
Syllabus
Lesson 1: Requests & Responses
In this lesson, you'll explore HTTP by running a web server on your own computer, then by interacting with servers and browsers from the command line. You'll discover HTTP requests and responses, headers, status codes, and other features of the protocol.
Lesson 2: The Web from Python
In this lesson, you'll write code that speaks HTTP both as a server and a client. You'll build Python code that accepts HTML form submissions, accesses web services, and constructs formatted responses.
Lesson 3: HTTP in the Real World
In this lesson, you'll connect your knowledge of HTTP basics with the rest of the world. You'll deploy services you've written so that other people can see them. You'll investigate web server capacity, cookies, security, and new developments in the protocol.
Required Knowledge
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.