Проверьте руководство , я удивлен, что никто не указал, что GET и POST семантически различны и предназначены для совершенно разных целей.
Хотя во многих случаях может показаться, что между этими двумя подходами нет функциональной разницы, пока вы не протестируете каждую комбинацию браузера, прокси-сервера и сервера, вы не сможете полагаться на то, что она является последовательной в каждом дело. например мобильные устройства / прокси часто кешируют агрессивность даже там, где их просят не делать (но я никогда не сталкивался с тем, что неправильно кеширует ответ POST).
Протокол не допускает ничего, кроме простых скалярных типов данных, в качестве параметров в GET - например, Вы можете только отправить файл, используя POST или PUT.
Существуют также ограничения реализации - в прошлый раз, когда я проверял, размер URL-адреса в MSIE был ограничен 2k.
Наконец, как вы заметили, существует проблема видимости данных - вы можете не захотеть, чтобы пользователи добавляли в закладки URL-адрес, содержащий номер / пароль своей кредитной карты.
POST - это путь, потому что он приводит к чистоте URL
Это скорее противоречит цели того, что такое URL. Прочитайте RFC 1630 - Необходим универсальный синтаксис.