Делать гет или пост запрос (вроде есть стандарт)

Dez

Новичок
Смотрю люди на jquery повально $.post во всех случаях пишут.
Как считаете, если есть аякс запрос на выборку элементов для селекта.
То такие запросы более правильно слать гет-ом?
Т.к. состояние системы не меняется никак, csrf атак тоже тут не может быть, чисто же данные получил и все.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Если ты получаешь данные, это get, если ты хочешь изменить данные то это post. Лично мое видение вопроса.
 

Kotofey

FloodMaster.
почитай про REST и поймешь в каких случаях использовать определенный тип запроса.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Ёлки. @c0dex, какое личное видение? :) RFC 2616

Повально $.post во всех случаях пишут по одной причине - повально не читают RFC.
При запросе ajax GET некоторые браузеры кешируют ответ, даже если сервер этого прямо не разрешал. Это IE придумал в нарушение стандарта.
Сервер может указать заголовок запрета кеширования, и браузеры его соблюдают, я проверял.
 

fixxxer

К.О.
Партнер клуба
Если это REST API, то ключевое слово - "идемподентность".

Но я вообще в общем случае не люблю REST, обычно это совершенно необоснованная привязка к особенностям одного конкретного протокола приложения, хотя в данном случае он скорее должен быть тупо транспортный. Мне ближе подход с RPC (например, JSON-RPC 2), где http-семантика не имеет никакого значения и это тупо абстрактный транспорт. На те же вебсокеты JSON-RPC переносится легко, а вот с REST получился бы http over websockets over http, мхаха.

При запросе ajax GET некоторые браузеры кешируют ответ, даже если сервер этого прямо не разрешал. Это IE придумал в нарушение стандарта.
А еще бывают странно настроенные прокси, которым на заголовки по барабану. Надежнее приписывать в url random.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
я с такими проксями не встречался, только читал про них, к счастью. рандом - конечно, только кеш браузера забивается :)
 

fixxxer

К.О.
Партнер клуба
Я встречался, но очень давно, это была офисная сетка и там очень экономили траффик.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
а почему get-запрос к REST API должен быть идемподентным? например, текущая погода, курс биржевого инструмента
 

Vladson

Сильнобухер
Если ты получаешь данные, это get, если ты хочешь изменить данные то это post. Лично мое видение вопроса.
По мне так единственный правильный вариант. (если браузеры это не понимают, это их проблема, можно сделать костыль, но это именно костыль и со временем разработчикам браузеров надо об этом задуматься)
 

WMix

герр M:)ller
Партнер клуба
я тоже думаю начать фантиками в магазине рассчитываться, ( если продавцы это не понимают это их проблема )
 

Vladson

Сильнобухер
Аналогия как минимум обратная, если в магазине вместо денег хотят фантики, то можно использовать костыль (купить фантики и покупать на них) но это не решение проблемы, это именно костыль и надо с этим что-то делать.
 
Сверху