私のWebブラウザーでWebページのURLを誤って入力したとき、私は偶然これに遭遇しました。
なぜhttp://example.com/%
HTTP 400 Bad Requestエラーがスローされますか?サーバーはパーセント記号の後または前に何か他のものを期待していますか?
ApacheおよびNginxサーバーで発生するようです。
(サーバー:cloudflare-nginx) https://superuser.com/%
(サーバー:Apache) http://mozilla.org/%
RFC 3986 のように、裸の%
文字は有効ではありません [〜#〜] uri [〜#〜] 構文。 2つの意味のある 16進数 の数字が後に続きます。
取得した [〜#〜] http [〜#〜] ステータスコードは4xx
クラスに属しています。
4xx: Client Error - The request contains bad syntax or cannot be fulfilled
特に、コード400
は [〜#〜] rfc [〜#〜] 2616の Internet Engineering Task Force (IETF)によって定義されます。
10.4.1 400 Bad Request
不正な構文のため、サーバーはリクエストを理解できませんでした。クライアントは変更なしでリクエストを繰り返すべきではありません。
ウィキペディアの引用(太字の強調):
URIで使用できる文字は、reservedまたはunreserved(またはパーセント文字のいずれかです。パーセントエンコーディングの一部)。
リテラル%
記号を挿入する場合は、パーセントエンコードされた表現%25
を使用する必要があります。
パーセント記号は、URLで通常サポートされていない文字を挿入するためのものです。たとえば、%20はスペースと同じです。