The FastCGI state machine currently consists of six states,
each of which is visited in turn as a connection is processed.
prepare for a connection
wait for a connection
build the request
write the request to the network
read the response from network and push it to the write queue
terminate the connection
The connect, write, and read states may need to wait for an fdevent.
The delays are represented by loops in the state diagram below.