URL 文字列の最大長は2,000文字でバリデーション定義する方針

『URL 文字列の最大長は 2,000 文字以下でバリデーションを定義する』 という方針にしている話をご紹介します。

URL 2000文字

背景 URL のバリデーション定義したい

URL のバリデーションを定義するために最大文字数を調べてみました。

結論 URL は最大 2,000 文字でバリデーションする

以下を読んで頂くとわかりますが、

  • 制限なし
  • 2,083 文字
  • 2,048 文字

など、ゆらぎがあるため、ギリギリを攻める必要は無いと判断しました。

ざっくり 2,000 文字以下でバリデーションを定義することにしています。

RFC 『HTTP プロトコルでは URI の長さにどんな制限も設けていない』

3.2.1 一般構文

HTTP プロトコルでは、URI の長さにどんな制限も設けていない。 サーバは、自身が持つどんなリソースの URI も扱えなければならないし、もしそのような URI を生成する GET ベースのフォームを用意するなら、無制限の長さの URI を扱えるべきである。 もし、その URI がサーバが処理できるものよりも長ければ、サーバは 414 (Request-URI Too Long) ステータスを返すべきである (section 10.4.15 参照)。

引用元: ハイパーテキスト転送プロトコル — HTTP/1.1

sitemaps.org 『2,048 文字以下で指定する必要があります』

ページの URL です。 ウェブ サーバーによっては、http などのプロトコルから始め、末尾にスラッシュを含める必要があります。 この値は 2,048 文字以下で指定する必要があります。

引用元: sitemaps.org – プロトコル

Internet Explorer 『URL の最大長は 2,083 文字』

URL の最大長は、2,083 文字 Internet Explorer

引用元: URL の最大長は、2,083 文字Internet Explorer

以上、URL の文字列の最大長は 2,000 文字ぐらいでシステム設計している、現場からお送りしました。

参考情報