The proxy should be transparent to the client and server. Your design cannot rely on any special modification to the client or server. Your web proxy should tolerate many simultaneous requests. The web proxy will accept connections from multiple clients and forward them using multiple connections to the appropriate servers. No client or server should be able to hang the web proxy by refusing to read or write data on its connection.
Clients dislike stale pages.
This allows the server to determine freshness. On the other hand, the proxy could cache pages for a fixed period of time. In this case, the proxy determines freshness. Moreover, your proxy cache should work correctly. The lab TA will test that your proxy handles requests as stated in RFC 1945.