GET данные добавляются к URL в виде строки запроса:
https://example.com/index.html?user=admin&password=whoops
Поскольку данные добавляются в URL, существует жесткий лимит на количество данных, которые вы можете передать .Разные браузеры имеют разные ограничения, но у вас начнутся проблемы с отметкой 1KB-2KB.
POST данные включены в тело HTTP-запроса и не отображается в URL.Таким образом, количество данных, передаваемых по протоколу POST, не ограничено.
Если HTTP-соединение использует SSL / TLS, то параметры GET также шифруются , но могут отображаться вдругие места, такие как журналы веб-сервера, будут доступны для подключаемых модулей браузера и, возможно, других приложений. Данные POST шифруются и не протекают никаким другим способом.
Из Google Discussion :
Данные, содержащиеся вURL-запрос по соединению HTTPS зашифрован.Однако это очень плохая практика включать такие конфиденциальные данные, как пароль, в запрос 'GET'.Хотя это не может быть перехвачено, данные будут записываться в виде незашифрованных серверных журналов на принимающем HTTPS-сервере и, вполне возможно, также в истории браузера.Вероятно, он также доступен для подключаемых модулей браузера и, возможно, даже для других приложений на клиентском компьютере.
Всегда используйте POST через HTTPS , если вы хотите безопасно передавать информацию.
Если вы используете библиотеку шифрования для шифрования данных, вы можете использовать GET или POST, но это будет дополнительной проблемой, и вы, возможно, неправильно настроите шифрование, поэтому я по-прежнему рекомендую использовать POST поверхHTTPS, , а не накатывать свои собственные настройки шифрования.Эта проблема уже решена, не изобретайте колесо заново.
Другой вариант, который вы можете рассмотреть, - это использование secure cookie .Файл cookie с установленным флагом безопасности отправляется только по безопасному каналу, например HTTPS, и его нельзя отследить.Это хороший способ безопасного хранения информации, такой как идентификатор сеанса.