function setProtocol($protocol)
    {
        $protocol = (string) $protocol;
        $protocol = strtolower($protocol);
        
        if ($protocol !== 'http' && $protocol !== 'https')
            throw new \InvalidArgumentException(sprintf(
                'Protocol (%s) not supported; using "http" or "https".'
                , $protocol
            ));
        
        $this->protocol = $protocol;
        return $this;
    }