Это вопрос о том, как веб-сервер обрабатывает запросы на файлы XML, в зависимости от того, имеет ли файл суффикс '. xml' в имени файла или нет.
Заранее извиняюсь Я не совсем знаком с тем, как веб-серверы и браузеры ведут себя в этом контексте.
Я достиг этого вопроса, работая с Gatsby . Разработка на localhost.
Возник вопрос, потому что я наблюдал, как локальные файлы, обслуживаемые gatsby XML, ведут себя иначе, чем другие подобные XML файлы, полученные с других хостов. Я не уверен, если это красная селедка для проблемы.
Хорошо, спасибо за чтение, вот подробности.
У меня есть xml файл / ресурс, который обслуживается gatsby (т. е. с использованием gatsby develop
или gatsby serve
)
Если я назову файл как my-xml-file.xml
, а затем перейду к нему в браузере (Chrome ), через http://localhost:8000/my-xml-file.xml
, тогда все нормально. Chrome загружает / отображает это в браузере.
Однако, если я переименую файл просто в my-xml-file
, то есть удалим суффикс '. xml' из имени файла, то при попытке перейдите к нему в браузере (Chrome) через http://localhost:8000/my-xml-file
, тогда Chrome не загружает / не отображает его. Вместо этого в этом сценарии Chrome открывает диалоговое окно «Сохранить как».
Любые идеи, что здесь происходит?
Причина, по которой меня это смущает, заключается в том, что я go другим я знаю, что в Интернете есть файлы xml, которые обслуживаются без суффикса '. xml', Chrome с удовольствием загружает / отображает их в браузере.
Например:
Chrome загружает / отображает эти URL-адреса непосредственно в браузере
Почему у меня отличается поведение при обработке файла xml без суффикс. xml в имени файла по сравнению с другими сайтами, как в приведенных выше примерах?
Вещи, которые я до сих пор пытался выяснить.
Служить локально, используя файл /my-xml-file.xml, открыть в Chrome
- Результат: Chrome загрузка / отображение файла в окне браузера
Служит для локального обслуживания файла, используя / my- xml -файл, открывается в Chrome
- результат: Chrome открывает save-as диалог
Переименуйте файл и используйте его как /my-xml-file.rss, откройте в Chrome
- результат: Chrome загружает / отображает файл в окне браузера
Служит для локального использования файла, используя / my- xml -file. xml, открыть в Edge
- результат: Edge загружает / отображает файл в окне браузера
Служит локально, используя файл / my- xml -файл, открытый в Edge
- результат: Edge загружает / отображает файл в окне браузера
Поиск в StackOverflow аналогичный вопросы. Нашел следующее (но ни один, кажется, не соответствует этой проблеме конкретно
Проверен заголовок ответа из моего локального примера и сравнил это с другими примерами выше. Есть кое-что, что привлекло мое внимание ... значение в ответе для Content-type
отличается ...
- От моего localhost:
Content-Type: application/octet-stream
- Из других примеров:
- a) :
content-type: application/rss+xml; charset=utf-8
- b) :
Content-Type: text/html; charset=UTF-8
- c) :
content-type: application/rss+xml; charset=utf-8