Quelle est la différence entre HTTP_HOST et SERVER_NAME en PHP ? Utilisation correcte
Bonjour à tous ! Je suis débutant en PHP et j'essaie de comprendre les variables serveur. Je vois souvent dans le code d'autres développeurs l'utilisation de `$_SERVER['HTTP_HOST']` et `$_SERVER['SERVER_NAME']`. À première vue, ils renvoient tous les deux le nom d'hôte, mais j'ai remarqué qu'ils donnent parfois des valeurs différentes.
Par exemple, j'ai un script simple :
```php
';
echo 'SERVER_NAME: ' . $_SERVER['SERVER_NAME'] . '
'; ?> ``` Sur le serveur local (OpenServer), les deux affichent `localhost`. Mais quand j'ai mis le site en ligne, j'ai remarqué qu'en accédant via l'adresse IP, `HTTP_HOST` affiche l'IP, tandis que `SERVER_NAME` affiche le nom de domaine. J'ai aussi entendu dire que `HTTP_HOST` peut être falsifié via les en-têtes de la requête HTTP, ce qui crée une vulnérabilité. S'il vous plaît, dites-moi : 1. Quelle est la différence fondamentale entre ces variables ? 2. Laquelle est la plus sûre à utiliser pour les redirections, la génération de liens et la vérification de domaine ? 3. Existe-t-il des cas où elles peuvent radicalement différer ?
'; ?> ``` Sur le serveur local (OpenServer), les deux affichent `localhost`. Mais quand j'ai mis le site en ligne, j'ai remarqué qu'en accédant via l'adresse IP, `HTTP_HOST` affiche l'IP, tandis que `SERVER_NAME` affiche le nom de domaine. J'ai aussi entendu dire que `HTTP_HOST` peut être falsifié via les en-têtes de la requête HTTP, ce qui crée une vulnérabilité. S'il vous plaît, dites-moi : 1. Quelle est la différence fondamentale entre ces variables ? 2. Laquelle est la plus sûre à utiliser pour les redirections, la génération de liens et la vérification de domaine ? 3. Existe-t-il des cas où elles peuvent radicalement différer ?