2013-01-03 1 views
17

Un projet RFC IETF The Hypertext Transfer Protocol (HTTP) Status Code 308 (Permanent Redirect) définit l'état HTTP 308 en tant que Redirection permanente. Il convient, bien sûr, de noter qu'il s'agit d'un projet de document et qu'il contient dans son en-tête le texte «Expire: 27 septembre 2012», ce qui, je présume, signifierait qu'il devrait être invalidé maintenant, mais je ne connais pas Les processus de l'IETF ne sont donc pas confiants à ce sujet.Quel est le problème avec le code d'état HTTP 308?

L'article de Wikipedia List of HTTP status codes utilise cette définition de 308, aussi:

308 Permanent Redirect (approuvé comme RFC expérimental) [12]

La demande et tous les futurs les demandes doivent être répétées en utilisant un autre URI. 307 et 308 (comme proposé) sont parallèles aux comportements de 302 et 301, mais ne permettent pas à la méthode HTTP de changer. Ainsi, par exemple, la soumission d'un formulaire à une ressource redirigée de manière permanente peut continuer sans problème.

...

[12]: "The Hypertext Transfer Protocol (HTTP) Status Code 308 (Permanent Redirect)". IETF. 2012. Récupéré le 27 mars 2012.

Eric Law, de Microsoft à l'époque, commente ce code HTTP/308 dans Pushing the Web Forward with HTTP/308. Cela m'a fait découvrir que Firefox supporte 308 sous ce sens.

Cependant, quand je regardais dans la bibliothèque , je trouve qu'il ya une autre utilisation de 308:

308: ('resume_incomplete', 'resume'), 

Cela semble provenir d'un Google Gears resumable HTTP requests proposal, définissant 308 Resume Incomplete. Il semble y avoir un certain usage de cela. Bien entendu, aucune de ces propositions ne reconnaît l'existence de l'autre.

Alors, que se passe-t-il? Est-ce que 308 Permanent Redirect est vivant? Que se passe-t-il avec le code d'état 308? Que devrais-je faire?

+0

Demandez-vous, du point de vue du serveur, si vous devez * émettre * un 308 (et si oui, dans quelles circonstances), ou du point de vue du consommateur comment vous devriez * réagir * à un 308? –

+0

@Damien_The_Unbeliever: la question se demande surtout ce qui se passe avec, est-ce significatif, * peut * je l'utilise raisonnablement. Dans mon cas particulier, je traite du point de vue du client, souhaitant faire une mise en œuvre correcte et prête pour l'avenir de cette question et d'autres questions connexes, mais je cherche aussi des informations plus générales pour essayer de le rassembler un peu. sur le web. –

Répondre

4

Le brouillon Internet n'a pas expiré (car il a été approuvé avant son expiration). Voir https://datatracker.ietf.org/doc/draft-reschke-http-status-308/ et http://www.rfc-editor.org/queue2.html#draft-reschke-http-status-308 pour le statut de publication actuel.

+0

Cela veut donc dire qu'il a été approuvé, mais qu'il traîne en attendant que les éditeurs y parviennent? Qu'est-ce que cela signifie à propos de 308 en attendant? Que l'utiliser comme redirection permanente serait "invalide"? Alors aussi, qu'est-ce que le fait d'être approuvé en tant que RFC * expérimental * signifie exactement? –

+2

Il est approuvé et il s'agit d'un code d'état enregistré. C'est juste que le RFC ne sera pas publié avant que les autres documents auxquels il fait référence. –

1

S'il vous plaît voir Chris Morgan commentaire ci-dessous sur cette question (ma réponse originale se réfère à http://insanecoding.blogspot.co.il/2014/02/http-308-incompetence-expected.html?m=1 mais la référence de Chris est beaucoup mieux). Pour avoir une idée de ce que 308 n'est pas encore passé, voyez les codes HTTP définis dans Microsoft .NET framework V4 (http://msdn.microsoft.com/en-us/library/system.net.httpstatuscode(v=vs.110).aspx) l'énumération HttpStatusCode). En particulier, aucune mention du code 308.

+2

https://news.ycombinator.com/item?id=7249193 a de bons commentaires sur l'article-l'article est bien intentionné mais lui-même ne comprend pas la situation complète. –

+1

307 est maintenant dans l'article msdn auquel vous êtes lié, mais pas encore 308 –