protected function copy()
    {
        if ($this->isStale) {
            throw new \BadMethodCallException("Unable to modify a stale server request object");
        }
        
        $request = clone $this;
        
        if ($this->isStale === false) {
            $this->dereferenceProperty('serverParams', 'cookies', 'queryParams', 'postData', 'uploadedFiles');
            $this->isStale = true;
        }
        
        return $request;
    }