Mi a különbség a 301 és 302 webes átirányítások között?

Ha egy weboldalon tartalmat helyeztünk át egyik helyről a másikra, akkor a régi, elavult linkeket mindenképp érdemes az új helyre átirányítani. Kellemetlen ugyanis, ha egy weboldalon linkek nem létező oldalakra mutatnak és ezt a Google sem szereti. Kétfajta megoldás létezik erre. A 301 és 302 átirányítás.
Mindkét típusú átirányítás ugyanazt az eredményt éri el, viszont alapvető különbség, hogy a 302-est főleg tesztelésre használjuk, a 301-et pedig a végleges applikálásra, mivel ez egy végleges átirányítás. Ha egy felhasználó például átirányított tartalomhoz szeretne hozzáférni egy weboldalon (például egy HTTPS link HTTP verziójához), akkor a web szerver küld egy 301 vagy 302 átirányító kódot, továbbá egy linket is a tartalom helyéhez a kliens böngészőjének. A felhasználó böngészője ekkor újabb kérvényt küld az oldal korrigálására, és megtörténik az átirányítás.
A különbség a két irányító között abban rejlik, hogy mi történik, amikor egy felhasználó második alkalommal látogat el egy oldalra. Ha a kliensnek 302-es kódot küldünk, akkor a böngésző számára ez az ideiglenes átirányítás. Ha egy HTTPS link például egy régi HTTP oldalra vezetne, akkor a böngésző kérvényeket fog továbbra is küldeni minden alkalommal a nem biztonságos HTTP oldalra, a web szerver pedig minden alkalommal 302-es kódot fog küldeni. Mi ezzel a probléma?
Nos, többek között az, hogy a weboldal teljesítményét rontja, ugyanis a böngésző felesleges köröket fut a web szerver felé minden alkalommal, amikor a felhasználó meglátogat egy 302-es kóddal átirányított weboldalt. A megoldás a 301-es átirányító kódban rejlik, mivel ez egy végleges átirányítás, amit a kliens oldali böngésző megjegyez. Mielőtt a böngésző újabb kérvényt küldene, ellenőrzi cache memóriáját és látni fogja, hogy az adott oldalról 301 kód érkezett, tehát nem küld újabb kérvényt a szerver felé, ezáltal nem pörgeti azt feleslegesen. A 301 átirányító kódot tehát csak egyszer kell kiküldeni minden felhasználó böngészőjének és örökké működni fog, míg a 302-nek frissülnie kell minden alkalommal. Ezért használjuk csak tesztelésre.
A 301 kódoknak azonban hátránya is van. A Chrome addig emlékszik rájuk, amíg a felhasználó nem törli a cache-t, ami egy elég ritkán lezajló folyamat. Ha elrontunk egy 301 átirányítást, akkor problémáink lesznek a jövőben. Éppen ezért érdemes a 302-vel tesztelni előbb. A 301 kódokat a Google mindig megjegyzi és frissíti adatbázisait. Ha például domain nevet változtatunk, akkor a régi domain-t 301-el át kell irányítani az új névre, mivel a keresési helyezéseink így megmaradnak az új domain névre is. Láthatjuk tehát, hogy ezen átirányítások alapvetően fontosak minden weboldal számára.