Expression régulière PHP en action : correspondance des codes d'état HTTP

WBOY
Libérer: 2023-06-23 11:02:01
original
1239 Les gens l'ont consulté

Pratique des expressions régulières PHP : faire correspondre les codes d'état HTTP

Dans le développement de sites Web, les codes d'état HTTP sont un concept très important. Selon le protocole HTTP, chaque réponse HTTP doit contenir un code d'état à 3 chiffres pour indiquer au client le résultat du traitement de la requête. Si vous développez des sites Web à l'aide de PHP, maîtriser les expressions régulières pour correspondre aux codes d'état HTTP est une compétence utile.

Classification des codes d'état HTTP

Les codes d'état HTTP sont divisés en cinq catégories suivantes en fonction du premier chiffre :

  • 1xx : Code d'état informatif, indiquant que le serveur a reçu la demande, mais que d'autres opérations sont nécessaires pour la terminer. le traitement.
  • 2xx : Code de statut de réussite, indiquant que le serveur a traité avec succès la demande.
  • 3xx : Code d'état de redirection, indiquant que d'autres opérations de la part du client sont nécessaires pour compléter la demande.
  • 4xx : Code d'état d'erreur du client, indiquant qu'il y a un problème avec la demande envoyée par le client, empêchant le serveur de la traiter.
  • 5xx : Code d'état d'erreur du serveur, indiquant qu'une erreur s'est produite lorsque le serveur a traité la requête.

Dans cet article, nous allons d'abord lister tous les codes d'état HTTP, puis les faire correspondre via des expressions régulières PHP.

Liste des codes d'état HTTP

Voici tous les codes d'état HTTP et leur signification :

  • 100 Continuer : Le client doit continuer à envoyer des demandes. Cette réponse provisoire permet d'informer le client qu'une partie de sa requête a été reçue par le serveur et n'a pas encore été rejetée. Continuer à envoyer la demande peut compléter la totalité ou une autre partie de la demande.
  • 101 Protocoles de commutation : Le serveur a reçu et compris la demande du client et a terminé l'opération de mise à niveau du protocole. Le serveur demandera au client de communiquer sur un autre protocole via l'en-tête Upgrade.
  • 200 OK : La requête a réussi et l'en-tête de réponse ou le corps de données attendu par la requête sera renvoyé avec cette réponse.
  • 201 Créé : La requête a abouti et le serveur a créé une nouvelle ressource.
  • 202 Accepté : Le serveur a accepté la demande, mais n'a pas encore terminé le traitement. Le succès ne peut être garanti. Généralement utilisé pour le traitement asynchrone.
  • 203 Informations non faisant autorité : le serveur a traité avec succès la demande, mais les informations renvoyées peuvent provenir d'une autre source.
  • 204 Aucun contenu : le serveur a traité avec succès la demande, mais n'a renvoyé aucun contenu.
  • 205 Réinitialiser le contenu : le serveur a traité avec succès la demande, mais n'a pas besoin de renvoyer de contenu.
  • 206 Contenu partiel : le serveur a traité avec succès une partie de la requête et le contenu renvoyé est le contenu de l'entité de la requête de plage.
  • 300 Choix multiples : la ressource demandée par le client peut être trouvée à plusieurs emplacements et le serveur renvoie une liste de ressources parmi lesquelles le client peut choisir.
  • 301 Déplacé de façon permanente : La ressource demandée par le client a été définitivement déplacée vers un nouvel emplacement et le serveur renvoie une URL de redirection au client.
  • 302 Trouvé : La ressource demandée par le client a été temporairement déplacée vers un nouvel emplacement et le serveur renvoie une URL redirigée au client.
  • 303 Voir Autre : La ressource demandée par le client a un autre URI et la méthode GET doit être utilisée pour obtenir la ressource demandée.
  • 304 Non modifié : le client a envoyé une requête conditionnelle et le serveur a indiqué au client que les ressources du cache du navigateur peuvent continuer à être utilisées.
  • 305 Utiliser le proxy : Les ressources demandées par le client doivent être accessibles via le proxy.
  • 307 Redirection temporaire : La ressource demandée par le client a été temporairement déplacée vers un nouvel emplacement et le serveur renvoie une URL redirigée au client. Cette méthode de redirection ne modifie pas la méthode de requête HTTP ni le corps du message.
  • 400 Mauvaise requête : la requête comporte une erreur de syntaxe ou la requête ne peut pas être comprise par le serveur.
  • 401 Non autorisé : la demande nécessite une vérification de l'utilisateur.
  • 402 Paiement requis : Ce code de statut est réservé pour une utilisation future et indique que la monnaie électronique pourra être utilisée à l'avenir, bien qu'elle ne soit pas utilisée actuellement. Ce code d'état est spécialement conçu pour les monnaies numériques afin de garantir une prise en charge adéquate du serveur pour les nouvelles monnaies numériques à l'avenir.
  • 403 Interdit : Le serveur a refusé la demande.
  • 404 Not Found : Le serveur ne trouve pas la ressource demandée.
  • 405 Méthode non autorisée : La méthode HTTP demandée par le client n'est pas autorisée.
  • 406 Non acceptable : le serveur ne peut pas terminer la demande en fonction des caractéristiques de contenu demandées par le client.
  • 407 Authentification proxy requise : le demandeur doit utiliser un proxy pour l'autorisation.
  • 408 Délai d'expiration de la demande : la demande a expiré.
  • 409 Conflit : La demande ne peut pas être complétée en raison d'un conflit avec l'état actuel de la ressource demandée.
  • 410 Fini : La ressource demandée n'est plus disponible sur le serveur.
  • 411 Longueur requise : le client n'a pas défini l'en-tête Content-Length dans la requête et le serveur ne peut pas traiter cette requête.
  • 412 Échec de la condition préalable : Le serveur n'a pas réussi à satisfaire une ou plusieurs des conditions préalables données dans les champs d'en-tête de la requête lors de leur validation.
  • 413 Payload Too Large : L'entité de requête est trop volumineuse et le serveur ne peut pas la gérer.
  • 414 URI trop long : L'URI demandé est trop long et le serveur ne peut pas le gérer.
  • 415 Type de média non pris en charge : le serveur ne peut pas gérer le format de média joint à la requête.
  • 416 Plage non satisfaisante : La plage demandée par le client n'est pas valide et le serveur ne peut pas la traiter.
  • 417 Échec de l'attente : le serveur ne peut pas satisfaire les informations d'en-tête de la requête Expect.
  • 421 Requête mal adressée : Cette requête concerne un serveur qui ne peut pas générer de réponse. Cela peut être dû au fait que les ressources auxquelles ces requêtes doivent accéder sont entachées ou ne sont pas entièrement publiées, ou ne sont disponibles que sur la machine locale, facteurs qui s'appliquent uniquement au client spécifique connecté à leur réseau.
  • 422 Entité non traitable : le format de la requête est correct, mais elle ne peut pas répondre en raison d'erreurs sémantiques.
  • 423 Verrouillé : La ressource actuelle est verrouillée.
  • 424 Échec de la dépendance : la requête actuelle a échoué en raison d'un conflit avec la requête précédente.
  • 425 Trop tôt : La demande ne pourra être satisfaite que lorsque les conditions requises pour charger la ressource seront remplies.
  • 426 Mise à niveau requise : le client doit passer à TLS/1.0.
  • 428 Précondition requise : Cette demande nécessite une condition préalable valide.
  • 429 Trop de demandes : Trop de demandes.
  • 431 Champs d'en-tête de requête trop grands : l'en-tête de requête dépasse la limite de taille.
  • 451 Indisponible Pour des raisons juridiques : Cette demande ne doit pas être traitée. La demande peut contenir des informations interdites.
  • 500 Erreur interne du serveur : le serveur a rencontré une erreur inconnue.
  • 501 Non implémenté : Le serveur ne prend pas en charge la fonction demandée par le client.
  • 502 Bad Gateway : Le serveur, agissant en tant que passerelle ou proxy, a rencontré une erreur lors de l'exécution de la requête.
  • 503 Service indisponible : le serveur est temporairement incapable de traiter la demande et peut renvoyer un en-tête Retry-After au client.
  • 504 Gateway Timeout : le serveur, agissant en tant que passerelle ou proxy, n'a pas réussi à recevoir une réponse du serveur en amont à temps lors de l'exécution de la requête.
  • 505 Version HTTP non prise en charge : le serveur ne prend pas en charge la version du protocole HTTP utilisée dans la requête.
  • La variante 506 négocie également : le serveur a une erreur de configuration interne qui fait que la demande en cours de traitement satisfait plus d'une réponse négociable.
  • 507 Stockage insuffisant : Le serveur ne peut pas stocker le contenu nécessaire pour compléter la demande.
  • 508 Boucle détectée : Le serveur s'est retrouvé coincé dans une boucle infinie lors du traitement de la requête.
  • 510 Non étendu : le client doit étendre davantage la réponse et le serveur n'a pas de solution correspondante.
  • 511 Authentification réseau requise : le client doit être authentifié pour utiliser les ressources réseau.

Expression régulière PHP pour correspondre au code d'état HTTP

Maintenant, essayons d'utiliser l'expression régulière PHP pour correspondre au code d'état HTTP. En PHP, nous pouvons utiliser la fonction preg_match() pour implémenter la correspondance d'expressions régulières. Voici un exemple de code pour faire correspondre les codes d'état HTTP :

$status_code = '200'; // 要匹配的状态码
$pattern = '/^[1-5][0-9]{2}$/'; // HTTP状态码的正则表达式
if(preg_match($pattern, $status_code)) {
    echo '匹配成功!';
} else {
    echo '匹配失败!';
}
Copier après la connexion

Dans le code ci-dessus, nous définissons d'abord le code d'état à faire correspondre comme 200, puis définissons l'expression régulière du code d'état HTTP comme "/^1-5 { 2}$/". Cette expression régulière peut correspondre à 3 chiffres, le premier chiffre doit être compris entre 1 et 5 et les deux chiffres restants peuvent être compris entre 0 et 9. Enfin, lorsque vous utilisez la fonction preg_match() pour la correspondance, si la valeur de retour est 1, cela signifie que la correspondance est réussie, et si la valeur de retour est 0, cela signifie que la correspondance a échoué.

Si vous souhaitez faire correspondre plusieurs codes d'état HTTP, vous pouvez utiliser la fonction preg_match_all(). Voici un exemple de code qui correspond à tous les codes d'état HTTP :

$status_codes = array('200', '404', '500'); // 要匹配的状态码数组
$pattern = '/^[1-5][0-9]{2}$/'; // HTTP状态码的正则表达式
foreach($status_codes as $status_code) {
    if(preg_match($pattern, $status_code)) {
        echo $status_code.' 匹配成功!'."
";
    } else {
        echo $status_code.' 匹配失败!'."
";
    }
}
Copier après la connexion

Dans le code ci-dessus, nous définissons d'abord le tableau de codes d'état à correspondre, puis utilisons foreach() pour parcourir le tableau. Dans la boucle, nous utilisons la fonction preg_match() pour effectuer la correspondance et afficher les résultats de la correspondance en fonction de la valeur de retour.

Résumé

Le code de statut HTTP est un concept très important dans le développement de sites Web. Parfois, nous devons faire correspondre les codes d'état HTTP via des expressions régulières. En PHP, nous pouvons utiliser la fonction preg_match() pour implémenter la correspondance d'expressions régulières. J'espère que grâce à cet article, vous pourrez maîtriser les compétences nécessaires pour faire correspondre les codes d'état HTTP avec les expressions régulières PHP.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!