https://en.wikipedia.org/wiki/Base64#URL_applicationsUsing standard Base64 in URL requires encoding of '+', '/' and '=' characters into special percent-encoded hexadecimal sequences ('+' becomes '%2B', '/' becomes '%2F' and '=' becomes '%3D'), which makes the string unnecessarily longer.
For this reason, modified Base64 for URL variants exist (such as base64url in RFC 4648), where the '+' and '/' characters of standard Base64 are respectively replaced by '-' and '_',
и про padding :
Some variants allow or require omitting the padding '=' signs to avoid them being confused with field separators,
Some libraries will encode '=' to '.', potentially exposing applications to relative path attacks when a folder name is encoded from user data.