Position actuelle: Accueil> Derniers articles> La bonne façon de définir les codes d'état HTTP personnalisés avec en-tête ()

La bonne façon de définir les codes d'état HTTP personnalisés avec en-tête ()

M66 2025-05-17

En PHP, la fonction d'en-tête () est utilisée pour envoyer des informations d'en-tête HTTP brutes au navigateur. Il est généralement utilisé pour la redirection, la définition du type de contenu, le contrôle du cache, la définition des codes d'état HTTP et d'autres scénarios. Dans de nombreux cas, le code d'état HTTP par défaut (tel que 200) est suffisant, mais en vertu de certains besoins spéciaux, nous devrons peut-être personnaliser le code d'état HTTP. Cet article présentera comment utiliser la fonction d'en-tête () pour définir correctement les codes d'état HTTP personnalisés.

1. Qu'est-ce qu'un code d'état HTTP?

Le code d'état HTTP est un code à trois chiffres envoyé par le serveur lors de la réponse à une demande client, ce qui représente le résultat de la demande. Les codes d'état communs sont:

  • 200 OK: la demande a réussi

  • 301 déplacé en permanence: redirigé en permanence

  • 404 Non trouvé: page introuvable

  • 500 Erreur du serveur interne: erreur de serveur interne

Vous pouvez personnaliser le code d'état en fonction de vos besoins pour décrire plus précisément différentes demandes et réponses.

2. Comment définir un code d'état HTTP personnalisé à l'aide d'en-tête ()?

La syntaxe de base de la fonction d'en-tête () est:

 header(string $header, bool $replace = true, int $http_response_code = 0)
  • $ En-tête : le paramètre qui doit être passé pour spécifier le contenu des informations d'en-tête HTTP. Vous pouvez définir le type de contenu, la redirection, le code d'état, etc.

  • $ Remplace : Il s'agit d'un paramètre facultatif, par défaut , indiquant s'il faut remplacer les informations d'en-tête existantes.

  • $ http_response_code : il s'agit d'un paramètre facultatif pour spécifier le code d'état HTTP. Si le paramètre est 0, en-tête () définira automatiquement le code d'état en fonction de la valeur d'en-tête que vous fournissez.

Définition du code d'état HTTP personnalisé

Pour définir un code d'état HTTP personnalisé, spécifiez simplement HTTP / 1.1 dans la fonction en-tête () suivi du code d'état personnalisé et des informations de description. Les exemples sont les suivants:

 <?php
// installation 404 Not Found Code d&#39;état
header("HTTP/1.1 404 Not Found");
?>

Si vous devez renvoyer un code d'état spécifique et une description d'une demande, vous pouvez également utiliser des codes comme les suivants:

 <?php
// installation 403 Forbidden Code d&#39;état
header("HTTP/1.1 403 Forbidden");
?>

Vous pouvez définir n'importe quel code d'état HTTP standard de la même manière, il suffit de modifier le code d'état et la description de ce dont vous avez besoin.

3. Exemples d'application pratiques

Exemple 1: page d'erreur personnalisée 404

Supposons que vous développiez un site Web et souhaitez renvoyer une page d'erreur 404 personnalisée lorsque l'utilisateur visite une page qui n'existe pas, vous pouvez utiliser le code suivant:

 <?php
// installation 404 Not Found Code d&#39;état
header("HTTP/1.1 404 Not Found");

// Volonté URL Page d&#39;erreur dans(Par exemple, 'error.php')Montrer à l&#39;utilisateur
include('error.php');
?>

Dans cet exemple, lorsque l'utilisateur accède à une page qui n'existe pas, le serveur renvoie un code d'état 404 et affiche la page error.php .

Exemple 2: Rediriger vers une autre page

Si vous souhaitez rediriger l'utilisateur vers une autre URL immédiatement après l'accès à la page, vous pouvez utiliser le code suivant:

 <?php
// installation 301 永久重定向Code d&#39;état
header("HTTP/1.1 301 Moved Permanently");

// installation新的重定向 URL
header("Location: https://m66.net/newpage");
exit;
?>

Ce code redirige l'utilisateur vers https://m66.net/newpage et indique au navigateur qu'il s'agit d'une redirection permanente.

Exemple 3: Personnalisez la page d'erreur 500

Lorsque vous rencontrez une erreur de serveur interne, vous pouvez définir le code d'état 500 et renvoyer une page d'erreur personnalisée, comme celle-ci:

 <?php
// installation 500 Internal Server Error Code d&#39;état
header("HTTP/1.1 500 Internal Server Error");

// Retour à la page d&#39;erreur personnalisée
include('500_error.php');
?>

Dans cet exemple, la page 500_error.php s'affiche à l'utilisateur, l'informant qu'une erreur de serveur s'est produite.

4. Choses à noter

  • La fonction d'en-tête () doit être appelée avant toute sortie, sinon les informations d'en-tête HTTP ne seront pas modifiées. Si vous avez une sortie HTML ou une sortie d'écho avant d'appeler la fonction d'en-tête () , cela entraînera une erreur.

  • Chaque page ne peut envoyer des informations d'en-tête HTTP qu'une seule fois. Portez une attention particulière lorsque vous appelez la fonction d'en-tête () plusieurs fois et ne définissez pas à plusieurs reprises le même code d'état ou les informations d'en-tête.

  • Si vous souhaitez rediriger, n'oubliez pas d'ajouter la sortie après en-tête () , sinon le programme peut continuer à exécuter le code ultérieur, entraînant un comportement inutile.

5. Résumé

La fonction d'en-tête () est un outil très puissant en PHP, qui peut être utilisé pour définir les codes d'état HTTP, effectuer la redirection de page, le cache de contrôle, etc. En utilisant la fonction en-tête () , nous pouvons mieux contrôler l'expérience utilisateur et le comportement du navigateur. Pendant le développement, lorsque vous devez renvoyer un code d'état spécifique à l'utilisateur, n'oubliez pas de définir correctement les informations d'en-tête HTTP pour assurer la stabilité et l'exactitude du site Web.