DNS RobotDNS Propagation Checker
GłównaDNSWHOISIPSSL
DNS RobotDNS Propagation Checker

Checker propagacji DNS nowej generacji

Polityka PrywatnościRegulaminO nasBlogKontakt

Narzędzia DNS

Wyszukiwanie DNSDomena na IPWyszukiwanie NSWyszukiwanie MXWyszukiwanie CNAMEZobacz wszystko

Narzędzia E-mail

Sprawdzanie Rekordu SPFSprawdzanie DMARCSprawdzanie DKIMTest SMTPAnaliza Nagłówków E-mailZobacz wszystko

Narzędzia Stron WWW

Wyszukiwanie WHOISDostępność DomenyWyszukiwarka SubdomenWykrywanie CMSAnaliza LinkówZobacz wszystko

Narzędzia Sieciowe

Narzędzie PingTracerouteSprawdzanie PortówSprawdzanie Nagłówków HTTPSprawdzanie Certyfikatu SSLZobacz wszystko

Narzędzia IP

Wyszukiwanie IPJaki Jest Mój IPSprawdzanie Czarnej Listy IPIP na HostnameWyszukiwanie ASNZobacz wszystko

Narzędzia Pomocnicze

Skaner QR CodeGenerator QR CodeUPI QR Code GeneratorWiFi QR Code GeneratorTłumacz Kodu Morse'aZobacz wszystko
© 2026 DNS Robot. Opracowane przez: ❤ Shaik Brothers
Wszystkie systemy działają
Made with
Strona główna/Blog/Kod Statusu HTTP 302 (302 Found): Co Oznacza i Kiedy Używać

Kod Statusu HTTP 302 (302 Found): Co Oznacza i Kiedy Używać

Shaik Vahid26 kwi 20269 min czytania
Infografika kodu statusu HTTP 302 — przepływ tymczasowego przekierowania z nagłówkiem Location oraz porównanie 301 vs 302 vs 307
Infografika kodu statusu HTTP 302 — przepływ tymczasowego przekierowania z nagłówkiem Location oraz porównanie 301 vs 302 vs 307

Kluczowy wniosek

Kod statusu HTTP 302 (302 Found) to tymczasowe przekierowanie: żądany zasób znajduje się tymczasowo pod inną URL podaną w nagłówku Location, ale oryginalna URL powinna być nadal używana w przyszłych żądaniach. Używaj 302 do krótkoterminowych przekierowań (logowanie, testy A/B, konserwacja), a 301 tylko gdy przeniesienie jest trwałe. Aby zachować żądania POST przez przekierowanie, użyj 307 zamiast 302.

Advertisement

Czym Jest Kod Statusu HTTP 302?

Kod statusu HTTP 302 — oficjalnie nazwany 302 Found — to kod odpowiedzi HTTP informujący klienta (zwykle przeglądarkę), że żądany zasób został tymczasowo przeniesiony pod inną URL. Nowa URL jest podana w nagłówku Location odpowiedzi, a klient ma pobrać zasób stamtąd tylko dla tego żądania.

Ponieważ przeniesienie jest tymczasowe, klient powinien nadal używać oryginalnej URL w przyszłych żądaniach. Wyszukiwarki, przeglądarki i zakładki nie powinny zastępować oryginalnej URL celem przekierowania. To kluczowa różnica behawioralna między HTTP 302 a 301 Moved Permanently.

Kod 302 należy do klasy 3xx przekierowań kodów statusu HTTP, zdefiniowanej w RFC 9110. Mimo historycznej nazwy 'Found' treść odpowiedzi jest prawie nigdy nieużywana — nowoczesne przeglądarki natychmiast podążają za nagłówkiem Location bez renderowania jej.

Uwaga

Szybka definicja: Odpowiedź 302 oznacza 'zasób, o który prosiłeś, jest tymczasowo tutaj — pobierz go z URL w nagłówku Location, ale następnym razem nadal używaj oryginalnej URL.'

Anatomia Odpowiedzi 302

Odpowiedź z kodem statusu HTTP 302 zawsze zawiera dwa kluczowe elementy: linię statusu i nagłówek Location wskazujący nową URL. Bez prawidłowego nagłówka Location klient nie może podążyć za przekierowaniem.

  • Linia statusu — HTTP/1.1 302 Found (lub HTTP/2 302 w HTTP/2)

  • Nagłówek Location — docelowa URL, którą klient ma podążyć (wymagany)

  • Cache-Control — zwykle no-cache, aby przeglądarki nie cache'owały celu przekierowania trwale

  • Body — zazwyczaj puste, choć serwery mogą dołączyć małą stronę HTML dla starszych klientów (<html><body><a href="...">Kliknij tutaj</a></body></html>)

http
HTTP/1.1 302 Found
Location: https://www.example.com/new-page
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Cache-Control: no-cache, no-store
Date: Mon, 27 Apr 2026 14:00:00 GMT

Wskazówka

Zawsze ustawiaj Cache-Control: no-cache w odpowiedzi 302. Bez tego niektóre przeglądarki mogą cache'ować przekierowanie na czas sesji i nie sprawdzać ponownie oryginalnej URL — co przekreśla 'tymczasowy' charakter przekierowania.

Nagłówek Location może być URL absolutną (https://example.com/path) lub względną do ścieżki (/path). Nowoczesne klienty HTTP akceptują oba, choć URL absolutne są zalecane dla jasności.

302 vs 301 vs 307 vs 308: Które Przekierowanie Wybrać?

HTTP definiuje pięć powszechnych kodów statusu przekierowań, a wybór właściwego ma znaczenie dla cache, SEO i zachowania metody żądania. Użyj tej tabeli jako matrycy decyzyjnej:

KodTrwałośćMetoda zachowana?Cache'owany przez przeglądarki?Najlepsze do
301 Moved PermanentlyTrwałyMoże zmienić POST→GETTak (agresywnie)Trwałe zmiany URL, migracje domen
302 FoundTymczasowyCzęsto zmienia POST→GETNieLogowanie, testy A/B, konserwacja
303 See OtherTymczasowyZawsze zmienia na GETNieWzorzec POST/Redirect/GET po wysłaniu formularza
307 Temporary RedirectTymczasowyTak — zachowanaNiePrzekierowania tymczasowe wymagające zachowania POST/PUT
308 Permanent RedirectTrwałyTak — zachowanaTakPrzekierowania trwałe wymagające zachowania POST/PUT

Ostrzeżenie

Nigdy nie używaj 302 do trwałego przeniesienia (np. zmiany domeny). Wyszukiwarki traktują 302 jako tymczasowy i nie przenoszą sygnałów rankingowych do nowej URL. Do trwałych przeniesień zawsze używaj 301 lub 308.

Współczesna rekomendacja: jeśli potrzebujesz przekierowania tymczasowego i chcesz być jednoznaczny w obsłudze metody, użyj 307 zamiast 302. Kod 307 został dodany w HTTP/1.1 właśnie dlatego, że przeglądarki historycznie naruszały specyfikację, zmieniając POST na GET przy 302 — i ta niewłaściwa praktyka stała się tak powszechna, że została de facto standardem.

Kiedy Używać Przekierowania 302?

Używaj kodu statusu HTTP 302 zawsze, gdy przekierowanie jest naprawdę tymczasowe — to znaczy gdy planujesz w przyszłości usunąć lub zmienić cel przekierowania. Powszechne legalne przypadki użycia:

  • Przekierowania logowania — Wysyłanie nieuwierzytelnionego użytkownika z /dashboard do /login, a po zalogowaniu z powrotem

  • Testy A/B — Kierowanie 50% użytkowników do wariantu bez zmiany URL kanonicznego

  • Strony konserwacji — Tymczasowe przekierowanie całego ruchu do /maintenance podczas łatania serwera

  • Routing geograficzny — Wysyłanie odwiedzających z / do /pl lub /us w zależności od kraju, zachowując / jako wejście kanoniczne

  • Przekierowania mobilne — Przekierowanie użytkowników smartfonów z example.com do m.example.com (dziś preferowany jest design responsywny)

  • Strony produktów bez stocku — Wysyłanie kupujących do kategorii do czasu powrotu produktu

  • Krótkotrwałe URL promocyjne — /black-friday przekierowujące do strony kampanii tylko podczas promocji

Jeśli któryś z tych przypadków stanie się trwały, przełącz na 301. Wyszukiwarki czekają kilka miesięcy, zanim długotrwały 302 potraktują jako 301, więc pozostawienie trwałego przeniesienia w 302 kosztuje sygnały rankingowe podczas tego okresu.

Advertisement

Jak Wysłać Kod Statusu 302

Większość serwerów webowych i frameworków ma wbudowane helpery do wysyłania przekierowania 302. Poniżej najczęstsze wzorce. Każdy wysyła HTTP 302 Found z nagłówkiem Location — jedyne dwie rzeczy, których ściśle wymaga odpowiedź 302.

Nginx

W Nginx użyj dyrektywy return z kodem 302 (domyślnie też 302, jeśli pominiesz kod):

nginx
server {
    listen 80;
    server_name example.com;

    # Tymczasowe przekierowanie (302 Found)
    location /old-page {
        return 302 https://example.com/new-page;
    }
}

Apache (.htaccess)

W Apache użyj Redirect z kodem 302 lub RewriteRule z flagą [R=302,L]:

apache
# Proste tymczasowe przekierowanie
Redirect 302 /old-page https://example.com/new-page

# Lub z mod_rewrite dla dopasowywania wzorców
RewriteEngine On
RewriteRule ^maintenance$ /maintenance.html [R=302,L]

Node.js (Express)

Metoda res.redirect() Expressa domyślnie używa 302, gdy kod nie jest podany:

javascript
// Tymczasowe przekierowanie (302 Found domyślnie)
app.get('/dashboard', (req, res) => {
  if (!req.user) {
    return res.redirect('/login') // wysyła 302
  }
  // ...renderuj dashboard
})

// Lub jawnie:
res.redirect(302, '/login')

Wskazówka

Jeśli musisz zachować metodę żądania (POST, PUT, DELETE), użyj res.redirect(307, '/new-url') zamiast 302. Przeglądarki degradują POST 302 do GET — 307 zachowuje oryginalną metodę.

Jak Przetestować Kod Statusu 302

Po zaimplementowaniu przekierowania 302 zweryfikuj, czy działa poprawnie. Najszybszym sposobem jest curl z terminala — pokazuje dokładny kod statusu i nagłówek Location bez ingerencji cache przeglądarki.

bash
# Pokaż tylko nagłówki odpowiedzi (-I) bez podążania za przekierowaniem
curl -I https://example.com/old-page

# Oczekiwane wyjście:
# HTTP/2 302
# location: https://example.com/new-page
# cache-control: no-cache
# date: Mon, 27 Apr 2026 14:00:00 GMT

# Podążaj za pełnym łańcuchem (-L) i pokaż każdy skok
curl -ILs https://example.com/old-page | grep -i 'HTTP/\|location:'

Uwaga

DevTools przeglądarki też działa: otwórz zakładkę Network, włącz Preserve log i załaduj URL. Każde przekierowanie pojawia się jako oddzielny wpis z kodem statusu i nagłówkiem Location. To najłatwiejszy sposób debugowania łańcuchów wieloskokowych.

Jeśli nie masz dostępu do terminala, użyj darmowego Sprawdzacza Przekierowań DNS Robot, aby prześledzić cały łańcuch z neutralnej lokalizacji, lub Sprawdzacza Nagłówków HTTP do sprawdzenia surowych nagłówków odpowiedzi — oba omijają cache przeglądarki.

Przekierowania 302 a SEO

Kod statusu HTTP 302 mówi wyszukiwarkom: 'to przeniesienie jest tymczasowe, zachowajcie oryginalną URL w indeksie.' To ma bezpośrednie konsekwencje dla sygnałów rankingowych.

Według Google Search Central, 302 nie przenosi sygnałów rankingowych z oryginalnej URL na cel przekierowania w sposób, w jaki robi to 301. Oryginalna URL pozostaje kanoniczna. Google może nadal indeksować stronę docelową, jeśli inne sygnały kanonikalizacji (linki wewnętrzne, sitemap, hreflang) wskazują na nią — ale samo 302 nie jest sygnałem kanonicznym.

  • Używaj 301 do trwałych przeniesień — Zmiany domen, zmiany struktury URL, konsolidacja stron

  • Używaj 302 do tymczasowych przeniesień — Logowanie, testy A/B, konserwacja, routing regionalny

  • Nie zostawiaj trwałego przeniesienia w 302 — Google czeka miesiącami, zanim długotrwały 302 potraktuje jako 301, kosztując equity rankingu

  • Unikaj łańcuchów — A → 302 → B → 302 → C rozcieńcza sygnały i spowalnia ładowanie. Każdy skok dodaje opóźnienie

Ostrzeżenie

Jeśli widzisz przekierowania 302 na URL, które powinny się rankować (strona główna, kluczowe landing page'y), zaudytuj je Sprawdzaczem Przekierowań DNS Robot. Źle skonfigurowany 302 na trwałym przeniesieniu może po cichu zabić rankingi.

Dlaczego 302 Zmienia Żądania POST na GET

To najbardziej zaskakujące zachowanie HTTP 302. Oryginalny RFC mówił, że klienci powinni zachować metodę żądania podczas podążania za przekierowaniem. Ale wczesne przeglądarki — Mosaic, Netscape, IE — wszystkie zmieniły POST na GET przy 302, a to niewłaściwe zachowanie stało się tak powszechne, że zostało ustandaryzowane w WHATWG Fetch Standard.

Dziś, gdy przeglądarka wysyła POST /login i serwer odpowiada 302 Found, przeglądarka automatycznie wysyła GET /next-page do celu przekierowania. Dane formularza są tracone. To rzadko jest tym, co zamierzają deweloperzy serwera.

http
# Co wysyłasz:
POST /submit-form HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded

name=Alice&email=alice@example.com

# Serwer odpowiada 302:
HTTP/1.1 302 Found
Location: /thank-you

# Przeglądarka podąża z GET (dane formularza tracone!):
GET /thank-you HTTP/1.1
Host: example.com

Wskazówka

Praktyczna zasada: GET → 302 jest ok, POST → 302 jest ryzykowne. Dla wysyłania formularzy preferuj 303 See Other (intencjonalny GET na następnej stronie) lub 307 Temporary Redirect (zachowaj POST).

Jeśli przekierowanie musi zachować oryginalną metodę (POST pozostaje POST, PUT pozostaje PUT), użyj 307 Temporary Redirect zamiast 302. Jeśli celowo chcesz odrzucić body i przejść na GET — klasyczny wzorzec POST/Redirect/GET — użyj 303 See Other. Oba są jednoznaczne; 302 nie jest.

Advertisement

Częste Problemy z 302 i Jak Je Naprawić

Gdy HTTP 302 idzie nie tak, zwykle pojawia się jako jeden z tych objawów. Większość ma proste rozwiązania:

  • `Otrzymywanie 302 zamiast 200` — Serwer przekierowuje, gdy nie powinien. Sprawdź .htaccess, konfigurację Nginx lub middleware frameworka pod kątem niezamierzonych reguł przekierowania

  • `302 bez nagłówka Location` — Nieprawidłowa odpowiedź. Przeglądarki pokażą pustą stronę. Upewnij się, że twój kod ustawia nagłówek Location przed wysłaniem statusu

  • `302 przekierowujące na siebie` — Pętla przekierowań. URL Location pasuje do URL żądania. Sprawdź regułę pod kątem brakujących warunków

  • `302 odrzucające dane formularza` — POST → 302 → GET odrzuca body. Przełącz na 307 Temporary Redirect, aby zachować POST

  • `302 cache'owane przez przeglądarkę` — Buggy serwer ustawił Cache-Control: max-age=... na przekierowaniu. Dodaj Cache-Control: no-cache i wyczyść cache

  • `302 w produkcji, ale nie lokalnie` — Zwykle CDN lub load balancer dodający przekierowania. Testuj bezpośrednio przeciwko origin, aby wyizolować

Uwaga

Jeśli 302 pojawia się nieoczekiwanie, najszybszym krokiem debugowania jest curl -I <url> bezpośrednio przeciwko serwerowi origin (omijając CDN). Jeśli origin zwraca 200 bezpośrednio, 302 jest wstrzykiwane przez CDN, proxy lub load balancer.

Pętle Przekierowań 302: Jak Zdiagnozować

Pętla przekierowań występuje, gdy URL A zwraca 302 do URL B, a URL B zwraca 302 z powrotem do A. Po 20 skokach (w Chrome i Firefox) przeglądarka pokazuje ERR_TOO_MANY_REDIRECTS i się poddaje.

Najczęstszą pojedynczą przyczyną jest konflikt SSL/HTTPS między CDN (jak Cloudflare) a serwerem origin: CDN łączy się z origin przez HTTP, origin przekierowuje HTTP→HTTPS, CDN usuwa HTTPS i łączy się przez HTTP ponownie — nieskończona pętla.

bash
# Prześledź pełny łańcuch (ogranicz do 10 skoków, by uniknąć nieskończonych pętli)
curl -ILs --max-redirs 10 https://example.com 2>&1 | grep -i 'HTTP/\|location:'

# Przykład pętli:
# HTTP/2 302
# location: http://example.com/
# HTTP/1.1 302 Found
# Location: https://example.com/
# HTTP/2 302
# location: http://example.com/  <-- pętla potwierdzona

Jeśli widzisz dwie URL na przemian w nagłówkach Location, potwierdziłeś pętlę 302. Pełny przewodnik znajdziesz w naszym poście ERR_TOO_MANY_REDIRECTS. Sprawdzacz Przekierowań DNS Robot prześledza cały łańcuch z neutralnej lokalizacji i zatrzymuje się w punkcie pętli.

Najlepsze Praktyki dla Kodu Statusu 302

Wysyłanie 302 Found poprawnie unika większości błędów, na które natrafiają deweloperzy implementując przekierowania:

  • Zawsze dołączaj nagłówek Location — 302 bez Location jest nieprawidłowy i renderuje się jako pusta strona

  • Zawsze ustawiaj Cache-Control: no-cache — Inaczej niektóre przeglądarki cache'ują przekierowanie na czas sesji, łamiąc kontrakt 'tymczasowy'

  • Używaj URL absolutnych w Location — https://example.com/new jest jednoznaczne; /new działa, ale może się zepsuć za proxy zmieniającymi host

  • Trzymaj przekierowania w jednym skoku — A → 302 → B jest ok; A → 302 → B → 302 → C spowalnia ładowanie i rozcieńcza sygnały

  • Nie przekierowuj z POST na inną stronę przez 302 — Użyj 303 (intencjonalny GET) lub 307 (zachowaj POST)

  • Audytuj przekierowania co miesiąc — Stare tymczasowe przekierowania często przeżywają swój powód. Sprawdzaj Redirect Checker

  • Przełączaj na 301, gdy przeniesienie staje się trwałe — Nie zostawiaj trwałego przeniesienia w 302 dłużej niż kilka tygodni

Zachowanie Przeglądarki i Cache

Różne przeglądarki i pośrednicy obsługują HTTP 302 nieco inaczej. Znajomość tych dziwactw oszczędza czas debugowania:

KlientDomyślne zachowanie przy 302Domyślny cache
Chrome / EdgeAuto-podąża, zmienia POST→GETNie cache'owany, chyba że nagłówki to powiedzą
FirefoxAuto-podąża, zmienia POST→GETNie cache'owany, chyba że nagłówki to powiedzą
SafariAuto-podąża, zmienia POST→GETNieco bardziej agresywny cache przekierowań
curl (domyślnie)NIE podąża — pokazuje 302 + LocationBrak cache
curl -LPodąża do --max-redirs (domyślnie 50)Brak cache
wget (domyślnie)Auto-podąża do --max-redirect=20Brak cache
GooglebotPodąża, traktuje jako sygnał tymczasowyRe-crawluje oryginalną URL

Aby zweryfikować zachowanie przekierowań w przypadkach brzegowych (metody POST, nieskończone pętle, obecność nagłówków), Sprawdzacz Nagłówków HTTP DNS Robot pokazuje surową odpowiedź bez przepisywania metody po stronie przeglądarki. Czytaj więcej o tymczasowych przekierowaniach w dokumentacji MDN i specyfikacji RFC 9110.

Advertisement

Prześledź dowolny łańcuch przekierowań w sekundach

Użyj darmowego Sprawdzacza Przekierowań DNS Robot do inspekcji każdego skoku w łańcuchu przekierowań — kody statusu, nagłówki Location i ostateczny cel z neutralnego serwera (bez cache przeglądarki).

Wypróbuj Sprawdzacz Przekierowań

Advertisement

Często Zadawane Pytania

Kod statusu 302 (HTTP 302 Found) oznacza, że żądany zasób znajduje się tymczasowo pod inną URL podaną w nagłówku Location odpowiedzi. Klient powinien podążyć za przekierowaniem dla tego żądania, ale nadal używać oryginalnej URL w przyszłych żądaniach. To tymczasowy odpowiednik 301 Moved Permanently.

Powiązane narzędzia

Redirect CheckerHTTP Headers CheckSSL Certificate CheckDNS Lookup

Powiązane artykuły

ERR_TOO_MANY_REDIRECTS: jak to naprawić (wszystkie przeglądarki)Błąd HTTP 503 Service Unavailable: Przyczyny i sposoby naprawyBłąd HTTP 500 Internal Server Error: Przyczyny i sposoby naprawyBlad 403 Forbidden: Co oznacza i jak go naprawic

Spis treści

  • Czym Jest Kod Statusu HTTP 302?
  • Anatomia Odpowiedzi 302
  • 302 vs 301 vs 307 vs 308: Które Przekierowanie Wybrać?
  • Kiedy Używać Przekierowania 302?
  • Jak Wysłać Kod Statusu 302
  • Jak Przetestować Kod Statusu 302
  • Przekierowania 302 a SEO
  • Dlaczego 302 Zmienia Żądania POST na GET
  • Częste Problemy z 302 i Jak Je Naprawić
  • Pętle Przekierowań 302: Jak Zdiagnozować
  • Najlepsze Praktyki dla Kodu Statusu 302
  • Zachowanie Przeglądarki i Cache
  • Często zadawane pytania