レッスン 1

URL エンコードとは何か

URL の中で安全に文字を表すために、なぜ percent-encoding が必要なのかを学びます。

URL エンコードは、URL の中で特別な意味を持つ文字や、そのままでは安全に扱えない文字を、% と 16 進数で表す仕組みです。たとえばスペースは %20 として表されます。

URL には scheme、host、path、query、fragment などの部分があります。それぞれで意味を持つ文字が違うため、どこに値を入れるかによって必要なエンコードも変わります。

なぜ必要なのか

?&=#/ などは URL の構造を表します。これらを単なるデータとして query value に入れたい場合、そのままでは区切り文字として解釈される可能性があります。

https://example.com/search?q=a&b

この URL では、q の値に a&b を入れたいのか、q=a と別パラメータ b を表したいのかが曖昧になります。

文脈が大事

URL エンコードでは「URL 全体を処理する」のか「query value だけを処理する」のかを分けて考えます。JavaScript ではこの違いが encodeURIencodeURIComponent の使い分けに表れます。

実務では、任意のユーザー入力を URL の一部に入れるとき、対象部分だけをエンコードするのが基本です。

実践したいときは関連する DevCove ツールを使えます。任意であり、このレッスンの必須部分ではありません。

関連ツールを開く

コース概要へ戻る