Skip to content

Client-Server Communication

Free Course

HTTP/1 to HTTP/2 and all things Security

Related Nanodegree Program

Introduction to Programming

In collaboration with
  • Google

About this course

We use websites all the time, but how does clicking a link in your browser or typing in a URL in the address bar get you to a website? How does the server know what information you're looking for or how to send you that information once it's figured that out? How can you protect your users from attackers? Dig into this course and you'll be able to answer these questions!

This course will guide you through how a client communicates with a server. You'll learn about HTTP's request and response cycle, dig into HTTP headers and verbs, distinguish HTTP/1 from HTTP/2 capabilities, all while experiencing the importance of security by digging into the details of HTTPS. Throughout the course, you'll learn both security best practices, as well as ways to improve the performance of your web apps. We'll provide you with handcrafted servers where you'll diagnose problematic server setups, issues with SSL certificates, and even have a chance to hack an example bank website to transfer funds.

What you will learn

  1. HTTP’s Request Response Cycle
    • Learn about HTTP's request and response cycle.
    • What makes up an HTTP requests and response?
    • What originates an HTTP request and how do they relate to one another?
  2. HTTP/1
    • Find out how HTTP/1 is used in practice.
    • Map the requests and response types from lesson 1 into HTTP verbs and response codes & headers.
  3. HTTPS
    • How does HTTPS differ from HTTP?
    • TLS, cryptography, and Certificate Authorities.
    • HTTP Mixed Content issues.
  4. HTTP/2
    • Learn how HTTP/2 improves on and extends HTTP/1.
    • Look at optimizations for HTTP/1 that are now anti-patterns in HTTP/2.
  5. Security
    • Look at and resolve common security problems like CORS, CSRF, XSS, and more!

Prerequisites and requirements

We expect that you are comfortable reading and writing HTML, CSS and JavaScript. Knowledge of JavaScript's Fetch API is not required but will be beneficial. Check out our JavaScript Promises course to learn about Fetch.

Other Requirements:

  • comfort with command line tools

See the Technology Requirements for using Udacity.

Why take this course?

Typically, web developers do not work directly with underlying platform of HTTP. But knowing how information is transferred across the wire is vital to creating efficient and professional apps. This course will dig into the ins and outs of application performance as well as cover common security pitfalls and how to prevent them.

Learn with the best.

  • Surma


  • Richard Kalehoff
    Richard Kalehoff