Question

Donc, si vous regardez la Liste des Codes d'État HTTP, il ya probablement un certain nombre d'entre eux qui pourraient être utiles lors de la programmation.Le serveur peut gérer certaines choses, comme les protocoles, mais beaucoup de ces codes pourraient être utiles dans la dire le navigateur de l'état réel de la page.

Donc, ma question est de savoir lequel de ces codes d'état devrions-nous nous inquiéter avec?Ce qui devrait nous être vérifier à envoyer et quels sont ceux qui seront les plus susceptibles de ne jamais être utilisé dans l'application régulière de la programmation.

Si vous êtes curieux, c'est dans le cadre de la programmation PHP, mais il serait sans doute s'appliquer à d'autres langues tout aussi bien.

Était-ce utile?

La solution

Un grand nombre d'entre eux sont intrinsèquement utiles avec l'utilisation de l'API de type REST. Par exemple:

  • 200 (OK): Vous avez demandé une ressource. Ici, il est!

  • 201 (Créé): Vous m'a demandé de faire une nouvelle ressource. J'ai fait! Voici où vous pouvez aller me demander la prochaine fois.

  • 202 (accepté): Vous me demandez de faire quelque chose, mais il va prendre un certain temps, il ne faut pas attendre vers le haut. Voici où vous pouvez aller vérifier sur le statut.

  • 300 (choix multiples): Vous avez demandé quelque chose, mais vous ne sont pas assez précis. Lequel de ces vouliez-vous dire?

  • 301 (Motion proposée en permanence): Vous avez demandé quelque chose, mais il est un autre endroit maintenant. Voici où il est allé.

  • 302 (trouvé): Vous avez demandé quelque chose, mais il est un autre endroit pour le moment. Ici, il est.

  • 304 (Non modifié). Vous avez demandé quelque chose avant, mais il n'a pas changé depuis la dernière fois que vous me demandiez

  • 400 (Bad Request): Quelque chose ne va pas à ce que vous me demandez de faire. Corriger ce que vous avez dit et essayez à nouveau.

  • 401 (non autorisé): Je veux que vous vous identifier avant de pouvoir terminer cette demande. [Note: Ceci est l'une des têtes plus malheureusement nommés. Il devrait vraiment être intitulé Unauthenticated ; 403 est plus comme non autorisée .]

  • 403 (Interdit):. Vous avez demandé quelque chose que vous n'êtes pas autorisé à avoir

  • 404 (Introuvable). Vous avez demandé une ressource, mais il n'y a pas un qui correspond à votre description

  • 500 (Server Error): Quelque chose a mal tourné, donc je ne peux pas vous donner ce que vous avez demandé en ce moment. Je suis désolée.

  • 501 (Non implémenté). Je ne supporte pas ce genre de demande en ce moment

  • 503 (Service indisponible):. Je ne suis pas en mesure de répondre aux demandes en ce moment

Autres conseils

Pour être plus précis, ce ne sont que des codes d'état HTTP, non-têtes HTTP. En-têtes véhiculent beaucoup de choses et sont envoyées par le client et le serveur, et sont au-delà de la portée de cette réponse.

L'un des en-têtes HTTP, à savoir le premier envoyé par le serveur au client, ressemble à ceci:

HTTP/1.x 200 OK

ou

HTTP/1.x 404 Not Found

Le numéro qui apparaît après l'identifiant protocole HTTP/1.x est ce qu'on appelle le code d'état avec le message d'état correspondant envoyé après. Voici les codes d'état que je l'ai eu à utiliser dans mes jours de programmation PHP:

  • 200 OK est de loin la plus commune . Cela signifie que tout a bien fonctionné et que vous répondez avec le contenu.
  • 404 Not Found est envoyé automatiquement par le serveur sous certaines conditions, en particulier lorsque la demande conduit à un script exécution qui ne peut être trouvé sur le serveur. Parfois, surtout si vous êtes des cadres d'écriture qui traitent URIs d'une manière particulière, vous voulez configurer manuellement un code d'état 404. Par exemple, si vous avez un index.php central de l'exécution du script pendant que vous par la route toutes les demandes en utilisant .htaccess ou vos paramètres Apache, Apache réapparaîtra presque jamais 404 sur elle-même parce que, après tout, il a trouvé index.php. Mais il est clair, il y aura encore quelques URIs que vous souhaitez communiquer ne conduisent pas à nulle part, pour lequel vous voulez envoyer votre propre en-tête d'état 404.
  • 301 Moved Permanently et 302 Found (plus communément référencé 'déplacé temporairement'). Ces deux charger le navigateur pour trouver un en-tête de Location et de rediriger l'utilisateur vers l'URL spécifiée il. La plupart des cadres de PHP ont leurs propres fonctions pour redirections HTTP, qui gèrent également les en-têtes. Le header('Location: http://www.google.com'); de redirection PHP natif change automatiquement l'état HTTP 302. Je ne l'ai jamais vraiment compris en profondeur la différence entre 302 et 301, mais j'ai lu que 301 est beaucoup mieux pour Search Engine Optimization, donc j'essaie de toujours utiliser 301 . peut-être que quelqu'un d'autre peut éclairer sur ce qui est la différence exacte. Une chose à faire attention est d'éviter de mettre un statut 301/302 et en-tête de son emplacement sur une page qui est destiné à recevoir des données POST. J'ai eu quelques problèmes avec elle dans le passé.
  • 304 Not Modified est généralement envoyé automatiquement en fonction vos paramètres Apache. La plupart des navigateurs dans des conditions normales comprennent la date / heure à laquelle l'élément demandé a été mis en mémoire cache sur l'ordinateur de l'utilisateur. ETags et autres en-têtes sont utilisés à cette fin. Si Apache juge que le fichier correspondant du serveur n'a pas changé depuis cette époque, Apache envoie souvent un 304 sans contenu, ce qui indique que le client d'utiliser la version mise en cache.
  • 401 Unauthorized est envoyé lorsqu'un utilisateur est en essayant d'accéder à une section restreinte sur le site. Il y a quelques anciennes fonctionnalités HTML et des technologies de serveur qui prennent en charge les invites nom d'utilisateur / mot de passe natif, qui a envoyé 401 codes d'état lorsque les invites ont été annulés ou non autorisés. La plupart des gens ces jours-ci écrivent leurs propres implémentations PHP pour l'authentification des utilisateurs et la gestion des droits, si Apache n'envoie pas souvent 401s sur lui-même. Vous pouvez envoyer l'état manuellement pour indiquer que plus riSMTG sont nécessaires pour accéder à la page.
  • 400 Bad Request est envoyé par Apache si elle reçoit une demande, il ne peut pas comprendre. Généralement, vous n'avez pas à vous soucier de l'envoyer manuellement.
  • 403 Forbidden est utilisé par certaines personnes lorsque les utilisateurs tentent d'accéder à une zone qu'ils ne seraient pas en mesure d'accéder, même avec une bonne authentification peut-être en raison de géographique, IP, ou l'interdiction des restrictions. Je ne l'utilise pas moi-même, et je viens d'utiliser 401 et 404 pour remplir.
  • 5xx . La série 500 sont les codes que vous ne vraiment pas voir en tant que développeur. Cela signifie que votre code ou serveur fait quelque chose de mal. Si vous avez un serveur ou un système d'équilibrage de charge de calibre suffisant et vous n'avez pas d'erreurs dans votre code, vous ne verrez jamais la série 500.

Eh bien, ce sont des codes d'état, pas en-têtes, mais aucun d'entre eux pourraient être utiles (bien que la série 5xx sont peu susceptibles d'être).

Je le prends que vous parlez des en-têtes soit pour servir des fichiers ou de fournir un webservice RESTful?

Vous seriez après les codes d'état, plutôt que les en-têtes alors. Ceux que j'ai couramment utilisés sont:

200 OK
301 Moved Permanently
302 Found (temporary redirect)
400 Bad Request
403 Forbidden
404 Not found
500 Internal Server Error

Bien sûr, pour webservices RESTful vous pouvez changer le texte pour être plus descriptif ainsi que de fournir la description dans le corps.

Ensuite, il y a:

418 I'm a teapot

Rapidement passer à travers la liste (des codes d'état), voici ceux que j'utilise souvent (Je fais un PHP développement web comme mon job) :

  • 200 OK :presque toujours envoyé par Apache
  • 301 Moved Permanently :généralement envoyés par moi-même (ou par Apache, lors de l'utilisation de la réécriture des règles)
  • 302 Found :généralement envoyés par moi-même (ou par Apache, lors de l'utilisation de la réécriture des règles)
  • 304 Not Modified :généralement envoyé par Apache (ou un reverse proxy devant elle)
  • 401 Unauthorized :généralement envoyé par Apache
  • 403 Forbidden :généralement envoyé par Apache
  • 404 Not Found :envoyé à la fois par Apache et moi), en fonction des situations
  • 410 Gone :généralement envoyés par moi
  • 500 Internal Server Error :envoyé à la fois par Apache et de moi ;c'est celui que j'utilise généralement quand il y a une "technique" d'erreur, même si l'on ne devrait jamais arriver ^^

Et voici ceux que j'ai pu utiliser (surtout si vous faites du RESTE) :

Ceux que j'ai utilisé la plupart sont:

  • 301 - Déplacement en permanence - Utilisez cette option si la ressource est définitivement déplacé vers la nouvelle URL
  • .
  • 302 - Changement d'adresse temporaire - Utilisez ce pour rediriger lorsque vous ne pouvez pas avoir une redirection permanente
  • .
  • 404 - Not Found. Votre serveur doit être configuré pour servir ce pour urls invalides. Vous devez surveiller ces derniers dans vos journaux -. Trop de 404s est un signe d'une mauvaise pression
  • 500 - Erreur interne du serveur. Votre serveur doit être configuré pour envoyer correctement ces derniers quand il y a des erreurs. Vous devez surveiller les erreurs 5xx dans vos journaux.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top