こんにちは!
base64urlを業務で扱う場面があったので、一体何のためのものなのか
言語化してみました。
base64urlが生まれた背景
細かい事は置いておいて、base64urlが生まれた背景としては
+, -, = はURLやファイルパスとして意味を持つ記号のため、
webアプリケーションなどで不都合が起きないように
上記の記号を特定の記号に置き換える必要があるため誕生しました。
base64とは
せっかくなのでbase64の関連知識についてまとめてみます。
base64は64種類の英数字を用いてマルチバイト文字やバイナリデータを扱うためのエンコード方式。
変換後のデータ量は元のデータ量より増える。(base64の変換方式を見ればわかると思います。)
暗号化ではない。
ではなぜエンコードするのか?
メールやJSON、API通信でやり取りされるデータの中には、そのままの形では送信に適さないものがあります。
たとえば、画像やファイルなどのバイナリデータは、通信経路によっては正しく扱えなかったり、文字化けや制御文字の誤解釈が起こる可能性があるためです。
バイナリデータをASCII文字内のものに変換することで、テキストベースのプロトコル上でも壊れることなく、安全にデータをやり取りできるようになります。
以上。