public function revive()
    {
        if ($this->isStale !== true) {
            return $this;
        }
        
        $request = $this->buildGlobalEnvironment();
        
        return $request
            ->withServerParams($this->getServerParams())
            ->withCookieParams($this->getCookieParams())
            ->withQueryParams($this->getQueryParams())
            ->withParsedBody($this->getParsedBody())
            ->withBody(clone $this->getBody())
            ->withUploadedFiles($this->getUploadedFiles());
    }