header() -> quelle entête pour...

WRInaute accro
Bonsoir,

Dans le cadre d'un script permettant la gestion d'erreur(s) (mysql, maintenance sur site, etc..) je souhaite savoir quelle est l'entête la plus appropriée à envoyer en http.

Voici une liste recouvrant pas mal de possibilités (sans doute en manque t-il):

* 100 : OK pour continuer
* 101 : le serveur a changé de protocoles
* 200 : requête effectuée avec succès
* 201 : document créé (raison : nouvelle URI)
* 202 : requête achevée de manière asynchrone (TBS)
* 203 : requête achevée de manière incomplète
* 204 : aucune information à renvoyer
* 205 : requête terminée mais formulaire vide
* 206 : requête GET incomplète
* 300 : le serveur ne peut pas déterminer le code de retour
* 301 : document déplacé de façon permanente
* 302 : document déplacé de façon temporaire
* 303 : redirection avec nouvelle méthode d'accès
* 304 : le champ 'if-modified-since' n'était pas modifié
* 305 : redirection vers un proxy spécifié par l'entête
* 307 : HTTP/1.1
* 400 : erreur de syntaxe dans l'adresse du document
* 401 : pas d'autorisation d'accès au document
* 402 : accès au document soumis au paiement
* 403 : pas d'autorisation d'accès au serveur
* 404 : la page demandée n'existe pas
* 405 : méthode de requête du formulaire non autorisée
* 406 : requête non acceptée par le serveur
* 407 : autorisation du proxy nécessaire
* 408 : temps d'accès à la page demandée expiré
* 409 : l'utilisateur doit soumettre à nouveau avec plus d'infos
* 410 : cette ressource n'est plus disponible
* 411 : le server a refusé la requête car elle n'a pas de longueur
* 412 : la précondition donnée dans la requête a échoué
* 413 : l'entité de la requête était trop grande
* 414 : l'URI de la requête était trop longue
* 415 : type de média non géré
* 500 : erreur interne du serveur
* 501 : requête faite au serveur non supprimée
* 502 : mauvaise passerelle d'accès
* 503 : service non disponible
* 504 : temps d'accès à la passerelle expiré
* 505 : version HTTP non gérée



Quelle entête me conseillez-vous pour ces deux cas:
- maintenance du serveur
- erreur mysql


Cela ayant principalement pour but de dire, dans le cas d'un passage d'un robot, qu'il y a eu une erreur qui peut être d'une durée plus ou moins longue, dans le cas de mysql et une maintenance temporaire sur le serveur ou le site, de manière à avertir ce dernier.

Merci de votre aide.

E D I T :
Pour ceux qui reste pessimiste quant à l'utilisation du header, il est très utile, notament si vous avez par exemple une erreur Mysql "Too many connection", cela évite au robot de remplacer l'ancien contenu par votre message d'erreur personnalisé, etc...
De même en cas de maintenance sur le site, cela permet de l'indiquer au robot pour qu'il puisse repasser plus tard...
 
WRInaute accro
moi je vote pour 503
mais j'attends de voir ce que disent les autres pour t'affirmer ça à 100%



édit : bonne idée de topic au fait :wink:
 
WRInaute accro
TOMHTML a dit:
moi je vote pour 503
mais j'attends de voir ce que disent les autres pour t'affirmer ça à 100%
J'avais en effet pensé à 503 pour la maintenance du site et à la 500 pour une erreur mysql ( ou s'y rapprochant ).

J'attends également d'autres avis..
 
WRInaute accro
+1 TOMHTML
je vote 500 pour sql
et 503 pour la maintenance sur le serveur
(c'est assez courant je crois)
 
WRInaute accro
Merci. ;)

A Savoir en PHP:

Bien souvent on cherche avec la fonction header() une correspondance en texte.

Par Exemple : header("Not Found", true, 404);

Or petite astuce qui permet d'envoyer une entête connue sans cela, consiste simplement à ne rien mettre :
header("", true, 404);.

Ceci est tout autant fonctionnel !

J'ai même constater que cela renvoit les mêmes entêtes http que celle générée par apache lorsqu'il y a une véritable "erreur". Cela évite également à un hackeur, de trouver une possibilité de faille, lorsque vous employez le header() pour des fins de sécurité.
 
WRInaute accro
quand redbus a mis tous nos sites HS, quel était le code HTTP renvoyé ?

car j'ai vu grâce à sitemaps que gg est passé sur mon site en plein pendant le blackout, et en fait en gros il a fait "ah, le site marche pas ? bon ben c'est pas grave je repasserai" (oui je suis des cours de googlebot, pour taper discute avec lui ;))
c'est ce code là qu'il faudrait mettre peut être, non ? ;)
 
WRInaute discret
TOMHTML a dit:
quand redbus a mis tous nos sites HS, quel était le code HTTP renvoyé ?

car j'ai vu grâce à sitemaps que gg est passé sur mon site en plein pendant le blackout, et en fait en gros il a fait "ah, le site marche pas ? bon ben c'est pas grave je repasserai" (oui je suis des cours de googlebot, pour taper discute avec lui ;))
c'est ce code là qu'il faudrait mettre peut être, non ? ;)

Vu que ton site était HS, il n'y avait pas de code car le serveur ne répondait pas ... C'était tout bêtement un timeout coté googlebot.

Et non, il n'est pas possible de 'simuler' ce message avec php ou apache :)


MADdanny
 
WRInaute passionné
Bon ba moi je suis d'accord avec tout le monde 500 et 503. et j'ai aussi recommandé et bookmarker ce post

[mode joke]

TOMHTML a dit:
oui je suis des cours de googlebot, pour taper discute avec lui ;)

Je me disais aussi que t'avais bien une astuce pour connaitre aussi bien google. Dis moi Madri il suit des cours aussi?

[mode /joke]
 
WRInaute discret
données

Je parle des erreurs :

*
*
*
*
* 415 : type de média non géré
* 500 : erreur interne du serveur
* 501 : requête faite au serveur non supprimée
* 502 : mauvaise passerelle d'accès
* 503 : service non disponible
* 504 : temps d'accès à la passerelle expiré
* 505 : version HTTP non gérée
 
Discussions similaires
Haut