A restart occurs when a REQ_RESTART is returned from a PathCheck or Service function. For example, when a CGI is redirected using a relative path.
On a restart, much of the request is cleared. Some elements of the HTTP request (rq->reqpb), the server’s “working” variables (rq->vars), and response headers (rq->srvhdrs) are cleared. The method, protocol, and clf-request variables from rq->reqpb are saved. The saved variables are put back into the data structure. The new URI is inserted (and if there is a query string in the new URI, that too is inserted) into rq->reqpb. The parameter rq->rq_attr.req_restarted is set to 1. For more information on the request data structure, seeRequest.