Использование post вместо get в rest-api, чтобы иметь возможность использовать '+' unescaped в regex - PullRequest
0 голосов
/ 08 мая 2019

В моем rest-api я использую регулярные выражения. Для запросов к серверу я обычно использую GET. Тем не менее, есть ситуация с регулярным выражением. Почти со всеми символами (даже теми, которые обычно должны быть экранированы, например '[')), это прекрасно работает при использовании его в адресной строке, однако, с '+', это не так. Я подумываю использовать вместо этого запрос POST, чтобы я мог просто указать регулярное выражение тела и ничего не избегать. Однако официально POST-запросы используются только при изменении чего-либо. Было бы плохо использовать POST-запрос здесь? Или есть лучшее решение?

1 Ответ

1 голос
/ 08 мая 2019

Было бы плохо использовать POST-запрос здесь?

Если вы можете использовать GET для безопасного запроса, вы должны сделать это.

Почти со всеми символами (даже теми, которые обычно должны быть экранированы, например, '['), это прекрасно работает при использовании его в адресной строке, однако, с '+', это не так.

+ означает что-то магическое в строке application/x-www-form-urlencoded (подробности здесь ); если вы используете функцию декодирования для извлечения данных из вашего URL-адреса, но не кодируете эти данные, когда копируете их в URL-адрес, тогда вы не сможете хорошо провести время.

Если ваши кодеры и декодеры правильно сбалансированы, использование GET не должно быть проблемой.

Ну, мой "кодировщик" в этом случае был бы человеком, набирающим что-то в адресной строке ...

И это отлично , при условии, что вы не используете декодер для анализа информации, которую вы получаете на стороне сервера. Это может означать, что вам нужно анализировать путь / запрос вручную, а не использовать для этого «стандартные» вызовы библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...