HTTP1, HTTP2, and HTTP Final

We should have done each one of the assignments on separate pull requests. We had a lot of trouble getting git hub to do exactly what we wanted with respect to three people editing the same group of small documents. We apologize if this makes the grading more difficult.
Well I've chatted with Cris and we've determined this isn't the right way to approach the problem of concurrency. If you run server_run() in 5 (or however many) separate threads, your server_socket.accept() is going to hang for every thread at the same time, then when it receives something, it will try to hand that something back for every thread at the same time. What you want to be doing is allow a single running of server_socket.accept() to take in multiple connections and then pass them off for handling one-by-one. This is what Gevent allows you to do, so I would recommend using it.