Comprendre la distinction entre HTTP_HOST et SERVER_NAME en PHP
PHP fournit deux variables, $_SERVER['HTTP_HOST'] et $_SERVER[' SERVER_NAME'], qui transmettent des informations sur l'hôte de la requête Web. Cet article examinera les différences entre ces variables et fournira des conseils sur le moment où les utiliser.
HTTP_HOST
La variable HTTP_HOST est collectée à partir de l'en-tête de la requête HTTP et représente l'hôte cible spécifié par le client. Cette valeur peut être manipulée par l'agent utilisateur et n'est pas nécessairement fiable pour des raisons de sécurité.
SERVER_NAME
La variable SERVER_NAME est configurée dans les fichiers de configuration du serveur et représente le nom d'hôte du serveur hébergeant le script PHP. Il est généralement plus fiable car il est sous le contrôle du serveur.
Choisir entre HTTP_HOST et SERVER_NAME
Le choix approprié entre HTTP_HOST et SERVER_NAME dépend de l'utilisation prévue :
Considérations sur la fiabilité
Il Il est important de noter que la fiabilité de SERVER_NAME dépend de la configuration du serveur Web. Si la directive UseCanonicalName n'est pas activée dans la section VirtualHost du serveur HTTP Apache, elle peut renvoyer de manière incorrecte la valeur de l'en-tête de l'hôte HTTP pour SERVER_NAME.
La définition de UseCanonicalName sur « on » garantit que le serveur HTTP Apache fournit une valeur SERVER_NAME précise. Il est recommandé de vérifier la configuration du serveur pour garantir la fiabilité de cette variable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!