Lorsqu'un utilisateur n'est pas connecté et tente d'accéder à une page qui nécessite une connexion, est-ce le bon code de statut HTTP pour une redirection vers la page de connexion?
Je demande car aucun des 3xx codes de réponse défini par le W3C semblent pour s'adapter aux exigences:
10.3.1 300 À Choix Multiples
La ressource demandée correspond à tout un ensemble de représentations, chacune avec sa propre emplacement, et à l'agent de négociation menée de l'information (section 12) est fourni de manière à ce que l'utilisateur (ou de l'utilisateur l'agent) peuvent choisir un préféré la représentation et la réorienter ses demande à cet emplacement.
Sauf si c'était un CHEF de demande, l' la réponse DOIT inclure une entité contenant une liste de ressources les caractéristiques et l'emplacement(s) de laquelle l'utilisateur ou de l'agent utilisateur peut choisissez celui qui est le plus approprié. L' entité format spécifié par le type de support donné dans le Type de Contenu champ d'en-tête. Selon le le format et les capacités de
l'agent de l'utilisateur, la sélection de la plupart des choix approprié PEUT être effectuée automatiquement. Cependant, ce spécification ne définit pas de la norme pour de telles sélection automatique.
Si le serveur dispose d'un choix de prédilection de la représentation, il DOIT inclure l'URI spécifiques pour que la représentation dans le champ de l'Emplacement; les agents utilisateurs PEUVENT utiliser le champ de l'Emplacement de valeur pour la redirection automatique. Cette la réponse est mis en cache, à moins d'indication sinon.
10.3.2 301 Moved Permanently
La ressource demandée a été un nouveau permanente URI et tout des références à cette ressource Utilisez l'un des le retour de l'Uri. Les Clients avec des capacités d'édition de lien devrait automatiquement re-link les références à l'URI de la Requête de l'une des nouvelles références retourné par le serveur, si possible. Cette la réponse est mis en cache, à moins d'indication sinon.
Le nouveau permanente URI DOIT être donné par le champ Emplacement dans la réponse. À moins que la méthode de la requête a été à la TÊTE, l'entité de la réponse DOIT contient une courte hypertexte note avec une lien hypertexte vers la nouvelle URI(s).
Si l'301 code d'état est reçu dans réponse à une demande autre que de se ou de la TÊTE, l'agent utilisateur ne DOIT PAS rediriger automatiquement la demande sauf s'il peut être confirmé par la l'utilisateur, car cela pourrait modifier l' les conditions selon lesquelles la demande a été délivré.
Note: When automatically redirecting a POST request after receiving a 301 status code, some existing HTTP/1.0 user agents will erroneously change it into a GET request.
10.3.3 302 Found
La ressource demandée réside temporairement sous un autre URI. Depuis la redirection peut être modifiée à l'occasion, le client DOIT continuer à utiliser l'URI de Demande pour les demandes futures. Cette réponse n'est être mise en cache si indiqué par un Cache-Control ou l'Expiration de champ d'en-tête.
Le temporaire URI DOIT être donnée par le champ Emplacement dans la réponse. À moins que la méthode de la requête a été à la TÊTE, l'entité de la réponse DOIT contient une courte hypertexte note avec une lien hypertexte vers la nouvelle URI(s).
Si le code d'état 302 est reçu dans réponse à une demande autre que de se ou de la TÊTE, l'agent utilisateur ne DOIT PAS rediriger automatiquement la demande sauf s'il peut être confirmé par la l'utilisateur, car cela pourrait modifier l' les conditions selon lesquelles la demande a été délivré.
Note: RFC 1945 and RFC 2068 specify that the client is not allowed to change the method on the redirected request. However, most existing user agent implementations treat 302 as if it
ont été un 303 la réponse, en effectuant un OBTENIR sur le champ de valeur quel que soit de l'original de la demande de la méthode. Les codes de statut de 303 et 307 ont été ajoutés pour les serveurs qui souhaitent faire sans ambiguïté qui genre de réaction qui est attendu du client.
10.3.4 303 Voir D'Autres
La réponse à la demande peut être trouvé sous un autre URI et DEVRAIT être récupérées à l'aide d'une méthode GET sur cette ressource. Cette méthode existe principalement pour permettre la sortie d'un POST-script activé pour rediriger l' l'agent utilisateur à une ressource sélectionnée. L' nouvel URI n'est pas un substitut de référence pour l'origine de la demande de ressources. 303 réponse ne DOIT PAS être mis en cache, mais la réponse à la deuxième (redirigé) la demande peut être pouvant être mis en cache.
Les différents URI DOIT être donnée par le champ Emplacement dans la réponse. À moins que la méthode de la requête a été à la TÊTE, l'entité de la réponse DOIT contient une courte hypertexte note avec une lien hypertexte vers la nouvelle URI(s).
Note: Many pre-HTTP/1.1 user agents do not understand the 303 status. When interoperability with such clients is a concern, the 302 status code may be used instead, since most user agents react to a 302 response as described here for 303.
10.3.5 "304 Not Modified"
Si le client a effectué une conditionnel OBTENIR la demande et l'accès est autorisé, mais le document n'a pas été modifié, le serveur DOIT répondre avec ce code de statut. Le 304 la réponse ne DOIT PAS contenir un message du corps, et est donc toujours résilié par la première ligne vide après les champs d'en-tête.
La réponse DOIT inclure les suite de champs d'en-tête:
- Date, unless its omission is required by section 14.18.1 If a
clockless serveur d'origine obéit à ces les règles, et les mandataires et les clients, ajoutez leur propre Date pour toute réponse reçu sans (comme déjà spécifié par [RFC 2068], section 14.19), caches fonctionner correctement.
- ETag and/or Content-Location, if the header would have been sent in a 200 response to the same request - Expires, Cache-Control, and/or Vary, if the field-value might differ from that sent in any previous response for the same variant If the conditional GET used a strong cache validator (see
section 13.3.3), la réponse DOIT Ne PAS inclure d'autres de l'entité en-têtes. Dans le cas contraire (c'est à dire, la condition d'OBTENIR utilisé une faiblesse du programme de validation), la réponse Ne DOIT PAS inclure d'autres de l'entité en-têtes; cela évite les incohérences entre le cache d'entité-corps et des mises à jour les en-têtes.
Si une réponse 304 indique une entité actuellement pas mis en cache, le cache Ne DOIVENT pas tenir compte de la réponse et de répéter la demande sans le conditionnel.
Si un cache utilise un reçu 304 réponse pour mettre à jour une entrée de cache, le cache DOIT mettre à jour l'entrée de réfléchir toutes les nouvelles valeurs des champs de données dans le réponse.
10.3.6 305 Use Proxy
La ressource demandée DOIT être accessible par le biais de la procuration donnée par le champ Emplacement. Le champ de l'Emplacement de donne l'URI de la procuration. L' le destinataire est prévu de répéter ce simple demande via le formulaire de procuration. 305 les réponses DOIVENT être générées uniquement par les serveurs d'origine.
Note: RFC 2068 was not clear that 305 was intended to redirect a single request, and to be generated by origin servers only. Not observing these limitations has significant security consequences.
10.3.7 306 (Inutilisé)
La 306 code d'état a été utilisé dans un la version précédente de la norme, n'est plus utilisé, et le code est réservés.
10.3.8 307 Temporary Redirect
La ressource demandée réside temporairement sous un autre URI. Depuis la redirection PEUT être modifié à l'occasion, le client DOIT continuer à utiliser l'URI de Demande pour les demandes futures. Cette réponse n'est être mise en cache si indiqué par un Cache-Control ou l'Expiration de champ d'en-tête.
Le temporaire URI DOIT être donnée par le champ Emplacement dans la réponse. À moins que la méthode de la requête a été à la TÊTE, l'entité de la réponse DOIT contient une courte hypertexte note avec une lien hypertexte vers la nouvelle URI(s) , depuis de nombreux pré-HTTP/1.1, les agents utilisateurs ne sont pas comprendre la 307 état. Par conséquent, la note DOIT contenir les les informations nécessaires pour un utilisateur de répétez l'original de la demande sur la nouvelle URI.
Si la 307 code d'état est reçu dans réponse à une demande autre que de se ou de la TÊTE, l'agent utilisateur ne DOIT PAS rediriger automatiquement la demande sauf s'il peut être confirmé par la l'utilisateur, car cela pourrait modifier l' les conditions selon lesquelles la demande a été délivré.
Je suis l'aide de 302 pour l'instant, en attendant que je trouve la bonne réponse.
Mise à jour et conclusion:
HTTP 302 est mieux depuis sa connu pour avoir la meilleure compatibilité avec les navigateurs.