If _read_requests() receives less than 4 bytes, yield and try again
Use named initializers to setup helper struct while processing request
original_url length should be calculated after parsing query string/fragment