Milline on URL-i maksimaalne pikkus erinevates veebilehitsejates?

Milline on URL-i maksimaalne pikkus erinevates veebilehitsejates? Kas see erineb eri brauserites?

Kas HTTP-protokoll dikteerib seda?

Lahendus

Lühike vastus - de facto piirang 2000 tähemärki

Kui hoiate URL-i alla 2000 tähemärgi, töötab see praktiliselt igas kliendi- ja serveri tarkvara kombinatsioonis. Kui olete suunatud konkreetsetele veebilehitsejatele, vaadake allpool täpsemalt konkreetseid piiranguid.

Pikem vastus - esiteks, standardid...

RFC 2616 (Hypertext Transfer Protocol HTTP/1.1) jaotises 3.2.1 on öeldud, et

HTTP protokoll ei pane mingeid a priori piiranguid protokolli pikkusele. URI pikkusele. Serverid PEAVAD olema võimelised töötlema mis tahes ressursi URI-d, mida nad teenindavad, ja PEAB olema võimeline töötlema URIsid pikkusega piiramatut pikkust, kui nad pakuvad GET-põhiseid vorme, mis võivad tekitada selliseid URIsid. Server PEAB tagastama 414 (Request-URI liiga pikk) staatuse, kui > URI on pikem, kui server saab > taotleda. töödelda (vt punkt 10.4.15).

See RFC on vananenud RFC7230, mis on HTTP/1.1 spetsifikatsiooni värskendus. See sisaldab sarnast keelt, kuid soovitab ka järgmist: Erinevad ad hoc piirangud päringuridade pikkusele on esitatud dokumendis > > Erinevad ad hoc piirangud päringuridade pikkusele on esitatud dokumendis praktikas. SOOVITATUD on, et kõik HTTP saatjad ja vastuvõtjad peaksid vastama järgmistele nõuetele toetavad vähemalt 8000 okteti pikkust päringurida.

...ja tegelikkus

See'on see, mida standardid ütlevad. Tõelisuse kohta vaata seda uuringut aadressil boutell.com, et näha, mida üksikud brauserid ja serverite rakendused toetavad. See on lugemist väärt, kuid kokkuvõte on: Äärmiselt pikad URL-id on tavaliselt viga. URLid, mis on üle 2000 tähemärgi ei tööta kõige populaarsemates veebis. brauserites. Ärge kasutage neid, kui kavatsete kasutada teie sait töötaks enamiku veebisaitide jaoks. internetikasutajatele. (Märkus: see on tsitaat 2006. aastal kirjutatud artiklist, kuid 2015. aastal tähendab IE'i vähenev kasutamine, et pikemad URL-id toimivad enamuse jaoks. IE-l on siiski endiselt piirang...)

Internet Explorer's piirangud...

IE8'i maksimaalne URL-i pikkus on 2083 tähemärki ja tundub, et IE9-l on sarnane piirang. Ma'olen testinud IE10 ja aadressiriba aktsepteerib ainult 2083 tähemärki. Sa võid klikkida URL-i, mis on pikem, kuid aadressiriba näitab ikkagi ainult 2083 tähemärki sellest lingist. IE Internals'i blogis on kena kirjutis, mis käsitleb mõningaid selle tagamaid. On erinevaid teateid, et IE11 toetab pikemaid URL-sid - vt allpool olevaid kommentaare. Arvestades, et mõned inimesed teatavad probleemidest, jääb üldine soovitus endiselt kehtima.

Otsingumootoritele meeldivad URL-d < 2048 tähemärki...

Olge teadlik, et sitemaps protokoll, mis võimaldab saidil teavitada otsingumootoreid kättesaadavatest lehekülgedest, on URL-is 2048 tähemärki. Kui te kavatsete kasutada sitemapsi, siis on piirang teie jaoks otsustatud! (vt Calin-Andrei Burloiu's vastus allpool) On ka mõned uuringud 2010. aastast maksimaalne URL-i pikkus, mida otsingumootorid krabivad ja indekseerivad. Nad leidsid, et piiriks on 2047 tähemärki, mis näib olevat liitunud sitemap-protokolli spetsifikatsiooniga. Siiski leidsid nad ka, et Google SERP tööriist ei saa hakkama URL-idega, mis on pikemad kui 1855 tähemärki.

Täiendav brauserite kokkuvõte

Ma testisin järgmist Apache 2.4 serveri vastu, mis on konfigureeritud väga suure LimitRequestLine ja LimitRequestFieldSize abil.

Browser     Address bar   document.location
                          or anchor tag
------------------------------------------
Chrome          32779           >64k
Android          8192           >64k
Firefox          >64k           >64k
Safari           >64k           >64k
IE11             2047           5120
Edge 16          2047          10240

Vt ka seda vastust Matas Vaitkeviciuselt allpool.

Kas see teave on ajakohane?

See on populaarne küsimus ja kuna algne uurimus on ~12 aastat vana, siis püüan ma'seda ajakohasena hoida: seisuga Sep 2018 kehtib see nõuanne endiselt. Kuigi IE11 võib aktsepteerida pikemaid URL-aadresse, on vanemate IE-installatsioonide levik ja otsingumootori piirangud tähendavad, et alla 2000 tähemärgi jäämine on parim üldine põhimõte.

Kommentaarid (20)

WWW KKK: Milline on URL-i maksimaalne pikkus? on oma vastus, mis põhineb empiirilistel katsetel ja uuringutel. Lühike vastus on, et üle 2048 tähemärgi ületamine teeb Internet Exploreri õnnetuks ja seega on see piir, mida peaksite kasutama. Pika vastuse lehel.

Kommentaarid (0)

URI RFC (mille alamhulk on URL) ei määratle maksimaalset pikkust, kuid soovitab siiski, et URI hostname osa (kui see on kohaldatav) ei ületaks 255 tähemärki:

URI tootjad peaksid kasutama nimesid, mis on vastavad DNS-süntaksile isegi siis, kui DNS-i kasutamine ei ole kohe ilmne, ja peaksid neid nimesid piirama. mitte rohkem kui 255 tähemärki. pikkust.

Nagu teistes postitustes märgitud, on mõnel brauseril siiski URL-i pikkuse praktiline piirang.

Kommentaarid (0)