Это плохая практика для издания следующего запроса POST:
/test?a=1&b=2
POST data: c=3&d=4
Заметьте, что 2 параметра являются частью URL, и 2 параметра являются частью содержания POST.
На другой ноте, следующее правило, все еще рекомендуемое:
Я спрашиваю, потому что я вижу немного все онлайн.
Laurent Luce
Да, ваши предположения верны. Вы должны быть последовательны в том, как передавать параметры или требовать их передачи, но на самом деле это не повредит.
GET-операции должны быть безопасными операциями, которые не производят никаких побочных эффектов (кроме кэширования и т.д.), поэтому они легко кэшируются прокси-серверами и тому подобное. С другой стороны, операции POST могут вызвать побочные эффекты.
Я бы порекомендовал прочитать запись Википедии по протоколу HTTP:
GET
запрашивает представление указанного ресурса. Обратите внимание, что GET не следует использовать для операций, вызывающих побочные эффекты, например, для совершения действий в веб-приложениях. Одной из причин этого является то, что GET может использоваться произвольно роботами или гусеницами, которым не нужно учитывать побочные эффекты, которые должен вызывать запрос. См. ниже безопасные методы.
POST
Отправляет данные для обработки (например, из HTML-формы) на идентифицированный ресурс. Данные включаются в тело запроса. Это может привести к созданию нового ресурса или обновлению существующих ресурсов, или и к тому, и к другому.
Существуют и другие операции (например, HEAD, PUT, DELETE), и вы должны рассмотреть возможность их использования, если вы разрабатываете API. Они подробно обсуждаются в RESTful API design
.Это правило, скорее всего, все еще рекомендуется.
Это отражено в обновлении поведения современных браузеров. Они с удовольствием обновляются GET-значениями, но при обновлении POST ("Вы уверены, что хотите отправить заново?" и т.д.) появляется предупреждение.
Похоже, что Вы пытались объединить два метода (GET и POST) ... путем POSTing к URL с GET-значениями. Хотя это должно работать нормально, обычно это не делается. Обычно формы используют только один или другой метод
.Да, семантика GET и POST должна соблюдаться.
Учитывая этот факт, то часто есть очень веская причина для того, чтобы поместить некоторые параметры в GET, а некоторые в POST vars - рассмотрим случай, когда у вас есть веб-скрипт, который делает что-то вроде:
UPDATE datatable SET quantity=30 WHERE order=21559
Это может быть представлено как:
/update?order=21559
POST data: quantity=30
C.
.В этом нет ничего плохого. Причина, по которой данные для изменения должны быть отправлены в POST, заключается в том, что вы не будете изменять данные снова, если пользователь нажал кнопку Refresh. В этом случае будет отправлена только информация GET.
.