Aller au contenu
Échap
  • Tapez ce que vous cherchez avec vos mots : « Slack », « 503 », « prix ».

HTTP et assets

La vérification par défaut — la page répond, avec le bon statut, dans le délai, et ses fichiers JS et CSS existent encore.

Mis à jour le 11 septembre 2026

Sur cette page

Une cible HTTP est ce que PostShip ajoute quand vous collez une URL sans rien préciser. Elle demande la page comme un visiteur, lit le statut, mesure le temps de réponse, cherche le contenu attendu, puis vérifie que les scripts et feuilles de style référencés par la page répondent aussi. C'est cette dernière partie qui attrape le déploiement classique : la page reste en apparence au vert, mais elle charge un app.3f2a.js qui n'existe plus.

Ce que PostShip vérifie

  1. La requête. Un GET avec le User-Agent PostShipBot/0.1 (+https://postship.fr), un délai de 12 secondes, et 5 redirections au plus — au-delà, le passage est en erreur « Boucle de redirection. ». Chaque saut est revérifié : PostShip ne suit jamais une redirection vers une adresse privée. Le corps est lu jusqu'à 512 Ko.
  2. Le statut. Il doit être exactement le statut attendu — 200 par défaut. Un 301 ou un 302 sont suivis, donc le statut comparé est celui de la dernière réponse.
  3. Le TTFB. Le temps jusqu'au premier octet de la réponse, mesuré depuis les serveurs de PostShip. Il est toujours enregistré (page Performance) et devient un échec seulement si vous posez un seuil de latence.
  4. Le contenu attendu. « Doit contenir » et « Ne doit pas contenir », comparés comme un lecteur le ferait — détail sur Contenu attendu.
  5. Le HTML. Sur une réponse text/html, PostShip relève le titre, la description, le canonical, le h1 et l'og:title (ils alimentent le radar de mutation et le diff de ship) et vérifie que chaque bloc JSON-LD est du JSON valide. Titre ou description absents ne sont jamais un échec ici : beaucoup de pages légitimes n'en ont pas.
  6. Les assets. Les script src et link rel="stylesheet" de la page, même origine et https seulement (les scripts tiers ont leur propre contrôle : Scripts tiers), au plus 15, dans l'ordre du document. Chacun reçoit un HEAD — un GET si le serveur répond 405 — sous le même délai de 12 secondes que la page. Un asset est cassé s'il ne répond pas, répond 400 ou plus, ou répond du text/html (la page 404 d'un framework, servie en 200, à la place du fichier).

Régler

Au moment de l'ajout (Projet → URLs → « Ajouter une URL » → Options avancées), ou ensuite sur le détail de l'URL :

  • Statut attendu : de 100 à 599. Utile pour surveiller qu'une ancienne adresse redirige bien (attendre 200 après suivi) ou qu'une page privée répond 401 sans en-tête.
  • Doit contenir / Ne doit pas contenir : 200 caractères chacun.
  • Nom et valeur du header (page privée) : pour une page derrière un secret partagé. Quatre noms sont acceptés — Authorization, X-Monitoring-Key, X-Health-Token, X-Api-Key — et rien d'autre : un Host ou un Cookie permettrait de détourner la requête ou de rejouer une session. L'en-tête n'est envoyé qu'à l'hôte d'origine, jamais à une redirection vers un autre hôte, jamais aux assets. La valeur est stockée hors de portée de votre session : elle s'écrit, elle ne se relit pas.
  • Seuil de latence : sur le détail de l'URL, panneau « Seuil de latence ».

Ce qui déclenche une alerte

CodePhrase de l'alerte
statut différent de l'attenduhttps://acme.fr/checkout répond 503.
asset:404:/_next/static/app.jsLa page répond 200 mais un fichier statique est introuvable : /_next/static/app.js.
asset:error:/style.cssLe fichier n'a pas répondu du tout (réseau, délai).
expect_contains:Ajouter au panier« Ajouter au panier » n'apparaît plus sur la page.
expect_not_contains:Erreur 500« Erreur 500 » apparaît sur la page, et ne le devrait pas.
ttfb_depasse:800:1243La page a mis 1243 ms à répondre, au-delà du seuil de 800 ms.
json_ld_syntax_errorLe JSON-LD contient une erreur de syntaxe.
html_unparsableLe HTML retourné est illisible.

Un passage en erreur (délai, boucle, DNS) ouvre aussi un incident, avec la raison en clair : https://acme.fr : Timeout (12s).

L'alerte part à la transition — quand la série d'échecs vient d'atteindre le nombre réglé dans Règles — et de nouveau seulement si la panne change de nature. Le retour au vert envoie « Rétabli ». Un fichier statique manquant coûte 25 points au Ship Score.

Limites et plans

FreeProTeam
URL surveillées (tous projets)31550
Cycle30 min5 min5 min
Assets vérifiés par page151515

La vérification est identique sur tous les plans. Dans vos journaux, filtrez sur le User-Agent PostShipBot.

Dépannage

Pourquoi la page est en échec alors qu'elle s'ouvre dans mon navigateur ?

Regardez le détail de l'URL. Le cas le plus fréquent : un asset référencé par un HTML mis en cache et qui pointe vers le build précédent. Le navigateur a l'ancien fichier en cache, PostShip non. Purgez le cache du CDN ou attendez le prochain déploiement.

Pourquoi le statut attendu n'est pas respecté alors que le serveur renvoie 200 ?

Parce que PostShip suit les redirections et compare le dernier statut. Une page qui redirige vers une page de connexion en 200 passe ; une page qui redirige plus de cinq fois est en erreur.

Pourquoi le contenu attendu est absent alors qu'il est bien sur la page ?

Le corps est lu jusqu'à 512 Ko ; au-delà, le texte n'est pas vu. Le détail du passage indique bodyTruncated. Choisissez un texte qui apparaît tôt dans la page, ou allégez le HTML (Poids de page).