public function withUri(UriInterface $uri, $preserveHost = false)
    {
        $clone      = clone $this;
        $clone->uri = $uri;

        if ($preserveHost) {
            /**
             * Si l'en-tête Host est manquant ou vide, et que le nouvel URI contient
             * un composant hôte, cette méthode DOIT mettre à jour l'en-tête Host dans le retour.
             */
            $headerHost = $this->getHeader('Host');
            if (empty($headerHost) && $uri->getHost() !== '') {
                return $clone->withHeader('Host', $uri->getHost());
            }
        }

        return $clone;
    }