Каковы лучшие практики и рекомендации по выбору между 1 и 2 выше?
Обычно тело содержимого используется для данных, которые должны быть выгружены / загружены на / с сервера, а параметры запроса используются для указания точных запрошенных данных. Например, когда вы загружаете файл, вы указываете имя, тип MIME и т. Д. В теле, но когда вы получаете список файлов, вы можете использовать параметры запроса для фильтрации списка по некоторым свойствам файлов. Как правило, параметры запроса являются собственностью запроса, а не данными.
Конечно, это не строгое правило - вы можете реализовать его любым способом, который вам больше подходит / работает для вас.
Вы также можете проверить статью в Википедии о строке запроса , особенно о первых двух абзацах.