コード日進月歩

プログラミングの技術的なメモなど

URLの最大長は2048文字ぐらいまでと考えておくほうが無難

2018年今現在の所感ですが、いろいろな方面で考えてみます

各視点ごとの見解

RFC定義としての見解

3.2.1 一般構文

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

ハイパーテキスト転送プロトコル -- HTTP/1.1

HTTP2.0だとどうなのよという話はありますが、HTTP2.0のRFCであるRFC7540には特段URIに関しての記載がないのでHTTP1.1と変わらないと思われる。

ブラウザ実装としての見解

InternetExplorerは2083文字と公式で案内している。

このご時世だと気にするべきはEdgeだとは思うんですが、Edgeに関してはオフィシャルな情報が存在しない。

他のブラウザは明言されていないが特に大量の文字を扱うことに関しては問題ないという見解がググるとちらほら出てくる

SEOとしての見解

Googleの方が2000文字ぐらいであるといいという見解を出したこともあったが、当時の話なので今なおそれが有益かはわからない。(詳しくは関連リンク参照)

SEOという観点では上記とは別にサイトマップに登録の仕様に関して考慮する必要がある。

サイトマップ<loc> に仕様には以下のように書かれている。

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

sitemaps.org - プロトコル

上記の記述からSEO観点では2048文字以下が望ましいと考えられる。

3つの見解を踏まえると

2048文字以下が適当な長さと考えたほうが良さそう。クエリストリングのご利用は計画的に。

関連リンク