W3C wants query parameters standardized on ampersands; semicolons are now bad
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Confirmed
|
Medium
|
Unassigned | ||
3.5 |
Confirmed
|
Medium
|
Unassigned | ||
3.6 |
Confirmed
|
Medium
|
Unassigned |
Bug Description
Per https:/
If this is not the first entry, append a single U+0026 AMPERSAND character (&) to result.
That is, semicolons are no longer an acceptable option.
Why does this matter? Because modern tools and APIs are now treating semicolons as just plain data rather than an alternative to ampersand, and this has real impact. For example, the https:/
But given a URL of https:/
var params = new URLSearchParams
params.
// null
params.
// "and;qtype=keyword"
We could continue using openils.CGI and adding our own workarounds to modern tools, but it might be better to standardize on ampersands sooner rather than later.
Changed in evergreen: | |
importance: | Undecided → Medium |
tags: | added: opac |
Changed in evergreen: | |
milestone: | 3.6.2 → 3.7-beta |
milestone: | 3.7-beta → none |
no longer affects: | evergreen/3.6 |
Changed in evergreen: | |
milestone: | none → 3.6.3 |
milestone: | 3.6.3 → none |
status: | Fix Committed → Fix Released |
milestone: | none → 3.6.2 |
Changed in evergreen: | |
status: | Fix Released → Confirmed |
milestone: | 3.6.2 → 3.7-beta2 |
milestone: | 3.7-beta2 → none |
Per http:// perldoc. perl.org/ CGI.html, "-newstyle_urls
Separate the name=value pairs in CGI parameter query strings with semicolons rather than ampersands. [...] Semicolon-delimited query strings are always accepted, and will be emitted by self_url() and query_string(). newstyle_urls became the default in version 2.64."
It's possible to return the behaviour to ampersands using the -oldstyle_urls flag. To be investigated.