302 znalezione: Co To jest i jak to naprawić

302 znaleziony komunikat to HTTP response status code wskazujący, że żądany zasób został tymczasowo przeniesiony do innego URI. Ponieważ dyrektywa dotycząca lokalizacji lub bieżącego przekierowania może zostać zmieniona w przyszłości, klient, który otrzyma kod odpowiedzi 302 Found, powinien nadal używać oryginalnego URI dla przyszłych żądań.,

Niestety, może być trudno odróżnić wszystkie możliwe kody odpowiedzi HTTP i określić dokładną przyczynę błędów, takich jak kod 302 Found. Istnieją dziesiątki możliwych kodów statusu HTTP używanych do reprezentowania złożonych relacji między Klientem, aplikacją internetową, serwerem internetowym i mnóstwem usług internetowych stron trzecich, które mogą być używane, więc określenie przyczyny określonego kodu statusu może być trudne., W tym artykule przeanalizujemy kod 302 Found, patrząc na kilka wskazówek dotyczących rozwiązywania problemów, wraz z kilkoma potencjalnymi poprawkami typowych problemów, które mogą powodować ten problem w twoich własnych aplikacjach internetowych, więc przejdźmy do niego!

problem jest po stronie serwera

wszystkie kody statusu odpowiedzi HTTP, które znajdują się w kategorii 3xxsą brane pod uwagę redirection messages. Takie kody wskazują agentowi użytkownika (tj. przeglądarce internetowej), że w celu realizacji żądania i uzyskania dostępu do żądanego zasobu wymagane jest dodatkowe działanie., W przeciwieństwie do client error responses znalezionych w kodach 4xx, takich jak 404 Not Found Error zbadaliśmy ostatnio, które mogą wynikać z problemu po stronie klienta lub serwera, 302 Found ogólnie oznacza problem na rzeczywistym serwerze hosting aplikacji.

To powiedziawszy, pojawienie się302 Found zwykle nie jest czymś, co wymaga dużej interwencji użytkownika. Wszystkie nowoczesne przeglądarki automatycznie wykryją kod odpowiedzi 302 Found I automatycznie przetworzą akcję tymczasowego przekierowania., Serwer WWW obsługujący aplikację zazwyczaj zawiera specjalny nagłówek Location jako część odpowiedzi, którą wysyła do klienta. Ten nagłówekLocation wskazuje nowy adres URL, w którym można znaleźć żądany zasób. Na przykład, Jeśli pojawi się żądanie dostępu do URL , ale serwer sieci Web jest skonfigurowany tak, aby wymusić przekierowanie do bezpiecznej wersji za pomocą https, odpowiedź serwera będzie zawierać nagłówek Location: https://airbrake.io., Oznacza to, że przeglądarka powinna przekierować to pojedyncze żądanie do na zabezpieczony adres URL . W większości przypadków przeglądarka automatycznie wykryje ten kod odpowiedzi 302 Found, odczyta nowy adres URLLocation I przekieruje żądanie do nowej lokalizacji.

ważne jest jednak, aby pamiętać, że kod odpowiedzi302 Found jest używany do zupełnie innych celów niż301 Moved Permanently, na który patrzyliśmy w zeszłym tygodniu., W przypadku pierwszego przekierowanie powinno być tymczasowe — tzn. tylko dla bieżącego, pojedynczego żądania) – przeglądarka powinna „zapamiętać” oryginalny URI i przetwarzać wszelkie przyszłe żądania używając tego samego URI. Jednak za pomocą kodu 301 Moved Permanently przeglądarka jest informowana, że oryginalny URI nie jest już ważny, więc wszystkie przyszłe żądania powinny używać nowego URI dostarczonego przez nagłówek Location.,

ponieważ302 Found wskazuje, że coś poszło nie tak wserver Twojej aplikacji, możemy w dużej mierze pominąć stronęclient. Jeśli próbujesz zdiagnozować problem z własną aplikacją, możesz natychmiast zignorować większość kodu i komponentów po stronie klienta, takich jak HTML, kaskadowe arkusze stylów (CSS), JavaScript po stronie klienta i tak dalej. Nie dotyczy to również wyłącznie witryn internetowych., Wiele aplikacji na smartfony, które mają nowoczesny wygląd interfejsu użytkownika, jest w rzeczywistości zasilanych przez normalną aplikację internetową za kulisami; taką, która jest po prostu ukryta przed użytkownikiem. Jeśli używasz takiej aplikacji i wystąpi 302 Found, problem nie będzie związany z aplikacją zainstalowaną na telefonie lub lokalnym urządzeniu testującym. Zamiast tego, będzie to coś po stronie serwera, który wykonuje większość logiki i przetwarzania za kulisami, poza zakresem lokalnego interfejsu przedstawionego użytkownikowi.,

Jeśli Twoja aplikacja generuje nieoczekiwane kody odpowiedzi302 Found istnieje wiele kroków, które możesz wykonać, aby zdiagnozować problem.

zacznij od dokładnego backupu aplikacji

jak w przypadku czegokolwiek, lepiej grać bezpiecznie na początku niż coś spieprzyć i później żałować. W związku z tym ważne jest, aby wykonać pełną kopię zapasową aplikacji, bazy danych itp., Przed przystąpieniem do jakichkolwiek poprawek lub zmian w systemie., Co więcej, jeśli masz taką możliwość, Utwórz kompletną kopię aplikacji na drugim serwerze staging, który nie jest „aktywny” lub nie jest w inny sposób aktywny i dostępny publicznie. Zapewni to czyste pole testowe, na którym można przetestować wszystkie potencjalne poprawki w celu rozwiązania problemu, bez zagrażania bezpieczeństwu lub świętości aplikacji na żywo.

diagnozowanie 302 znalezionych kodów odpowiedzi

a302 Found kod odpowiedzi wskazuje, że żądany zasób powinien być tymczasowo dostępny pod innym URI., Jest jednak całkowicie możliwe, że serwer został źle skonfigurowany, powodując, że nieprawidłowo odpowiada kodami 302 Foundzamiast standardowego i oczekiwanego kodu200 OK normalnego, funkcjonalnego żądania. Tak więc duża część diagnozowania problemu będzie przechodziła przez proces podwójnego sprawdzania, jakie zasoby / adresy URL generują 302 Found kody odpowiedzi i określania, czy te kody są odpowiednie, czy nie.,

Jeśli Twoja aplikacja odpowiada302 Found kodami, których nie powinna wydawać, jest to problem, który może napotkać również wielu innych użytkowników, znacznie utrudniając zdolność aplikacji do obsługi użytkowników. Omówimy kilka porad i wskazówek dotyczących rozwiązywania problemów, które pomogą Ci rozwiązać ten problem. Jeśli nic tutaj nie działa, nie zapominaj, że Google jest twoim przyjacielem. Spróbuj wyszukać konkretne terminy związane z Twoim problemem, takie jak nazwa oprogramowania CMS lub serwera www aplikacji, wraz z 302 Found., Są szanse, że znajdziesz innych, którzy doświadczyli tego problemu i znaleźli rozwiązanie.

Rozwiązywanie problemów po stronie serwera

oto kilka dodatkowych wskazówek, które pomogą Ci rozwiązać problem, co może powodować, że 302 Found pojawia się po stronie serwera:

Potwierdź konfigurację serwera

Twoja aplikacja prawdopodobnie działa na serwerze używającym jednego z dwóch najpopularniejszych programów serwerowych, Apache lub nginx., W momencie publikacji oba te serwery www tworzą over 84% oprogramowania serwerów WWW na świecie! Dlatego jednym z pierwszych kroków, które możesz podjąć, aby określić, co może być przyczyną tych302 Found kody odpowiedzi, jest sprawdzenie plików konfiguracyjnych oprogramowania serwera www pod kątem niezamierzonych instrukcji przekierowania.

aby określić, z którego serwera www korzysta Twoja aplikacja, poszukaj pliku klucza. Jeśli twoim serwerem jest Apache, poszukaj pliku .htaccess w katalogu głównym systemu plików witryny., Na przykład, jeśli Twoja aplikacja jest na współdzielonym hoście, prawdopodobnie będziesz mieć nazwę użytkownika powiązaną z kontem hostingowym. W takim przypadku katalog główny aplikacji znajduje się zazwyczaj na ścieżce /home/<username>/public_html/, więc plik .htaccesspowinien znajdować się w/home/<username>/public_html/.htaccess.

Jeśli zlokalizowałeś plik.htaccess, otwórz go w edytorze tekstu i poszukaj linii, które używają dyrektywRewriteXXX, które są częścią modułumod_rewrite w Apache., Jednak podstawowa koncepcja polega na tym, że dyrektywa RewriteCond definiuje wzorzec tekstowy, który będzie dopasowany do wprowadzonych adresów URL. Jeśli odwiedzający stronę żąda pasującego adresu URL, do przeprowadzenia rzeczywistego przekierowania żądania na odpowiedni adres URL służy dyrektywa RewriteRule, która następuje po jednej lub więcej dyrektyw RewriteCond.,

na przykład, tutaj jest prosta RewriteCond I RewriteRule kombinacja, która dopasowuje wszystkie przychodzące żądania do example.com I ustanawia tymczasowe przekierowanie do tego samego URI na temporary-example.com zamiast domeny:

RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1 

zwróć uwagę na dodatkową flagę na końcu RewriteRule, która wyraźnie stwierdza, że kod odpowiedzi powinien być 302, wskazując agentom użytkowników (przeglądarkom), że jest to tymczasowe przekierowanie., Tak więc, jeśli znajdziesz jakieś dziwne dyrektywy RewriteCond lub RewriteRule w pliku .htaccess, które wydają się nie należeć, spróbuj tymczasowo je skomentować (używając prefiksu #) I uruchom ponownie swoją stronę internetową serwera, aby sprawdzić, czy to rozwiąże problem.

z drugiej strony, jeśli twój serwer działa na nginx, musisz poszukać zupełnie innego pliku konfiguracyjnego., Domyślnie ten plik ma nazwę nginx.conf I znajduje się w jednym z kilku popularnych katalogów: /usr/local/nginx/conf, /etc/nginx lub /usr/local/etc/nginx. Po zlokalizowaniu otwórz nginx.conf w edytorze tekstu i wyszukaj rewrite dyrektywy, które używają znacznika redirect. Na przykład, tutaj jest prosty block directive (tj., nazwanego zestawu dyrektyw), który konfiguruje serwer wirtualny poprzez utworzenie tymczasowego przekierowania z example.com do temporary-example.com:

server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}

Rewrite dyrektyw w nginx są podobne do dyrektyw RewriteCond I RewriteRule znalezionych w Apache, ponieważ zawierają bardziej złożone wzorce tekstowe do wyszukiwania., Tak czy inaczej, przejrzyj pliknginx.conf w poszukiwaniu anormalnych dyrektywrewrite zawierających flagęredirect (alternatywna flagapermanent wyda301 kody odpowiedzi zamiast). Skomentuj wszelkie nieprawidłowości przed ponownym uruchomieniem serwera, aby sprawdzić, czy problem został rozwiązany.

Sprawdź nieaktualne oprogramowanie

dokument specyfikacji RFC dla HTTP 1.,0 stwierdził, że celem kodu odpowiedzi 302 Found było wskazanie, że klient powinien wykonać tymczasowe przekierowanie. Jednak wiele nowszych przeglądarek przetwarza kod302 otrzymany za pośrednictwem żądaniaPOST jako błędne żądanieGET, co powodowało problemy i zamieszanie w niektórych programach serwerów internetowych próbujących zmusić przeglądarki do wykonania WŁAŚCIWEGO zadania, gdy wymagane było tymczasowe przekierowanie. Aby to rozwiązać, http 1.,1 Dokument specyfikacji RFC dodał 303 See Other I307 Temporary Redirect kody odpowiedzi, które są jawnymi sposobami obsługiPOST-to-GET oraz tymczasowe bezpośrednie odpowiedzi, odpowiednio.

Przeszukaj Logi

prawie każda aplikacja internetowa zachowa jakąś formę dzienników po stronie serwera. Application logs są zazwyczaj historią tego, co aplikacja zrobiła, na przykład, które strony zostały żądane, z którymi serwerami została podłączona, jakie wyniki bazy danych zapewnia, i tak dalej., Server logs są związane z faktycznym sprzętem, na którym działa aplikacja, i często dostarczają informacji na temat stanu i stanu wszystkich połączonych usług, a nawet samego serwera. Google „dzienniki”, jeśli używasz CMS lub „dzienniki” i „dzienniki”, jeśli używasz niestandardowej aplikacji, aby uzyskać więcej informacji na temat znajdowania tych dzienników.

Debuguj kod aplikacji

Jeśli Wszystko inne zawiedzie, może się zdarzyć, że problem w jakimś niestandardowym kodzie w Twojej aplikacji powoduje problem., Spróbuj zdiagnozować, skąd może pochodzić problem, ręcznie debugując aplikację, a także analizując Dzienniki aplikacji i serwera. Najlepiej zrobić kopię całej aplikacji na lokalnej maszynie deweloperskiej i wykonać proces debugowania krok po kroku, który pozwoli odtworzyć dokładny scenariusz, w którym wystąpił 302 Found I wyświetlić kod aplikacji w momencie, gdy coś pójdzie nie tak.,

bez względu na przyczynę, pojawienie się302 Found w Twojej własnej aplikacji internetowej jest silną wskazówką, że możesz potrzebować narzędzia do zarządzania błędami, które pomoże Ci automatycznie wykryć takie błędy w przyszłości. Najlepsze z tych narzędzi mogą nawet natychmiast powiadomić Ciebie i twój zespół, gdy wystąpi błąd. Oprogramowanie do monitorowania błędów Airbrake zapewnia monitorowanie błędów w czasie rzeczywistym i automatyczne raportowanie wyjątków dla wszystkich projektów deweloperskich., Nowoczesny pulpit nawigacyjny Airbrake zapewnia całodobowe aktualizacje stanu aplikacji i wskaźników błędów. Bez względu na to, nad czym pracujesz, Airbrake łatwo integruje się ze wszystkimi najpopularniejszymi językami i frameworkami. Ponadto Airbrake ułatwia dostosowywanie parametrów WYJĄTKÓW, zapewniając jednocześnie pełną kontrolę nad systemem aktywnego filtrowania błędów, dzięki czemu zbierasz tylko te błędy, które mają największe znaczenie.,

Sprawdź oprogramowanie do monitorowania błędów firmy Airbrake już dziś i przekonaj się, dlaczego tak wiele najlepszych na świecie zespołów inżynierskich wykorzystuje Airbrake, aby zrewolucjonizować swoje praktyki obsługi wyjątków!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *