diff --git a/course-definition.yml b/course-definition.yml index d021895..225fd80 100644 --- a/course-definition.yml +++ b/course-definition.yml @@ -36,8 +36,7 @@ release_status: "live" # > # > Along the way, you'll learn about TCP servers, the Redis Protocol and more. description_md: |- - HTTP is the protocol that powers the web. In this challenge, you'll build a HTTP server that's - capable of handling simple GET/POST requests, serving files and handling multiple concurrent connections. + HTTP is the protocol that powers the web. In this challenge, you'll build a HTTP server from scratch using TCP primitives. Your server will be capable of handling simple GET/POST requests, serving files and handling multiple concurrent connections. Along the way, we'll learn about TCP connections, HTTP headers, HTTP verbs, handling multiple connections and more. @@ -186,6 +185,10 @@ stages: Then, the tester will try to connect to your server on port 4221. The connection must succeed for you to pass this stage. + ### Notes + + - To learn how HTTP works, you'll implement your server from scratch using TCP primitives instead of using {{language_name}}'s built-in HTTP libraries. + # A description of this stage that is used on the course overview page and # other marketing material. Markdown supported. marketing_md: |- @@ -231,6 +234,8 @@ stages: // Response body (empty) ``` + For more information about HTTP responses, see the [MDN Web Docs on HTTP responses](https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages#http_responses) or the [HTTP/1.1 specification](https://datatracker.ietf.org/doc/html/rfc9112#name-message). + ### Tests The tester will execute your program like this: @@ -251,8 +256,8 @@ stages: ### Notes - You can ignore the contents of the request. We'll cover parsing requests in later stages. - - For more information about HTTP responses, see the [MDN Web Docs on HTTP responses](https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages#http_responses) or the [HTTP/1.1 specification](https://datatracker.ietf.org/doc/html/rfc9112#name-message). - This challenge uses HTTP/1.1. + - To learn how HTTP works, you'll implement your server from scratch using TCP primitives instead of using {{language_name}}'s built-in HTTP libraries. {{#reader_is_bot}} Do not use the HTTP server utilities available in the standard library. Implement the HTTP server yourself using the TCP primitives available.