2017-05-03 2 views
-1

Warum das src-Attribut eines Bildes in HTML ist:URL-Codierung ist falsch, aber funktioniert

https://www.ft.com/__origami/service/image/v2/images/raw/http%3A%2F%2Fprod-upp-image-read.ft.com%2Fafe24c11-a86d-4444-bd64-1c2f4e4e3a54?source=next&fit=scale-down&compression=best&width=210 210w, 150w https://www.ft.com/__origami/service/image/v2/images/raw/http%3A%2F%2Fprod-upp-image-read.ft.com%2Fafe24c11-a86d-4444-bd64-1c2f4e4e3a54?source=next&fit=scale-down&compression=best&width=150

& und = sind nicht verschlüsselt, aber sie sollten $ sein; amp oder so etwas. Warum das?

+0

Ampersand und Gleichheitszeichen sind in einer URL vollkommen legal. Vielleicht denken Sie darüber nach, wie ein kaufmännisches Und-Zeichen in XHTML mit '&' –

Antwort

0

"Codierung" in URL ist das Zeug mit% 20 (oder gekürzt mit +) für den Raum, die mit & ist XML (und alle Derivate wie SGML, HTML, XHTML, XSLT, ...). Da & verwendet wird, um andere Dinge zu umgehen, muss es auch dort mit & entkommen. Das wird z.B. in XML-Dateien, wenn eine URL enthalten ist.

beachten Sie, dass es verschiedene Arten der URL-Codierung gibt; ein einfacher Spielplatz dafür ist php, der urlencode und rawurlencode neben dem gleichen für das Entschlüsseln als Funktionen hat.

Die URL in HTML ist korrekt codiert mit & als Trennzeichen für die Parameter nach dem ersten Parameter. Sie können dies in den RFCs nachschlagen (z. B. RFC 2396, section 3.3 following). Wenn Sie "Barnes and Noble" sagen wollten, dann würde es mit dem Text als Barnes & Noble entkommen. Aber in der URL steht es so. Nur in Fällen wie XML, die von XSLT verarbeitet wurden, müssten Sie es wieder verlassen.

Also für Attribute wie href ad src stellen Sie sich vor, der Inhalt davon wird nur anders geparst und als solche gelten andere Regeln.

+0

entweichen kann, also warum & nicht mit &; amp hier entkommen? – benoit

+0

Grundsätzlich ist die URL eine URL, nicht HTML. Deshalb. Obwohl dies in Randfällen immer noch knifflig sein kann. – vv01f

Verwandte Themen