エンコードとデコードをブラウザのURLで理解する

プログラミング関連ロゴ プログラミング関連

ネットワーク上のデータを扱っていると必ずと言っていいほどエンコードデコードという言葉に遭遇します。
あるいは、DVDやブルーレイを違法コピー(?)する際も遭遇する言葉です。

わたしの場合、エンコードとデコードの言葉を最初に聞いた時まさに未知との遭遇でした。

エンコードの目的

エンコードとデコードをわたしは次のように覚えるようにしています。

エンコード 符号化 元の文を圧縮(小さく)する
デコード 復号化 圧縮した文を元に戻す

元に戻すんだったら、なぜエンコードなどするのだ?という話ですが、エンコードの目的は、

ネットワーク上を流れるデータ量を減らす事

だからです。

これだけ多くの人がスマホで動画を見ている現在、いかにエンコードの恩恵にあずかっているか分かると思います。
エンコードしていない動画がネット上にアップされていれば、ネットワークの交通量が膨大な数となり、ほとんどの人がカクカクした動画をみるはめになるか、あるいはネットワークエラーで接続できなくなると思います。

ブラウザのURL欄とエンコード

わたしはブラウザのURL欄で気づいた経験があります。
例えば、Google検索で「ポケモン」と検索したとします。

するとアドレス欄には、

https://www.google.com/search?ei=m5TxXeLuHeeMr7wPsO-EuAw&q=ポケモン&oq=ポケモン

のような感じで表示されます。ポケモンの部分がそのまま表示されているのが分かります。

しかし、これをメモ帳などに貼り付けてみると…

https://www.google.com/search?ei=YNPxXbOxG4bU-QavvrmwAQ&q=%E3%83%9D%E3%82%B1%E3%83%A2%E3%83%B3

のような文字列になってしまいました。

このデータがエンコード文字列です。ちなみにURLをエンコードしたものなのでURLエンコードと呼ばれます。

ご覧のように半角英数字はそのまま表示されていて、日本語の「ポケモン」の部分が%E3%83%9D…といった暗号のような文字列に置き換わっています。
これはブラウザのChromeなどが自動的にユーザにわかるように表示してくれているだけで本来のデータはエンコードされた全て半角の英数字文字列なのです。

URL欄は、ブラウザ側で自動的にユーザに分かりやすいようにデコードして(元のデータに戻して)表示してくれているのです。
URL欄の場合は、送信しやすいように変換処理がなされているといった方が理解しやすいかもしれません。

現在のコンピュータが英語を母語とするアメリカで作られたものを元にしている以上、半角文字が基本というのは変わらない事実だと思います。

ゆく河の流れは絶えずして、しかももとの水にあらず。

この格調高い文章もエンコードするとこうなります。

%E3%82%86%E3%81%8F%E6%B2%B3%E3%81%AE%E6%B5%81%E3%82%8C%E3%81%AF%E7%B5%B6%E3%81%88%E3%81%9A%E3%81%97%E3%81%A6%E3%80%81%E3%81%97%E3%81%8B%E3%82%82%E3%82%82%E3%81%A8%E3%81%AE%E6%B0%B4%E3%81%AB%E3%81%82%E3%82%89%E3%81%9A%E3%80%82

以下のサイトで、エンコードとデコードの変換ができるので試してみると面白いですよ。

URLエンコード・デコード | Tech-Unlimited

エンコードとデコードについては、以下サイトにもわかりやすく書かれていました。

エンコード (encode) – 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

以上、エンコードとデコードをブラウザのURLで理解するでした。

コメント

タイトルとURLをコピーしました