Оновлення 2014 - 27 червня :
RFC 7231, протокол передачі гіпертексту (HTTP / 1.1): семантика та вміст , опублікований як ПРОПОЗИЦІЙНА СТАНДАРТА. Із журналу змін :
Синтаксис поля заголовка Location було змінено, щоб дозволити всі посилання URI, включаючи відносні посилання та фрагменти, а також деякі пояснення щодо того, коли використання фрагментів було б недоцільним. (Розділ 7.1.2)
Важливі моменти розділу 7.1.2. Розташування :
Якщо значення Location, надане у відповіді 3xx (перенаправлення), не має компонента фрагмента, агент користувача ОБОВ'ЯЗКОВО обробляє перенаправлення так, як якщо б значення успадковувало компонент фрагмента посилання URI, що використовується для генерування цілі запиту (тобто перенаправлення успадковується оригінальний фрагмент посилання, якщо такий є).
Наприклад, запит GET, згенерований для URI-посилання " http://www.example.org/~tim ", може призвести до відповіді 303 (див. Інше), що містить поле заголовка:
Location: /People.html#tim
що говорить про те, що агент користувача перенаправляє на " http://www.example.org/People.html#tim "
Аналогічно, запит GET, згенерований для посилання URI " http://www.example.org/index.html#larry ", може призвести до відповіді 301 (постійно переміщеної), що містить поле заголовка:
Location: http://www.example.net/index.html
що говорить про те, що агент користувача перенаправляє на " http://www.example.net/index.html#larry ", зберігаючи оригінальний ідентифікатор фрагмента.
Це має чітко відповісти на ваші запитання.
Оновити END
це відкрита (не вказана) проблема з поточною специфікацією HTTP . Він розглядається в двох випусках робочої групи IETF httpbis :
№6 дозволяє фрагменти в Location
заголовку. # 43 говорить про це:
Я просто тестував це за допомогою різних браузерів.
- Firefox і Safari використовують фрагмент у заголовку місцезнаходження.
- Opera використовує фрагмент з URI-джерела, коли він присутній, інакше фрагмент з місця переадресації
- IE (8) ігнорує фрагмент у URI розташування, таким чином, використовує фрагмент з вихідного URI, коли він присутній
Пропозиція:
"Примітка. Поведінка, коли ідентифікатори фрагментів від початкового URI та перенаправлення потрібно поєднувати, не визначені; поточні Агенти користувача дійсно відрізняються від того, який фрагмент має перевагу."
[...]
Виявляється , що IE8 робить використання фрагмента idenfitier з Location
(поведінку я бачив , може бути обмежена локального хоста).
Таким чином, нам здається, що ми маємо послідовну поведінку для Safari / IE / Firefox / Chrome (щойно перевірене), оскільки фрагмент із заголовка Location використовується, незважаючи на те, яким був початковий URI.
Тому я змінюю свою пропозицію задокументувати це як очікувану поведінку.
це призводить до найбільш сумісного з веб-переглядачами та майбутнього підтвердження (оскільки ця проблема згодом отримає стандартизовану відповідь) на ваше питання:
A: фрагменти з оригінальних URL-адрес видаляються.
Б: фрагменти із Location
заголовка вшановуються.