Shikata Ga Nai

Private? There is no such things.

HTTPリクエスト時のURLエンコードについてかいてみた

Hello there, ('ω')ノ

 

HTTPリクエストは、いろんな部分で。

いくつかの文字が特別な意味を持っていることに注意する必要があって。

リクエスト内のデータを変更する場合は。

下記の文字をURLエンコードして。

意図したとおりに解釈されるようにする必要があって。

手動で診断するには、これを把握しておかないと正確に診断できなくて。

 

『&』

URLクエリ文字列とメッセージ本文のパラメータを区切るために使用されて。

『&』文字を挿入するには、『%26』としてエンコードする必要があって。

 

『=』

URLクエリ文字列とメッセージ本文の各パラメータ名と値を区切るために使用され。

『=』文字を挿入するには、『%3d』としてエンコードする必要があって。

 

『?』

URLクエリ文字列の開始をマークするために使用されて。

『?』文字を挿入するには、『%3f』としてエンコードする必要があって。

 

『スペース』

リクエストの最初の行でURLの終わりを示すために使用されて。

CookieヘッダのCookie値の終わりを示すことができて。

『スペース』を挿入するには、『%20』or『+』としてエンコードする必要があって。

 

『+』

エンコードされたスペースを表すため。

『+』文字を挿入するには、『%2b』としてエンコードする必要があって。

 

『;』

Cookieヘッダ内の個々のCookieを区切るために使用されて。

『;』文字の場合、これを『%3b』としてエンコードする必要があって。

 

『#』

URL内のフラグメント識別子をマークするために使用されて。

『#』文字をブラウザ内のURLに入力すると。

サーバに送信されるURLを効果的に切り捨てて。

『#』文字を挿入するには、『%23』としてエンコードする必要があって。

 

『%』

URLエンコード方式のプレフィックスとして使用されて。

『%』文字を挿入するには、『%25』としてエンコードする必要があって。

 

『nullバイト』や『改行』などの非印刷文字

ASCII文字コードを使用してURLエンコードして。

(この場合は、それぞれ『%00』と『%0a』)

 

Best regards, (^^ゞ