Quelle est la différence entre 301 et 302 en HTTP?

9

Je vois tous les sites similaires à tinyurl 302

Mais quelle est la différence? On dirait que les deux travaillent pour moi

vps
la source

Réponses:

12

Un statut 301 (déplacé en permanence) signifie que la ressource a été déplacée de façon permanente vers un nouvel emplacement. À l'avenir, le client (navigateur) devrait utiliser le nouvel emplacement au lieu de l'ancien.

Un statut 302 (trouvé) signifie que la ressource est temporairement située ailleurs. Le client doit utiliser l'emplacement donné pour la demande actuelle, mais à l'avenir doit continuer à utiliser l'ancien emplacement.

Les deux codes d'état auront pour effet de faire suivre une redirection par le navigateur. Vous devez choisir d'utiliser un statut 301 ou 302 selon que la redirection est permanente ou temporaire.

Plus d'informations sur ces codes de réponse HTTP peuvent être trouvées dans RFC 2616 .

Phil Ross
la source
Que se passe-t-il si je veux annuler 301? Est-ce hors de contrôle car il n'est pas utilisé à nouveau?
vps
@vps Vous pouvez annuler la redirection 301, mais rien ne garantit que le client demandera à nouveau l'URL d'origine. Si vous voulez être en mesure d'annuler la redirection à l'avenir, alors vous pouvez être mieux d'utiliser un 302.
Phil Ross
3

Lorsqu'une araignée de moteur de recherche trouve un code d'état 301 dans l'en-tête de réponse d'une page Web, elle comprend que cette page Web n'existe plus, elle recherche l'en-tête d'emplacement en réponse, choisissez la nouvelle URL et remplacez l'URL indexée par la nouvelle et transférez également le pagerank .

Ainsi, le moteur de recherche actualise toutes les URL indexées qui n'existent plus (301 trouvées) avec la nouvelle URL, cela conservera votre ancien trafic de page Web, votre pagerank et le détournera vers la nouvelle (vous ne perdrez pas le trafic de votre ancienne page Web).

Navigateur: si un navigateur trouve le code d'état 301, il met en cache le mappage de l'ancienne URL avec la nouvelle URL, le client / navigateur n'essaiera pas de demander l'emplacement d'origine mais utilisera le nouvel emplacement à partir de maintenant jusqu'à ce que le cache soit supprimé.

Lorsque l'araignée du moteur de recherche trouve le statut 302 pour une page Web, elle ne redirige que temporairement vers le nouvel emplacement et analyse les deux pages, l'ancienne URL de la page Web existe toujours dans la base de données du moteur de recherche et essaie toujours de demander l'ancien emplacement et de l'explorer, le le client / navigateur tentera toujours de demander l'emplacement d'origine.

En savoir plus sur la façon de l'implémenter dans asp.net c # et comment quel est l'impact dans le moteur de recherche - http://www.dotnetbull.com/2013/08/301-permanent-vs-302-temporary-status-code- aspnet-csharp-Implementation.html

Rohit
la source