Два главных отличия:
1. У GET-запроса нет тела (как правило, но в теории никто не запрещает отправить с телом).
А у POST как правило нет query-параметров, но в принципе никто не запрещает одновременно указать и их, и тело
2. GET-идемпотентный, в отличие от POST.
Если ты отправишь два одинаковых идемпотентных запроса, то ничего не изменится-это безопасно.
И этим свойством пользуются браузеры и всякие прокси, которые в случае каких-то сетевых ошибок тихо отправляют идемпотентные запросы повторно.
Кроме GET есть ещё PUT и DELETE, которые тоже идемпотентные
Есть ли какая-то информация на этот счёт?
Всё это описано в википедии в статье об HTTP
И каким образом ссылку site/?page=2 можно отправить методом POST?
Через curl или через форму