webForumDet fria alternativet

Konret fråga: antal tecken som får plats i querystring/url?

ASP

5 svar · 451 visningar · startad av Kristianstad

Medlem sedan dec. 2002841 inlägg
Frågan#1

Undrar en sak:
Hur många tecken får man ha som URL? Jag skall lägga in massor med querystrings till en sökfunktion. Alltså sidan.asp?variabel1=innehåll1&variabel2=innehåll2&variabel3=innehåll3&variabel4=innehåll4...
Hur många tecken kan man få plats med från ? till slutet för att vara säkra på att det fungerar hos alla?

Medlem sedan aug. 20021 752 inlägg
#2

255 tecken kan hela URL'n vara, dvs hur lång querystringen kan vara beror på hur lång url'en är innan.

/Viktor

Medlem sedan apr. 20007 588 inlägg
#3

Viktor skrev:

255 tecken kan hela URL'n vara, dvs hur lång querystringen kan vara beror på hur lång url'en är innan.

/Viktor

URL:en kan vara betydligt längre än så, enligt RFC 2616 för HTTP version 1.1 så skall inte servrar lägga begränsning på längden.

RFC 2616 skrev:

Servers MUST be able to handle the URI of any resource they
serve, and SHOULD be able to handle URIs of unbounded length if they
provide GET-based forms that could generate such URIs

Det står dock också i RFC:n att

Note: Servers ought to be cautious about depending on URI lengths
above 255 bytes, because some older client or proxy
implementations might not properly support these lengths.

Maxtaket 255 härrör alltså från gamla proxy- och klientimplementationer. Det är alltså ett arv som man själv får avgöra om man vill ta hänsyn till, beroende på krav på tillgänglighet etc. Dagens http-servrar, webbläsare och proxyservrar stödjer långa URL:er.

Visst kan det sitta någon tomte i Uzbekistan som surfar med en 8 år gammal webbläsare via en proxy som skrevs 1993 och han kanske kan få problem med URL:er som är längre än 255 tecken. Man får själv avgöra om det är en faktor man vill ta hänsyn till :).

Medlem sedan dec. 2002841 inlägg
#4

Tack så mycket!
255 tecken. Där gick min idé åt skogen..

Jag skall som sagt göra en sökfunktion. På en sida har jag mängder med textboxar och sedan skall den (genom WHERE i SQL) leta reda på de poster som har allt detta. Det är ju enkelt att fixa genom Request.Form("inputruta1"). Inte sant!? Jo, men då jag fått resultatet skall man även kunna fortsätta och t.ex. filtrera det ännu mer och om man trycker på en länk försvinner ju variablarna i Request.Form("inputruta1").
Jag har så pass många variablar att jag inte kan lagra dessa i querystrings.

Har ni något tips på vad man kan göra?

**Redigerat:**Efter att läst ett inlägg som kom då jag skrev fick jag lite mer hopp.:) Kan man ta sådana risker att ha en URL på cirka 600 tecken? Är det inte riskabelt?
Om ni uppskattar:
Om man haft 600 teckens URL på webforum. Hur många hade inte kunnat se sidan korrekt då?

Medlem sedan apr. 20007 588 inlägg
#5

Har ni något tips på vad man kan göra?

Använd POST för dina formulär. På varje delsida i sökflödet så lägger du in de tidigare inmatade värdena i hidden-fält i formuläret.

<input type="hidden" name="tidigareInmatatVärde" value="<%= Request.Form("tidigareInmatatVärde")%>">

Om man haft 600 teckens URL på webforum. Hur många hade inte kunnat se sidan korrekt då?

0.212% ;)

Medlem sedan dec. 2002841 inlägg
#6

Där ser man!
Tackar. Tackar.

281 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
148 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)