Is het geldig om meer dan één vraagteken in een URL te hebben?

Ik kwam vandaag de volgende URL tegen:

http://www.sfgate.com/cgi-bin/blogs/inmarin/detail??blogid=122&entry_id=64497

Let op het dubbele vraagteken aan het begin van de queryreeks:

??blogid=122&entry_id=64497

Mijn browser leek er geen problemen mee te hebben en voerde een snelle bookmarklet uit:

javascript:alert(document.location.search);

Heeft me zojuist de bovenstaande queryreeks gegeven.

Is dit een geldige URL? De reden dat ik zo pedant ben (ervan uitgaande dat ik dat ben) is omdat ik URL’s zoals deze moet ontleden voor queryparameters, en het ondersteunen van dubbele vraagtekens zou enkele wijzigingen in mijn code vereisen. Het is duidelijk dat als ze in het wild zijn, ik ze moet ondersteunen; Ik ben vooral benieuwd of het mijn schuld is dat ik me niet precies aan de URL-standaarden heb gehouden, of dat het in feite een niet-standaard URL is.


Antwoord 1, autoriteit 100%

Ja, het is geldig. Alleen de eerste?in een URL heeft betekenis, en alle daarna worden behandeld als letterlijke vraagtekens:

De vraagcomponent wordt aangegeven door
het eerste vraagteken (“?”)
teken en afgesloten met een cijfer
teken (“#”) of aan het einde van
de URI.

De tekens slash (“/”) en
vraagteken (“?”) kan gegevens vertegenwoordigen
binnen de querycomponent. Pas op
dat wat ouder, foutief
implementaties kunnen dergelijke niet aan
gegevens correct wanneer het wordt gebruikt als de
basis-URI voor relatieve verwijzingen
(Sectie 5.1), blijkbaar omdat ze
kan querygegevens niet onderscheiden van
padgegevens bij het zoeken naar
hiërarchische scheidingstekens. Echter, zoals
querycomponenten worden vaak gebruikt om
identificatiegegevens meenemen in de
vorm van “sleutel=waarde”-paren en één
veelgebruikte waarde is een referentie
naar een andere URI, is het soms beter
om bruikbaarheid te vermijden
procent-codering van die tekens.

https://www.rfc-editor.org/rfc/rfc3986# sectie-3.4


Antwoord 2, autoriteit 25%

Als een tangentieel gerelateerd antwoord, geeft foo?spam=1?&eggs=3de parameter spamde waarde 1?

Other episodes