2016-07-26 5 views
2

Приносим извинения, если есть ответ в другом месте.Правильный http-метод (ы) для обслуживания статического содержимого

Я строю простой сервер и теперь работаю над ответами на статические файлы. Должен ли я отказаться от всех методов http, кроме GET, при обслуживании статического контента? По статическому контенту я имею в виду файлы, хранящиеся в файловой системе на сервере.

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

Какой http-метод (ы) должен разрешать статические файлы формы: http://somedomain.com/foo/bar/baz.css? Не обязательно запрашивается через браузер, очевидно.

+2

GET - это по умолчанию, да. Не используйте другие для простого обслуживания контента. – poke

ответ

3

Все HTTP-запросы имеют определенную цель. Если вы не планируете реализовать эту цель или функцию, заблокируйте ее с помощью 405 Method Not Allowed.

Например, вы хотите разрешить другим пользователям обновлять файлы? Тогда вам понадобится PUT. Я бы рекомендовал просто прочитать, что означают методы, чтобы вы знали, что имеет смысл, а что нет.

Интуитивно я думаю, вам, вероятно, понадобится только GET и HEAD. Я думаю, что хорошо ответить на OPTIONS с правильным ответом.

+0

Другими словами, он должен выбрать протокол HTTP, основанный на поведении вызова, а не просто потому, что он обслуживает статический контент. –

+0

Это больше контроллер/маршрутизатор. У меня есть конфигурация маршрутизатора «FLAT», и если этот путь совпадает, я планирую вернуть содержимое «как есть», которое находится в файловой системе, пока игнорирует кеширование. Я оставляю его для обратных вызовов контроллера для обеспечения соответствующего поведения. – Dale

+0

Я предполагаю, что это будет в основном для javascripts или css, которые запрашивают страницы при загрузке, хотя я не хочу диктовать, как это в конечном итоге используется. Однако ответ на все методы, которые соответствуют конфигурации FLAT, кажется мне глупым. – Dale