HTTP peradresavimas: 301 (pastovus) ir 302 (laikinas)

Ar klientas turėtų elgtis kitaip? Kaip?

297
08 сент. „flybywire“ rinkinys 08 sept. 2009-09-08 13:47 '09, 13:47 2009-09-08 13:47
@ 6 atsakymai

301 būsena reiškia, kad išteklius (puslapis) nuolat juda į naują vietą. Klientas / naršyklė neturėtų bandyti prašyti pradinės vietos, tačiau nuo šiol naudokite naują vietą.

302 būsena reiškia, kad išteklius laikinai yra kitur, o klientas / naršyklė turi toliau prašyti pradinio URL.

468
08 сент. Atsakymas, kurį pateikė Philippe Leybaert 2009-09-08 13:51 '09, 13:51, 2009-09-08 13:51

Kai paieškos robotas suranda būsenos kodą 301 tinklalapio atsakymo antraštėje, jis supranta, kad šis tinklapis nebėra, atsakydamas jis ieško vietos antraštės, pasirenka naują URL ir pakeičia indeksuojamą URL naują ir taip pat perkelia pagerank.

Taigi, paieškos variklis atnaujina visus indeksuotus URL, kurių nebėra (301), su nauju URL, tai padės išlaikyti seną tinklalapio srautą, PageRank ir nukreipti jį į naują (jūs neteksite senojo tinklalapio srauto) ).

Naršyklė: jei naršyklė suranda būsenos kodą 301, ji išsaugo senojo URL žemėlapius su nauju URL, klientas / naršyklė nebandys paprašyti pradinės vietos, tačiau nuo šiol naudokite naują vietą, jei tik talpykla bus išvalyta.

2019

79
01 сент. Atsakymas pateikiamas Rohit 01 rugsėjis. 2013-09-01 10:06 '13, 10:06, 2013-09-01 10:06

Iš esmės 301 vs 302 yra svarbus indeksavimui paieškos sistemose, nes jų skaitytuvai į tai atsižvelgia ir atlieka PageRank naudodami 301.

Daugiau informacijos rasite Peter Lee .

26
08 сент. atsakymas pateikiamas Residuum Sep 08 2009-09-08 13:52 '09, 13:52, 2009-09-08 13:52

301 yra tai, kad prašomam ištekliui buvo priskirtas naujas nuolatinis URI ir bet kokios ateities nuorodos į šį šaltinį turi būti padarytos naudojant vieną iš grąžintų URI. 302 yra tai, kad prašomas šaltinis laikinai yra kitame URI. Kadangi peradresavimas kartais gali pasikeisti, klientas turi toliau naudoti užklausos-URI būsimiems prašymams. Šis atsakymas yra tik talpykloje, jei jį nurodo „Cache-Control“ arba „Expires header“ laukas.

17
08 сент. Atsakymą pateikė Peter Lee 08 Sep. 2009-09-08 13:50 '09, 13:50, 2009-09-08 13:50

301 peradresavimas yra išsaugotas neribotą laiką (bent jau kai kuriose naršyklėse).

Tai reiškia, kad jei nustatysite 301, apsilankykite šiame puslapyje, o jūs ne tik nukreipiamas, bet ir nukreipiamas į talpyklą.

Kai dar kartą apsilankysite šiame puslapyje, jūsų naršyklė * net nesirūpino prašyti šio URL, jis tiesiog pereina į nukreipimo į spartinimo būdą tikslą.

Vienintelis būdas atšaukti 301 lankytoją su šiuo peradresavimu talpykloje yra nukreipti atgal į pradinį URL **. Tokiu atveju naršyklė matys ciklą ir, galiausiai, tikrai prašys įvesti URL.

Akivaizdu, kad tai nėra galimybė, jei nuspręsite 301 dėl „Facebook“ ar bet kurio kito šaltinio, kurį visiškai nevaldote.

Deja, daugelis prieglobos paslaugų teikėjų siūlo savo administratoriaus sąsają, vadinamą „peradresavimu“, kuris nukreipia 301. Jei naudojate jį laikinai nukreipti į „Facebook“ kaip didelės spartos puslapį, jūs iš esmės prisukate.

* bent jau „Chrome“ ir „Firefox“, pagal „ Kaip ilgai naršyklės talpyklos„ HTTP 301 “? . Ką tik bandžiau naudodamas „Chrome 45“. Pakeisti: „Safari 7.0.6“ „Mac“ taip pat yra talpykloje, nepradedamas naršyklės paleisti (nuoroda sako, kad „Safari 5“ sistemoje „Windows“ ji padeda.)

** Aš bandžiau javascript window.location = '' nes tai būtų sprendimas, kuris gali būti taikomas daugeliu atvejų - jis neveikia. Tai sukelia neaptinkamą begalinę kilpą. Tačiau php header('Location: new.url') nutraukia kilpą

Apatinė eilutė: naudokite tik 301s, jei esate visiškai tikri, kad niekada nenaudosite šio URL. Paprastai niekada nėra šakniniame kataloge (example.com/)

11
15 сент. Sebastiano Schmido atsakymas, rugsėjo 15 d 2015-09-15 20:17 '15 , 20:17 2015-09-15 20:17

Pagrindinė problema dėl 301 yra tai, kad naršyklė perrašo peradresavimą, net jei išjungėte peradresavimą iš serverio lygio.

Visada geriau naudoti 302, jei leidžiate nukreipti trumpą priežiūros >

5
12 окт. atsakymas, kurį pateikė Jobin Joseph Oct 12. 2015-10-12 13:23 '15, 13:23, 2015-10-12 13:23