Что означает "Файл не найден" на веб-странице?
Когда я получаю доступ к определенным URL-адресам HTTP, таким как http://www.ssa.gov/framework/images/icons/png/
в Firefox (работающем в Linux) неожиданно появляется ошибка браузера "Проблема загрузки страницы", содержащая сообщение "Файл не найден", который используется для локальных файлов:
Похоже, что текст не имеет смысла, поскольку в нем нет файла.
Сначала я подумал, что это может быть просто ошибка Firefox, но то же самое происходит в Chromium:
Когда я говорю Wget, чтобы загрузить его, он сообщает 500 Server Error
, Но не может быть, чтобы браузеры отображали "Файл не найден" при получении ошибки 500, потому что это не происходит, когда я захожу на https://httpbin.org/status/500.
Что вызывает это сообщение об ошибке, и что это значит?
4 ответа
Я думаю, что нашел причину для этого.
Когда веб-сервер обнаруживает ошибку, он обычно подает в браузер документ (обычно 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.
Об этом сообщают как об ошибке в... 2008:/ Кажется, это в списке с низким приоритетом.
Поскольку вы сказали в своем вопросе, что файл не задействован, я думаю, что если вы немного расскажете о том, как работает веб, вы можете устранить ваши сомнения.
Когда вы отправляете запрос на сервер, вы действительно запрашиваете файл, хранящийся на сервере, или файл, сгенерированный сервером, если запрос запрашивает динамический контент.
URL разделен на 3 части:
1) Http: // << используемый протокол
2) www.whever.com << днс, используемый для идентификации сервера (комп, откуда вы запрашиваете контент)
3) /music/song.mp3 << расположение файла на сервере
Так что в этом сообщении об ошибке просто говорится, что запрошенный вами файл не найден. Я взял пример музыкального файла, но можно запросить даже веб-страницу с расширением.html, и может возникнуть та же ошибка.
Эта ошибка просто говорит о том, что на сервере не найден ресурс, т. Е. Веб-страница, музыкальный файл, видео или файл любого типа, который вы запросили.
Я просто хотел бы отметить, что то, что вы искали, было только ЧАСТЬ пути для URL. В нем отсутствуют как имя файла, так и тип файла. По сути, он говорил вам, что не может найти несуществующий "не файл", который вы искали. Причина, по которой эта "ошибка" не была исправлена, заключается в том, что это не ошибка.
В конце концов, если вы пойдете в дом к совершенно незнакомому человеку и спросите, где находится его ______, они не смогут помочь вам найти его, пока что-то не заполнит эту пустую часть вопроса, и действительно, это то, о чем вы спрашивали браузер. сделать.
Кстати, если вы уберете точку в конце этого частичного URL, он должен предоставить вам список файлов, которые находятся в папке png сайта. Однако некоторые люди считают, что это хакерство. Лично я не оставляю и вместо этого оставляю "пасхальные яйца", например, дополнительный загружаемый контент, для пользователей, которые понимают, как веб-сайты структурированы лучше, чем другие. Мне всегда нравилось награждать людей за то, что они получили дополнительные знания, которых нет у других.