Эта проблема началась несколько недель назад.
Всякий раз, когда я перехожу на любую страницу вhttp://clhs.lisp.se
— например, этот:http://clhs.lisp.se/Body/m_w_open.htm
— мой браузер не отображает страницу нормально, а вместо этого пытается загрузить страницу как HTML-файл.
Это происходит в Chrome, Firefox, Brave, Vivaldi и Opera; но не в Internet Explorer или Edge. Раньше это работало нормально во всех браузерах.
Почему это происходит и как заставить это работать нормально? Использование IE или Edge не вариант.
решение1
Что-то не так с тем, как этот веб-сайт и/или веб-сервер доставляет веб-страницы.
Это не проблема с вашей стороны, а скорее что-то странное на стороне сервера: либо с самим сайтом, либо с сервером, доставляющим веб-контент.
Вместо того, чтобы доставлять контент с заголовками, которые указывают, text/html
что он доставляет контент, application/octet-stream
который веб-браузер будет интерпретировать как двоичные данные, которые затем следует обрабатывать как загрузку файла. Посмотрите на вывод этой команды Curl:
curl -ILk http://clhs.lisp.se/Body/m_w_open.htm
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Length: 8896
Date: Sat, 21 Sep 2019 18:41:10 GMT
Server: lighttpd/1.4.45
Я почти уверен, что вы не сможете исправить это на стороне клиента, если только не будет какого-нибудь плагина — например, для Firefox или Chrome — который позволит вам принудительно указывать определенные заголовки для такого запроса we.
При этом основной контент этого сайта доступен в других местах в Интернете на сайтах, которые правильно настроены и работают должным образом.
Помимо этого, если вы просто хотите прочитать содержимое этого сайта, а не отлаживать проблему на самом сайте, вы можете получить доступ к тому же содержимому на следующих других сайтах, как указано ниже.комментарий dave_thompson_085 к вопросу:
http://www.lispworks.com/documentation/lw50/CLHS/Front/index.htm
http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/FrontMatter/
И, согласно комментарию Дэйва, вторая ссылка на MIT должна быть авторитетной, поскольку «по моему скромному мнению, это правильный адрес; я знал Кента, когда он там работал».
решение2
Этот забавный сайт возвращает на вашу страницу ответ со следующими заголовками:
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Length: 8896
Date: Sat, 21 Sep 2019 18:44:55 GMT
Server: lighttpd/1.4.45
Проблема здесь в том, Тип содержимого поле, описанное как:
приложение
некоторые другие виды данных, обычно либо неинтерпретируемые двоичные данные, либо информация, которая должна быть обработана почтовым приложением. Основной подтип, "octet-stream", должен использоваться в случае неинтерпретируемых двоичных данных, в этом случае простейшим рекомендуемым действием является предложение записать информацию в файл для пользователя.
Двоичный файл не может быть отображен браузером. Поскольку значение Content-Type "application/octet-stream" определяет возвращаемый ответ как двоичный файл, браузер, который подчиняется стандарту, не имеет других возможных действий, кроме как загрузить файл.
IE и Edge никогда не соответствовали стандартам, поэтому Microsoft в настоящее время отказывается от обоих.
решение3
Можешь попробоватьModHeader. После установки вы заходите в корень сайта, нажимаете на значок расширения, затем на знак плюс, заголовок ответа и вводите Content-Type
. Приятного просмотра этого сайта.
Вы можете использовать профили внутри расширения, чтобы переключаться только при необходимости. Если вы создадите профиль без каких-либо правил, значок будет отображаться как неактивный, это будет профиль для остального интернета.
Я проверил, и это работает, но будьте осторожны, исходный код не виден, а для изменения заголовков нужны полные права на всех страницах. Вы также можете включить/отключить его из менеджера дополнений Firefox, если необходимо. Подробнееможно найти здесь.