У якійсь статті, яку я прочитав одного разу, сказано, що це означає стрибки (з одного URI в інший), але я виявив це "302", навіть коли насправді взагалі не було стрибків!
У якійсь статті, яку я прочитав одного разу, сказано, що це означає стрибки (з одного URI в інший), але я виявив це "302", навіть коли насправді взагалі не було стрибків!
Відповіді:
Перенаправлення 302 означає, що сторінку було тимчасово переміщено, тоді як 301 означає, що вона була постійно переміщена.
301 - це корисне для SEO значення, тоді як 302 - це не тому, що 301s вказує клієнтам забути значення вихідної URL-адреси, тоді як 302 зберігає значення оригіналу і, таким чином, потенційно може зменшити значення, створивши дві, логічно відмінні URL-адреси, які кожен виробляє однаковий вміст (пошукові системи розглядають їх як окремі копії, а не на один ресурс з двома іменами).
Це питання було задано дуже давно, поки RFC 2616 ще висів. Деякі відповіді на це питання ґрунтуються на такому документі, який сьогодні вже не актуальний. Цитуючи Марка Ноттінгема, який під час написання статті був співголовою робочих груп IETF HTTP та QUIC:
Не використовуйте RFC2616 . Видаліть його з жорстких дисків, закладок і запишіть (або відповідально переробляйте) будь-які роздруковані копії.
Старий RFC 2616 був замінений наступними документами, які разом визначають протокол HTTP / 1.1:
Тому я прагну надати відповідь, що базується на RFC 7231, яка є поточною посиланням на коди статусу HTTP / 1.1.
302
статусуВідповідь із 302
- це звичайний спосіб перенаправлення URL-адрес. Поряд з 302
кодом статусу відповідь повинна містити Location
заголовок з іншим URI. Такий заголовок буде проаналізований користувальницьким агентом, а потім виконає перенаправлення:
У наступних запитах веб-браузери можуть змінюватися з POST
на GET
. Якщо така поведінка небажана, 307
замість цього може використовуватися код статусу (Тимчасовий переспрямовування).
Ось як визначається 302
код статусу в RFC 7231 :
Код стану
302
(знайдений) вказує, що цільовий ресурс тимчасово знаходиться під іншим URI. Оскільки перенаправлення може бути змінено в деяких випадках, клієнт повинен продовжувати використовувати ефективний URI запиту для майбутніх запитів.Сервер ДОЛЖЕН генерувати
Location
поле заголовка у відповіді, що містить посилання URI для різних URI. Агент користувача МОЖЕ використовуватиLocation
значення поля для автоматичного перенаправлення. Корисне навантаження відповіді сервера зазвичай містить коротку примітку гіпертексту з гіперпосиланням на різні URI (s).Примітка. З історичних причин агент користувача МОЖЕ змінити метод запиту з
POST
наGET
наступний запит. Якщо така поведінка небажана,307
замість цього може використовуватися код статусу (Тимчасовий переспрямовування).
Згідно з веб-документами MDN від Mozilla , типовим випадком використання 302
є:
Веб-сторінка тимчасово недоступна з причин, які не були непередбаченими. Таким чином, пошукові системи не оновлюють свої посилання.
В RFC 7231 визначає наступні коди стану для переадресації:
RFC 7238 був створений , щоб визначити інший код стану для перенаправлення:
308
(Постійна перенаправлення)Детальнішу інформацію див. У цій відповіді .
Location
заголовок, що мені допомогло). Виявляється, я дзвонив у службу, http
і вони переїхали до https
мене, все, що я отримав у відповідь 302
, - як тільки я прочитав Location
тут заголовок, я побачив http/https
різницю. Дякую!
Простий спосіб перегляду переспрямувань HTTP 301 проти 302:
Припустимо, у вас є закладка " http://sample.com/sample ". Ви використовуєте браузер, щоб перейти туди.
Перенаправлення 302 на іншу URL-адресу в цей момент означатиме, що ви повинні зберігати закладку на " http://sample.com/sample ". Це відбувається тому, що цільова URL-адреса може змінитися в майбутньому.
Переадресація 301 на іншу URL-адресу означатиме, що ваша закладка повинна змінитись, щоб вказати на нову URL-адресу, оскільки вона є постійною переадресацією.
З RFC 2616 (специфікація протоколу передачі гіпертексту) :
10.3.3 Знайдено 302 Запитаний ресурс тимчасово знаходиться під іншим URI. Оскільки перенаправлення може бути змінено в деяких випадках, клієнт ДОЛЖЕНО продовжуйте використовувати URI-запит для майбутніх запитів. Ця відповідь є кешованим, лише якщо це вказано в заголовку кеш-керування або закінчується поле. Тимчасовий URI повинен бути заданий полем Location у відповідь. Якщо метод запиту не був HEAD, суб'єкт відповідь ДОЛЖЕН би містити коротку гіпертекстову примітку з гіперпосиланням на нові URI (s).
Джерело:
Відповідно до визначень коду статусу http, 302 вказує на (тимчасове) переспрямування. "Запитаний ресурс тимчасово знаходиться під іншим URI"
302 - відповідь, що вказує на зміну місця розташування ресурсу - "Знайдено".
URL-адреса, де зараз повинен знаходитися ресурс, повинна міститись у заголовку відповіді "Місцезнаходження".
"Перехід" повинен здійснити запитуючий клієнт (зробіть новий запит на URL-адресу ресурсу в полі заголовка відповіді Location).
Що стосується SEO, 301 та 302 це добре, це залежить від ситуації,
Якщо можна повернути лише одну версію (тобто інша перенаправляє на неї), це чудово! Така поведінка вигідна, оскільки зменшує повторюваний вміст. У конкретному випадку переспрямування на кінцеві URL-адреси косої риси, наші результати пошуку, ймовірно, показуватимуть версію URL-адреси з кодом відповіді 200 (найчастіше URL-адресою косою косою рисою) - незалежно від того, перенаправлення було 301 чи 302.
HTTP-код 302 призначений для перенаправлення, див. Http://en.wikipedia.org/wiki/HTTP_302 .
Це повідомляє переглядати сторінку, читаючи сторінку, перейти кудись ще й завантажити іншу сторінку. Його використання дуже поширене.
Згідно RFC 1945 / протокол передачі гіпертексту - HTTP / 1.0 :
302 Moved Temporarily
The requested resource resides temporarily under a different URL.
Since the redirection may be altered on occasion, the client should
continue to use the Request-URI for future requests.
The URL must be given by the Location field in the response. Unless
it was a HEAD request, the Entity-Body of the response should
contain a short note with a hyperlink to the new URI(s).
If the 302 status code is received in response to a request using
the POST method, the user agent must not automatically redirect the
request unless it can be confirmed by the user, since this might
change the conditions under which the request was issued.
Note: When automatically redirecting a POST request after
receiving a 302 status code, some existing user agents will
erroneously change it into a GET request.
ПРИКЛАД: - Хоча ми не дуже часто зустрічаємо необхідність перенаправлення 302, цей варіант може бути дуже корисним у деяких випадках. Це найчастіші випадки:
Переадресація 302 - це код, який повідомляє відвідувачам певної URL-адреси про те, що сторінку тимчасово переміщено, спрямовуючи їх безпосередньо на нове місце.
Іншими словами, переадресація 302 активується, коли роботи Google або інші пошукові системи вимагають завантажити певну сторінку. У той момент, завдяки цьому перенаправленню, сервер повертає автоматичну відповідь із зазначенням нової URL-адреси.
Таким чином, уникнути помилок і неприємностей як для пошукових систем, так і для користувачів, гарантуючи безперебійну навігацію.
Детальніше див. Цю статтю .
Код стану 302 - це код статусу відповіді HTTP, який вказує на те, що запитуваний ресурс тимчасово переміщений до іншого URI. Оскільки місцеположення або поточна директива про переадресацію можуть бути змінені в майбутньому, клієнт, який отримує код відповіді 302, повинен продовжувати використовувати оригінальний URI для майбутніх запитів.
Відповідь HTTP з цим кодом статусу додатково надасть URL-адресу в полі заголовка Location. Це запрошення до агента користувача (наприклад, веб-браузера) зробити другий, інакше ідентичний, запит на нову URL-адресу, вказану в полі розташування. Кінцевим результатом є перенаправлення на нову URL-адресу.
Для тих, кому може бути цікаво називати, я просто додам, що це, ймовірно, називається "Знайдено", оскільки основний ресурс (наприклад, приватна веб-сторінка), який користувач має намір отримати, на даний момент недоступний (наприклад, користувач ще не підтвердив свою особу), тому замість цього сервер знайшов новий ресурс, який користувач може отримувати (це сторінка входу в найбільш поширеному випадку використання).
Крім того, це "загубитися і знайти" в хованках, тобто втрачений ресурс під статусом 302 втрачається лише тимчасово , він не повинен бути втрачений назавжди (якщо у гравця немає поганих намірів;)).