If the length of expected header is accidentally larger than the length of the actual header, `socket.read()` will keep pulling bytes from the socket which could no longer produce any, hence the later calls of `socket.read` will return a `WouldBlock` Error.