Assignments
All assignments are due by 23:59 EDT (i.e., Virginia’s local time, before midnight) on their corresponding posted dates. Late assignments lose 3 points for every 24 hours they are late unless prior arrangements are made with the instructor.
* Assignments are subject to change!
Assignment 1
Available Points: 20
A web server with a limited set of methods, status codes, headers, MIME types, and the access log.
Assignment 2
Available Points: 20
This assignment builds on top of the previous one and primarily focuses on conditionals and redirections with support for both long-lived and pipelined connections.
Assignment 3
Available Points: 20
This assignment builds on top of previous assignments and primarily focuses on encoding, content negotiation, and partial content.
Assignment 4
Available Points: 20
This assignment builds on top of previous assignments and primarily focuses on authentication and authorization.
Assignment 5
Available Points: 20
This assignment builds on top of previous assignments and primarily focuses on unsafe methods and server-side execution (CGI).
Extra Point Assignments
Opportunities to earn extra points will be made available on a rolling basis during the semester.
Assignment 0-0
Available Points: 5
A set of mandatory tasks, which will give extra points if done timely.
- Join GitHub
- Subscribe to the discussion board
- Create your private assignment repository
- Tell me what your class repository is
Assignment 0-1
Available Points: 5
A Dokerized echo server implementation.
- Implement a simple echo server
- Run it in a Docker container
Assignment 0-2
Available Points: 5
Creating a cloud hosting tutorial.
- Prepare a step by step cloud server set up tutorial
- Run an echo server in it
Assignment 0-3
Available Points: 6
Mobile domain redirection and non-accept-encoding content negotiation examples in the wild.
- Redirection to mobile domain
- Content negotiation other than accept-encoding
Assignment 0-4
Available Points: 9
HTTP Trailer, multiple transfer encoding, and user-agent-specific access denial examples in the wild.
- HTTP Trailer
- Multiple transfer encoding
- Access denied for some user agents
Assignment 0-5
Available Points: 9
HTTP design improvements, WARC file comparison, and in the wild examples of non-standard status codes, wrong MIME types, and unsafe methods.
- Non-standard status codes
- PATCH, PUT, and DELETE methods
- Wrong API MIME type
- HTTP/1.1 design improvements
- WARC file comparison