応用情報技術者 2013年 春期 午前2 問35
問題文
1バイトのデータを16進2桁で表した後、先頭にパーセント記号を付けて%1Aのような3バイトのASCII文字列にする変換はパーセントエンコーディングと呼ばれる。例えばUTF-8でエンコードされた“α”の16進表示はCEB1なので、これをパーセントエンコーディングしたものは%CE%B1となる。パーセントエンコーディングが使用される場合はどれか。
選択肢
ア:HTTPのベーシック認証でAuthorizationヘッダにパスワード情報を指定する場合
イ:Webページのフォーム上の漢字をHTTPのGETメソッドでサーバに送る場合(正解)
ウ:サブジェクトに日本語の文字を含む電子メールを送る場合
エ:フランス語やドイツ語のアルファベットを使った電子メールを送る場合
パーセントエンコーディングの利用場面【午前2 解説】
要点まとめ
- 結論:パーセントエンコーディングは、Webページのフォームで漢字などの非ASCII文字をGETメソッドで送信する際に使われます。
- 根拠:HTTPのGETメソッドはURLにデータを含めるため、URLで使えない文字を16進数で表現し安全に送信する必要があるからです。
- 差がつくポイント:HTTPのAuthorizationヘッダやメールの文字コード処理とは異なり、URLエンコードはパーセント記号+16進数の形式で行われることを正確に理解しましょう。
正解の理由
選択肢イは、Webフォームの漢字をGETメソッドで送信する際にパーセントエンコーディングが使われるため正解です。
URLはASCII文字のみが許されるため、漢字などの非ASCII文字はUTF-8でバイト列に変換後、各バイトを%XX形式で表現しURLに含めます。
これにより、サーバ側で正しく文字列を復元できる仕組みです。
URLはASCII文字のみが許されるため、漢字などの非ASCII文字はUTF-8でバイト列に変換後、各バイトを%XX形式で表現しURLに含めます。
これにより、サーバ側で正しく文字列を復元できる仕組みです。
よくある誤解
パーセントエンコーディングはHTTPの認証情報やメールの文字コード変換に使うと思いがちですが、実際はURL内の非ASCII文字や特殊文字の表現に限定されます。
解法ステップ
- 問題文で「パーセントエンコーディング」の定義を確認する。
- パーセントエンコーディングは「%」+16進2桁のASCII文字列で表すことを理解。
- HTTPのGETメソッドでURLに含めるデータはASCII以外をエンコードする必要があることを思い出す。
- 各選択肢の用途を整理し、URLエンコードが必要な場面を特定する。
- Webフォームの漢字送信(選択肢イ)が該当するため正解と判断。
選択肢別の誤答解説
- ア: HTTPのベーシック認証はBase64エンコードを使い、パーセントエンコーディングは不要です。
- イ: Webフォームの漢字送信はURLに含めるためパーセントエンコーディングが必要です。
- ウ: 電子メールの日本語はMIMEエンコード(Base64やQuoted-Printable)を使い、パーセントエンコーディングは使いません。
- エ: フランス語やドイツ語のアルファベットはASCII範囲内か拡張文字であり、メールではMIMEエンコードが使われます。
補足コラム
パーセントエンコーディングはURLエンコードとも呼ばれ、RFC3986で定義されています。
URLに使えない文字や予約文字(例:スペース、記号)を安全に送るために使われ、Web通信の基本技術です。
一方、メールの日本語処理はMIMEエンコードが主流で、用途が異なる点に注意しましょう。
URLに使えない文字や予約文字(例:スペース、記号)を安全に送るために使われ、Web通信の基本技術です。
一方、メールの日本語処理はMIMEエンコードが主流で、用途が異なる点に注意しましょう。
FAQ
Q: パーセントエンコーディングはどのような文字に使われますか?
A: URLで使えない非ASCII文字や予約文字を16進数で表現するために使います。
A: URLで使えない非ASCII文字や予約文字を16進数で表現するために使います。
Q: HTTPのAuthorizationヘッダでパーセントエンコーディングは必要ですか?
A: いいえ。AuthorizationヘッダではBase64エンコードが使われ、パーセントエンコーディングは不要です。
A: いいえ。AuthorizationヘッダではBase64エンコードが使われ、パーセントエンコーディングは不要です。
関連キーワード: パーセントエンコーディング、URLエンコード、HTTP GETメソッド、UTF-8, Webフォーム、MIMEエンコード

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

