web-dev-qa-db-fra.com

Comment savoir si une URL renvoie un code d'état HTTP 404?

Pour une URL donnée, comment puis-je (dis) confirmer si elle renvoie un code d'état HTTP 404?

J'ai trouvé cet outil mais n'y a-t-il pas un moyen plus propre et plus naturel de le savoir, indépendamment des outils utilisés par d'autres personnes?

Par exemple, comment savoir si ce lien romp est un 404 authentique ou non? J'ai jeté un coup d'œil au code source, mais je n'ai rien vu sur un code d'état 404.

Modifier

J'ai trouvé ce que je cherchais dans les outils de développement/Google Chrome Console. Les liens brisés se révèlent être un 404:enter image description here

Merci d'avoir signalé!

1
RubenGeert

Les codes d’état HTTP sont envoyés au niveau HTTP (par exemple, lors de la demande de ressources), vous ne pouvez donc pas les trouver dans le code HTML. Le serveur décide quel statut envoyer lorsque vous demandez une page, de sorte que la même page puisse envoyer 404 et dix secondes plus tard 200 .

Divers outils peuvent être utilisés pour afficher les codes d’état HTTP reçus.

Vous pourriez utiliser

  • votre navigateur, qui est probablement livré avec des outils de développement (comme Firefox: Ctrl + Shift + q )

  • outils en ligne de commande (comme cURL : curl -I http://en.wikipedia.org/)

  • applications Web (comme celle que vous avez mentionnée)

  • … (Si vous recherchez un outil spécifique qui correspond à vos besoins, vous pouvez créer une question sur Software Recommendations )

Notez qu’il est possible (c’est-à-dire si le serveur est configuré de telle manière) que différents clients (basés sur l’agent utilisateur, les paramètres de langue, l’adresse IP, etc.) obtiennent des résultats différents.

3
unor

Si vous avez Firebug, vous pouvez voir la différence, ils renvoient en fait l'en-tête 404.
Un site Web est parfaitement capable de retourner du contenu avec un en-tête 404:

header("HTTP/1.0 404 Not Found");
echo file_get_contents('page-not-found.html');

Alors: Comment vérifier le statuscode:
Voir la réponse 1 pour une solution cURL, la réponse 2 pour une solution get_headers () , ou utilisez l'onglet des ressources de votre console pour les rechercher manuellement

1
Martijn

Comme indiqué ci-dessus, vous pouvez vérifier avec cURL si vous souhaitez construire votre propre vérificateur 404. Un exemple avec PHP :

$resourceUrl = 'http://example.com/test.html';

$ch = curl_init($resourceUrl);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if($statusCode == '404'){
    //resource does not exist
}
1
Wexford

Si vous utilisez Firebug avec Page Speed ​​(généralement utile pour les développeurs Web), vous pouvez consulter l'onglet Ressources.

Firebug with Page Speed

Cela vous montrera l'en-tête HTTP renvoyé pour chaque ressource sur une page, y compris la page elle-même. Cela aide également à identifier les redirections sur le chemin d'une page 404 si des éléments de votre site ne sont pas codés/configurés correctement.

0
Andrew Lott