この記事では『Base64URLエンコード』について、
- Base64URLエンコードの特徴
- Base64エンコードとの違い
などを分かりやすく説明するように心掛けています。ご参考になれば幸いです。
Base64URLエンコードの特徴
Base64URLは、Base64エンコード方式で変換した文字列をURLに含める際に、誤動作等の問題がないように、以下の変換を行うエンコード方式です。
- 「+」を「-」に置き換える
- 「/」を「_」に置き換える
- パディング(=)は省略する(データ長が暗黙的に分かる場合)
「+」,「-」,「=」などは以下に示すように、特別な役割を持ってしまうため、これらの文字を置き変えています。
- 「+」での役割
- 通常のURLエンコードでは「+」はスペースを表す。
- 例えば、「Hello World」をURLエンコードすると「Hello+World」となる。
- Base64エンコーディングの「+」がURL内で誤ってスペースとして解釈されるのを防ぐため、Base64URLでは「+」を「-」に置き換える。
- 通常のURLエンコードでは「+」はスペースを表す。
- 「/」での役割
- 「/」はURLのパスを区切る役割を持つ。
- 例えば、「http://example.com/page/subpage」では、「page」と「subpage」の間に「/」が使われている。
- Base64エンコードでの「/」がURLの中で誤ってパス区切りとして解釈されることを防ぐため、Base64URLでは「/」を「_」に置き換えています。
- 「/」はURLのパスを区切る役割を持つ。
- 「=」での役割
- 「=」はURL内のキーと値を区切る役割を持つ。
- 例えば、「http://example.com/page?param=value」では「param」がキーで「value」がその値となる。
- Base64エンコーディングにおける「=」はパディングを示すために使用されますが、URLの中で誤解を生む可能性があるため、Base64URLでは通常省略されます。
- 「=」はURL内のキーと値を区切る役割を持つ。
Base64URLエンコードには様々な呼び方があり、例えば、「URLセーフなBase64エンコード」とか「Base64 URLセーフエンコーディング」とか読んだりします。また、Base64URLはBase64の仕様RFC4648の「Section5:Base 64 Encoding with URL and Filename Safe Alphabet」で定義されています。
RFC4648のリンク
あわせて読みたい
『Base64エンコード』については下記の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。 続きを見るBase64とは?エンコードの方法などをわかりやすく解説!
本記事のまとめ
この記事では『Base64URLエンコード』について、以下の内容を説明しました。
- Base64URLエンコードの特徴
- Base64エンコードとの違い
お読み頂きありがとうございました。