HTTP / Перенаправляющий к URI на сервере

Нажать Change Columns на странице с результатами поиска.

3
задан 29 December 2011 в 08:49
2 ответа

Допустимо ли в соответствии со стандартом HTTP / 1.1 отправлять URI [в заголовке местоположения] без имени хоста и протокола?

Нет, из-за того, как 'absoluteURI' определено. Поскольку вы смотрите на RFC, давайте придерживаться их в этом обсуждении. Резервное копирование:

Что именно они подразумевают под «абсолютным URI»?

Это определено в другом месте. Это происходит часто .

Теперь я хочу перенаправить на URI на том же сервере, и я знаю путь. Это абсолютный URI (он начинается с корня), но без имени хоста и протокола.

Это может быть абсолютный путь , но это не делает его абсолютным URI ].

Из раздела 3.2.1 HTTP / 1.1 RFC, Общий синтаксис:

Для получения полной информации о синтаксисе и семантике URL см. " закон в действии. Вы сделали что-то не так, но браузер все равно это понял. Вы должны следовать ему и отправить правильный абсолютный URI с заголовком Location: . Если это не может быть легко построено в вашей среде, что-то не так; Я не могу вспомнить ни одного веб-приложения, которое я видел, где информацию о хосте нельзя было бы настроить или получить.

3
ответ дан 3 December 2019 в 05:48

Похоже, они не сказали явно, следует ли включать имя сервера и протокол. Если вы знаете, кто будет использовать вашу HTTP-службу, вы можете просто протестировать ее и посмотреть, работает ли она.

Кроме того, нетрудно узнать запрошенный URL-адрес на сервере и создать абсолютный URL-адрес, который включает протокол и имя хоста. . Например, вы можете использовать массив $ _ SERVER в PHP. Другие веб-языки должны иметь аналогичные предопределенные переменные.

2
ответ дан 3 December 2019 в 05:48

Теги

Похожие вопросы