3

Когда я получаю доступ к определенным URL-адресам HTTP, таким как http://www.ssa.gov/framework/images/icons/png/ в Firefox (работает на Linux), я неожиданно получаю ошибку браузера "Проблема загрузки страницы", содержащую « "Файл не найден", которое используется для локальных файлов:

Fire Fox

Похоже, что текст не имеет смысла, поскольку в нем нет файла.

Сначала я подумал, что это может быть просто ошибка Firefox, но в Chromium происходит то же самое:

хром

Когда я говорю Wget для его загрузки, он сообщает об 500 Server Error . Но не может быть, чтобы браузеры отображали "Файл не найден" при получении ошибки 500, потому что это не происходит, когда я захожу на https://httpbin.org/status/500 .

Что вызывает это сообщение об ошибке, и что это значит?

4 ответа4

13

Я думаю, что нашел причину для этого.

Когда веб-сервер обнаруживает ошибку, он обычно подает в браузер документ (обычно HTML-документ, описывающий ошибку) с указанием состояния ошибки с использованием кода состояния HTTP.

Согласно этому отчету об ошибках, Firefox изначально всегда отображал возвращенный документ; обычно это то, что вы хотите. Однако пользователь обнаружил проблему с неправильно настроенным сервером AOL: при запросе несуществующего EXE-файла сервер будет обслуживать страницу 404, но с неверным типом содержимого. Это привело к тому, что Firefox предложил загрузить документ HTML с расширением .exe , что сбивало с толку, поскольку не было никаких признаков того, что произошла какая-либо ошибка. Они изменили поведение простым взломом (не оправдывая усилий по написанию новой страницы с сообщением об ошибке, поскольку это редкий случай, вместо того, чтобы повторно использовать страницу "не найден", что имеет смысл в конкретном примере, приведенном репортером ошибки).

Из сообщения об ошибке, обнаруженного @ m4573r, похоже на текущее поведение, когда Firefox получает ответ с HTTP-кодом, сигнализирующим об ошибке, а Content-Type ответа отличается от HTML, тогда Firefox отображает ошибку "Файл не найден" стр.

Подавляющее большинство веб-серверов настроено на обслуживание HTML-документа в случае ошибки, поэтому вы обычно этого не видите. Но в этом угловом случае сообщение об ошибке не имеет смысла.

wget -d http://www.ssa.gov/framework/images/icons/png/ подтверждает, что здесь происходит:

---response begin---
HTTP/1.1 500 Server Error
Server: Generic Web Server 1.0
Date: Thu, 20 Feb 2014 23:29:57 GMT
Cache-control: public
Content-type: magnus-internal/directory
Transfer-encoding: chunked

---response end---

Он обслуживает страницу ошибок с поддельным Content-type magnus-internal/directory , вызывая поведение в Firefox.

Очевидно, Google подумал, что такое поведение имело смысл, и реализовал его аналогичным образом в Chromium.

1

Это было сообщено как ошибка в ... 2008:/ Кажется, это в списке с низким приоритетом.

0

Поскольку вы сказали в своем вопросе, что файл не задействован, я думаю, что если вы немного расскажете о том, как работает веб, вы можете устранить ваши сомнения.

Когда вы отправляете запрос на сервер, вы действительно запрашиваете файл, хранящийся на сервере, или файл, сгенерированный сервером, если запрос запрашивает динамическое содержимое.

URL разделен на 3 части:

1) Http:// << используемый протокол

2) www.whever.com << днс, используемый для идентификации сервера (комп, откуда вы запрашиваете контент)

3) /music/song.mp3 << расположение файла на сервере

Так что в этом сообщении об ошибке просто говорится, что запрошенный вами файл не найден. Я взял пример музыкального файла, но можно запросить даже веб-страницу с расширением .html, и может возникнуть та же ошибка.

Эта ошибка просто говорит о том, что на сервере не найден ресурс, т. Е. Веб-страница, музыкальный файл, видео или файл любого типа, который вы запросили.

-1

Я просто хотел бы отметить, что вы искали только часть пути для URL. Отсутствует как имя файла, так и тип файла. По сути, он говорил вам, что не может найти несуществующий «не файл», который вы искали. Причина, по которой эта «ошибка» не была исправлена, заключается в том, что это не ошибка.

В конце концов, если вы пойдете в дом к совершенно незнакомому человеку и спросите, где его ______, они не смогут помочь вам найти его, пока что-то не заполнит эту пустую часть вопроса, и действительно, это то, о чем вы спрашивали браузер. сделать.

Кстати, если вы уберете точку в конце этого частичного URL, он должен предоставить вам список файлов, которые находятся в папке png сайта. Однако некоторые люди считают, что это хакерство. Лично я не оставляю и вместо этого оставляю «пасхальные яйца», например, дополнительный загружаемый контент, для пользователей, которые понимают, как веб-сайты структурированы лучше, чем другие. Мне всегда нравилось награждать людей за то, что они получили дополнительные знания, которых нет у других.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .