protected function detectRequest()
    {
        $parseUrl = parse_url($this->serverValue('REQUEST_URI'));
        $scheme   = ($this->ssl === true) ? 'https' : 'http';

        $request = [
            'scheme'   => $scheme,
            'host'     => $this->serverValue('HTTP_HOST'),
            'port'     => $this->serverValue('SERVER_PORT'),
            'user'     => $this->serverValue('PHP_AUTH_USER'),
            'pass'     => $this->serverValue('PHP_AUTH_PW'),
            'path'     => '',
            'query'    => '',
            'fragment' => '',
        ];

        //Keep auto-convert to object. Less complexity for merge with array.
        $this->request = (object) array_merge($request, $parseUrl);
    }