Fair warning at the start -- you will need progress during the full duration of the assignment and will greatly benefit from working at a steady pace. Like all assignments in this class, this is certainly not easy. It's expected that you will run into things that you're not immediately sure how to implement. But with some thought, you'll be able to come up with good solutions and learn valuable programming skills! This assignment will give you experience with several new things, such as daemons, network programming, coding to a protocol, and caching (i.e. you'll find this very rewarding at the end if you give yourself time to do a good job).
Find your new partner for HW2 as soon as possible, and go ahead and get started sketching out a plan & high-level design. Please feel free to reach out to instructor(s) for “automatic” partner pairing. Note also that (as we discussed for daemons) you will be dealing with multi-threaded code. Debugging can be difficult so you'll want to leave time for working through issues.
This assignment will require reading RFC specs (i.e. related to HTTP) -- this is the "coding to a spec" part of the assignment. Here are a few pointers to get started: