Mikä on URL-osoitteen enimmäispituus eri selaimissa?

Mikä on URL-osoitteen enimmäispituus eri selaimissa? Eroaako se selainten välillä?

Määrääkö HTTP-protokolla sen?

Ratkaisu

Lyhyt vastaus - tosiasiallinen 2000 merkin raja

Jos pidät URL-osoitteet alle 2000 merkin, ne toimivat lähes kaikissa asiakas- ja palvelinohjelmistojen yhdistelmissä. Jos kohdistat tietyt selaimet, katso alla olevat tarkemmat tiedot erityisrajoituksista.

Pidempi vastaus - ensinnäkin standardit...

RFC 2616 (Hypertext Transfer Protocol HTTP/1.1) kohdassa 3.2.1 sanotaan seuraavaa.

HTTP-protokolla ei aseta mitään a priori rajoitusta HTTP-protokollan pituudelle. URI:n pituudelle. Palvelimien PITÄÄ pystyä käsittelemään minkä tahansa resurssin URI:n, jota ne palvelevat, ja niiden PITÄISI pystyä käsittelemään URI:t, joiden pituus on rajoittamatonta pituutta, jos ne tarjoavat GET-pohjaisia lomakkeita, jotka voivat tuottaa tällaisia URI:itä. Palvelimen PITÄÄ palauttaa 414 (Request-URI Too Long) -tilan, jos pyyntö-URI on liian pitkä. URI on pidempi kuin palvelin voi kysyä käsitellä (katso kohta 10.4.15).

Kyseinen RFC on vanhentunut RFC7230, joka on HTTP/1.1-määrittelyn päivitys. Se sisältää samankaltaista kieltä, mutta ehdottaa myös seuraavaa: Erilaisia ad hoc -rajoituksia pyyntöjen rivien pituudelle löytyy seuraavista asiakirjoista käytännössä. Suositellaan, että kaikki HTTP-lähettäjät ja -vastaanottimet tukevat vähintään 8000 oktetin pituisia pyyntölinjoja.

...ja todellisuus

Näin sanotaan standardeissa. Todellisuus löytyy tästä tutkimuksesta boutell.com-sivustolla, josta näet, mitä yksittäiset selaimet ja palvelimet tukevat. Se on lukemisen arvoinen, mutta tiivistelmä on: Äärimmäisen pitkät URL-osoitteet ovat yleensä ongelma. virhe. URL:t, jotka ovat yli 2 000 merkkiä eivät toimi suosituimmissa verkkopalveluissa. selaimissa. Älä käytä niitä, jos aiot käyttää sivustosi toimivan suurimmassa osassa Internetin käyttäjille. (Huomautus: tämä on lainaus 2006 kirjoitetusta artikkelista, mutta vuonna 2015 IE:n käytön väheneminen tarkoittaa, että pidemmät URL-osoitteet toimivat enemmistölle. IE:llä on kuitenkin edelleen rajoitus...).

Internet Explorer'n rajoitukset...

IE8'n URL-osoitteen enimmäispituus on 2083 merkkiä, ja näyttää siltä, että IE9:llä on samanlainen rajoitus. Olen testannut IE10:tä ja osoitepalkki hyväksyy vain 2083 merkkiä. Voit napsauttaa URL-osoitetta, joka on tätä pidempi, mutta osoitepalkki näyttää silti vain 2083 merkkiä tästä linkistä. IE Internals -blogissa on hieno kirjoitus, jossa käsitellään tämän taustoja. IE11 tukee pidempiä URL-osoitteita - katso kommentit alla. Koska jotkut ihmiset raportoivat ongelmista, yleinen neuvo on edelleen voimassa.

Hakukoneet pitävät URL-osoitteista < 2048 merkkiä...

Huomaa, että sitemaps-protokolla, jonka avulla sivusto voi ilmoittaa hakukoneille saatavilla olevista sivuista, rajoittaa URL-osoitteen 2048 merkkiä. Jos aiot käyttää sitemapsia, raja on päätetty puolestasi! (katso Calin-Andrei Burloiu'n vastaus alla). Vuonna 2010 on tehty myös tutkimusta hakukoneiden indeksoiman ja indeksoiman URL-osoitteen enimmäispituudesta. He havaitsivat, että raja on 2047 merkkiä, mikä näyttää liittyvän sitemap-protokollan spekseihin. He havaitsivat kuitenkin myös, että Googlen [SERP]-työkalu (http://en.wikipedia.org/wiki/Search_engine_results_page) ei pärjää yli 1855 merkkiä pitkille URL-osoitteille.

Muita selaimia

Testasin seuraavaa Apache 2.4 -palvelimella, joka on konfiguroitu hyvin suurilla LimitRequestLine ja LimitRequestFieldSize -asetuksilla.

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

Katso myös tämä vastaus Matas Vaitkeviciukselta alla.

Ovatko nämä tiedot ajan tasalla?

Tämä on suosittu kysymys, ja koska alkuperäinen tutkimus on ~12 vuotta vanha, yritän pitää sen ajan tasalla: Syyskuussa 2018 neuvot ovat edelleen voimassa. Vaikka IE11 saattaa mahdollisesti hyväksyä pidempiä URL-osoitteita, vanhojen IE-asennusten yleisyys ja hakukoneiden rajoitukset merkitsevät, että alle 2000 merkkiä on paras yleinen käytäntö.

Kommentit (20)

WWW FAQ: Mikä on URL-osoitteen enimmäispituus? on oma vastauksensa, joka perustuu empiiriseen testaukseen ja tutkimukseen. Lyhyt vastaus on, että 2048 merkin ylittäminen tekee Internet Explorerin tyytymättömäksi, joten tätä rajaa kannattaa käyttää. Katso sivulta pitkä vastaus.

Kommentit (0)

URI RFC (jonka osajoukko URL-osoitteet ovat) ei määrittele enimmäispituutta, mutta se suosittaa, että URI:n isäntänimiosa (jos se on käytössä) ei ylitä 255 merkkiä:

URI-tuottajien tulisi käyttää nimiä, jotka ovat seuraavat DNS-syntaksin mukaisia, vaikka ne olisivat DNS:n käyttö ei ole välittömästi ilmeinen, ja niiden tulisi rajoittaa nämä nimet enintään 255 merkkiä. pituuteen.

Kuten muissa viesteissä on todettu, joillakin selaimilla on kuitenkin URL-osoitteen pituutta koskeva käytännön rajoitus.

Kommentit (0)