Jaka jest różnica między 301 a 302 w HTTP?

9

Widzę, że używają wszystkich witryn typu malutki 302

Ale jaka jest różnica? Wygląda na to, że obie pracują dla mnie

vps
źródło

Odpowiedzi:

12

Status 301 (przeniesiony na stałe) oznacza, że ​​zasób został na stałe przeniesiony do nowej lokalizacji. Klient (przeglądarka) powinien w przyszłości korzystać z nowej lokalizacji zamiast starej.

Status 302 (znaleziony) oznacza, że ​​zasób jest tymczasowo zlokalizowany w innym miejscu. Klient powinien użyć podanej lokalizacji dla bieżącego żądania, ale w przyszłości powinien nadal używać starej lokalizacji.

Oba kody stanu spowodują, że przeglądarka podąży za przekierowaniem. Wybierz opcję 301 lub 302, w zależności od tego, czy przekierowanie jest stałe, czy tymczasowe.

Więcej informacji na temat tych kodów odpowiedzi HTTP można znaleźć w RFC 2616 .

Phil Ross
źródło
Co jeśli chcę anulować 301? Czy to wymyka się spod kontroli, ponieważ nie jest ponownie używane?
vps
@vps Możesz anulować przekierowanie 301, ale nie ma gwarancji, że klient ponownie poprosi o oryginalny adres URL. Jeśli chcesz w przyszłości anulować przekierowanie, lepiej skorzystaj z 302.
Phil Ross
3

Gdy pająk wyszukiwarki znajdzie kod stanu 301 w nagłówku odpowiedzi strony, rozumie, że ta strona już nie istnieje, szuka nagłówka lokalizacji w odpowiedzi wybiera nowy adres URL i zastępuje indeksowany adres URL nowym, a także przenosi PageRank .

Tak więc wyszukiwarka odświeża wszystkie zindeksowane adresy URL, które już nie istnieją (znaleziono 301) za pomocą nowego adresu URL, dzięki czemu zachowany zostanie stary ruch na stronie, PageRank i przekierowany na nowy (nie stracisz ruchu na starej stronie).

Przeglądarka: jeśli przeglądarka znajdzie kod stanu 301, a następnie buforuje mapowanie starego adresu URL za pomocą nowego adresu URL, klient / przeglądarka nie będzie próbować żądać oryginalnej lokalizacji, ale będzie używać nowej lokalizacji od teraz aż do usunięcia pamięci podręcznej.

Gdy pająk wyszukiwarki znajdzie 302 status strony internetowej, przekieruje tylko tymczasowo do nowej lokalizacji i zaindeksuje obie strony, stary adres URL strony internetowej nadal istnieje w bazie danych wyszukiwarki i zawsze próbuje zażądać starej lokalizacji i zaindeksować ją, klient / przeglądarka nadal będzie próbować zażądać oryginalnej lokalizacji.

Przeczytaj więcej o tym, jak wdrożyć go w asp.net c # i jaki jest wpływ na wyszukiwarkę - http://www.dotnetbull.com/2013/08/301-permanent-vs-302-temporary-status-code- aspnet-csharp-Implementation.html

Rohit
źródło