Dépannage des erreurs de la classe 400

Les réponses avec le code d'erreur de classe 4xx surviennent lorsqu'un problème se situe du côté du client et qu'il s'agit potentiellement d'un problème de réseau.

  • les codes 4xx peuvent être utilisés en réponse à n'importe quelle méthode de demande.
  • Le serveur d'origine peut inclure une explication dans la réponse, qui doit être affichée par l'agent utilisateur, à l'exception d'une requête HEAD.
  • Les règles personnalisées peuvent renvoyer n'importe quel code de réponse compris entre 400 et 499 dans votre page HTML, si le propriétaire du site a créé une règle avec une action de blocage et configuré un code de réponse personnalisé.

Erreur 400 : Mauvaise demande

Le client n'a pas envoyé une requête correcte au serveur. Il s'agit d'une erreur du client, telle qu'une syntaxe de demande malformée, une demande non valide, un cadrage de message ou un acheminement de demande trompeur. URL Par exemple, si la requête contient un caractère spécial qui n'est pas correctement encodé en UTF-8 (ou en UTF-8 avec des pourcentages), l'erreur « HTTP 400 » est renvoyée.

Si vous obtenez une erreur d' HTTP s lors de l'utilisation de l'API CIS, assurez-vous que vous utilisez la syntaxe, les paramètres et le corps corrects pour votre appel API.

Erreur 401 : Non autorisé

La demande a été envoyée sans les informations d'authentification appropriées.

Erreur 403 : Interdit

Si vous voyez une erreur 403 sans CIS, celle-ci est toujours renvoyée directement par le serveur web d'origine, et non par CIS, et est généralement liée aux règles d'autorisation sur votre serveur. Les causes les plus courantes de cette erreur sont les suivantes :

  • Règles d'autorisation que vous avez définies sur le serveur web d'origine (dans le fichier .htaccess d'Apache par exemple)
  • Règles de sécurité des modems
  • Règles de refus d'IP. Assurez-vous que les plages d'adresses IP de CIS ne sont pas bloquées.

CIS servira des réponses 403 si la demande enfreint une règle gérée par défaut du WAF ou une règle gérée par le WAF activée pour cette zone particulière.

Résolution Si vous voyez une réponse 403 qui contient une marque d' CIS, il s'agit du code de réponse HTTP renvoyé avec des fonctions de sécurité :

  • Règles personnalisées ou gérées WAF avec l'action de défi ou de blocage
  • Niveau de sécurité défini par défaut sur Moyen
  • La plupart des codes d'erreur 1xxx CIS
  • Le contrôle d'intégrité du navigateur

Erreur 404 : Non trouvé

Le serveur d'origine n'a pas pu ou n'a pas voulu trouver la ressource demandée. Cela signifie généralement que le serveur hôte n'a pas pu trouver la ressource. Pour servir une version plus permanente de cette erreur, utilisez un code d'erreur " 410

Ces erreurs se produisent généralement lorsque quelqu'un saisit mal une adresse URL ( URL ) sur votre site, lorsqu'un lien est rompu depuis une autre page, lorsqu'une page qui existait auparavant est déplacée ou supprimée, ou lorsqu'une erreur se produit lors de l'indexation de votre site par un moteur de recherche. Pour un site classique, ces erreurs représentent environ 3 % du nombre total de pages vues, mais elles sont souvent ignorées par les plateformes d'analyse traditionnelles.

Les propriétaires de sites web mettent généralement en place une page personnalisée à afficher lorsque cette erreur est générée.

Résolution CIS ne génère pas d'erreurs '404 pour les sites web des clients. CIS ne fait que transmettre la demande au serveur d'origine. Si vous voyez un " 404 pour votre site, contactez votre fournisseur d'hébergement pour obtenir de l'aide.

Erreur 405 : méthode non autorisée

Le serveur d'origine connaît la ressource demandée, mais la méthode de requête n'est pas prise en charge.

Résolution Le serveur d'origine doit également fournir un en-tête Allow avec une liste des cibles prises en charge pour cette ressource.

Erreur 406 : Non acceptable

Le serveur ne peut pas produire une réponse qui corresponde à la liste des valeurs acceptables définies dans les en-têtes de négociation du contenu de la demande, et le serveur n'est pas disposé à fournir une représentation par défaut.

Résolution Au lieu de générer cette erreur, vous pouvez proposer la méthode la moins préférée à l'agent utilisateur.

Erreur 407 : Authentification requise

Le client n'a pas envoyé l'authentification requise avec la demande.

Résolution Réessayer la demande avec l'authentification nécessaire.

Erreur 408 : Délai d'attente de la demande

Le serveur d'origine n'a pas reçu la requête complète dans un délai raisonnable. Cette erreur signifie que le serveur ne veut pas attendre et poursuivre la connexion.

Résolution Cette erreur n'est pas courante car les serveurs utilisent généralement l'option de connexion "close".

Erreur 409 : Conflit

La demande n'a pas abouti en raison d'un conflit avec l'état actuel de la ressource. Cette erreur se produit généralement lors d'une requête " PUT où plusieurs clients tentent de modifier la même ressource.

Résolution Le serveur doit générer une charge utile contenant suffisamment d'informations pour que le client puisse reconnaître la source du conflit. Les clients peuvent et doivent réessayer la demande.

CIS génère et sert une réponse " 409 pour un " Error 1001: DNS Resolution Error.

Erreur 410 : Disparu

La ressource demandée est définitivement absente à l'origine.

Résolution Le serveur suggère que les liens référençant la ressource soient supprimés. Le serveur n'est pas qualifié pour utiliser ce code d'état au lieu d'une réponse " 404, ni tenu d'avoir cette réponse pendant une période spécifique.

Erreur 411 : Longueur requise

Le client n'a pas défini la longueur du contenu du corps de la requête dans les en-têtes, et ce paramètre est nécessaire pour obtenir la ressource.

Résolution Le client peut renvoyer la demande après avoir ajouté le champ d'en-tête.

Erreur 412 : Échec de la précondition

Le serveur refuse la demande parce que la ressource ne remplit pas les conditions spécifiées par le client.

Pour donner un exemple de contrôle de version, un client modifie une ressource existante et définit l'en-tête " If-Unmodified-Since pour qu'il corresponde à la date à laquelle le client a téléchargé la ressource et a commencé à la modifier. Si la ressource a été modifiée (probablement par un autre client) après cette date et avant le téléchargement des modifications, cette réponse est générée parce que la date de la dernière modification est postérieure à la date fixée dans le " If-Unmodified-Since par le client.

La résolution CIS servira cette réponse.

Erreur 413 : charge utile trop volumineuse

Refus du serveur de traiter la demande parce que la charge utile envoyée par le client est plus importante que ce que le serveur accepte. Le serveur peut fermer la connexion.

Si ce refus n'est que temporaire, le serveur doit envoyer un en-tête " Retry-After pour indiquer à quel moment le client doit réessayer la demande.

La limite de téléchargement pour le CIS dépend de votre plan. Si vous dépassez cette limite, votre appel à l'API reçoit une erreur de type " 413 Request Entity Too Large

Limite de téléchargement par plan
Standard Entreprise
Disponibilité Oui Oui
size 200 s maximales de téléchargement : MB 500 Mo

Résolution Si vous avez besoin d'un téléchargement plus important, divisez les demandes en plus petits morceaux, modifiez votre enregistrement DNS en DNS uniquement, ou passez à un plan supérieur.

Erreur 414 : URI trop long

Refus du serveur car l'URI est trop long pour être traité. Par exemple, si un client tente une requête " GET avec un URI anormalement long après un POST, cela peut être interprété comme un risque de sécurité et une erreur " 414 est générée.

Résolution CIS générera cette réponse pour un URI de plus de 32KB.

Erreur 415 : type de média non pris en charge

Refus du serveur de traiter le format de la charge utile actuelle. Une façon d'identifier et de résoudre ce problème consiste à examiner les en-têtes " Content-Type ou " Content-Encoding envoyés dans la requête du client.

Erreur 416 : Plage non satisfaisable

Le code de réponse d'erreur « 416 » indique qu'un serveur ne peut pas servir les plages demandées. Exemple :

  • HTTP/1.1 416 Range Not Satisfiable
  • Content-Range: bytes */12777

Résolution La raison la plus fréquente d'une erreur '416 est que le fichier n'inclut pas de telles plages. En général, les navigateurs demandent à nouveau l'intégralité du fichier ou interrompent l'opération.

Erreur 417 : L'attente a échoué

Le serveur n'a pas satisfait aux exigences spécifiées dans l'en-tête 'Expect de la requête du client.

Erreur 429 : trop de requêtes

Le client a envoyé trop de requêtes dans le laps de temps spécifié par le serveur (souvent appelé "limitation du débit"). Le serveur peut répondre en fournissant des informations permettant au demandeur de réitérer sa demande après un certain temps.

La limite de débit globale par défaut pour l'API CIS est de 100 requêtes par minute et par utilisateur, et s'applique de manière cumulative, que la requête soit effectuée via le tableau de bord, la clé API ou le jeton API. Si vous dépassez cette limite, tous les appels à l'API pendant les cinq minutes suivantes sont bloqués et reçoivent une réponse de type " HTTP 429

Certains appels d'API spécifiques ont leurs propres limites et sont documentés séparément, tels que les API de purge du cache, les API d' GraphQL, et les API de jeux de règles.

CIS génère et envoie ce code d'état lorsqu'une requête est limitée en taux. Si les visiteurs de votre site reçoivent ces codes d'erreur, vous pouvez le voir dans l'outil d'analyse de la limitation des taux.

Erreur 451 : Indisponible pour raison légale

Le serveur n'est pas en mesure de livrer la ressource en raison d'actions en justice.

Ce sont généralement les moteurs de recherche et les fournisseurs d'accès à Internet qui sont concernés par ce code de réponse, et non le serveur d'origine. La réponse doit inclure une explication dans le corps de la réponse avec les détails de la demande légale.

Erreur 499 : Demande de fermeture du client

L'erreur " 499 est un code de réponse spécifique à nginx qui indique que la connexion a été fermée par le client alors que le serveur est toujours en train de traiter sa requête, ce qui empêche le serveur de renvoyer un code d'état.

Cette erreur apparaît dans les journaux CIS et les analyses de code d'état pour les clients Enterprise.

Comme Cloudflare, partenaire d’ CIS, repose sur nginx, on observe un code d’erreur 499 HTTP dans les journaux et les analyses de Cloudflare pour les connexions qui sont interrompues avant que CIS n’ait fini de traiter la requête. Il est normal de les voir apparaître dans vos journaux lorsque les clients ferment les connexions.

Pour mieux comprendre le contexte, une connexion TCP doit être établie entre CIS et le serveur d'origine du site web avant qu'un protocole de niveau supérieur n'entame la conversation. Pour établir une connexion, TCP utilise une poignée de main à trois étapes :

  1. SYN : CIS envoie trois paquets SYN au serveur d'origine.
  2. SYN+ACK : Le serveur d'origine répond par un SYN+ACK.
  3. ACK : Enfin, CIS renvoie un ACK au serveur d'origine.

À ce stade, CIS et le serveur d'origine ont tous deux reçu un accusé de réception de la connexion, et la communication est établie. Cependant, si le serveur d'origine ne renvoie pas un SYN+ACK à CIS dans les 15 secondes, CIS réessaie une fois de plus.

En fonction de la valeur du délai d'attente du côté du client, vous pouvez voir trois scénarios différents avec leur propre code d'état généré.

  • Si le client dispose d'un délai plus court (moins de 30 secondes), il abandonne la connexion et CIS enregistre l'erreur " 499.
  • Si le délai d'expiration du client est plus long (supérieur à 30 secondes), une fois la connexion TCP établie, la transaction HTTP se poursuit. Dans ce cas, la commande CIS renvoie un code d'état normal de HTTP 200.
  • Si le délai d'expiration défini par le client est plus long et qu' CIS n'a pas pu établir la négociation TCP avec le serveur d'origine, CIS renvoie HTTP 522.