URL-Tools
URL-Kodierung vs. Dekodierung: Was ist der Unterschied?
Eine umkehrbare, komponentenbewusste Anleitung zur URL-Kodierung und -Dekodierung.
Von Vigneshwaran Vijayakumar, Entwickler und Herausgeber | | Bewertet unter der ClockTools redaktionelle Richtlinie
Inhaltsverzeichnis
Bei der URL-Kodierung werden Zeichen, die in einer URL-Komponente nicht sicher verwendbar sind oder eine syntaktische Bedeutung haben, in Prozenttripel umgewandelt. Durch die URL-Dekodierung werden gültige Tripletts in lesbare Zeichen umgewandelt. Kodieren Sie, bevor Sie Rohdaten in eine Komponente einfügen. Dekodieren Sie, wenn Sie einen bereits kodierten Wert prüfen oder verwenden müssen. Mit ClockTools URL-Encoder und URL-Decoder können Sie beide Richtungen testen, ohne den Originaltext zu ändern.
Wählen Sie die Richtung aus der Eingabe aus
Wenn es sich bei der Eingabe um menschenlesbare Daten wie summer shoes & bags handelt, kodieren Sie sie, bevor Sie sie in einen Abfragewert einfügen. Wenn die Eingabe bereits Sequenzen wie %20 enthält und Sie die Originalzeichen benötigen, dekodieren Sie sie einmal. WHATWG-URL-Standard definiert Prozent-Kodierungssätze für die URL-Analyse und -Serialisierung; RFC 3986 erklärt die Prozent-Triplett-Form und reservierte Zeichen.
| Sie haben | Sie benötigen | Vorgang |
|---|---|---|
| Roher Abfragewert | URL-sichere Komponente | Kodieren |
| Prozenttripel | Lesbarer Wert | Dekodieren |
| Vollständig analysierte URL | Ein verändertes Feld | Ändern Sie diese Komponente und serialisieren Sie sie dann |
Kodierung ist keine Verschlüsselung. Sie macht die Syntax eindeutig; sie verbirgt keine sensiblen Informationen.
Folgen Sie einem umkehrbaren Beispiel
Beginnen Sie mit summer shoes & bags. Die Komponentenkodierung erzeugt summer%20shoes%20%26%20bags. Leerzeichen werden zu %20 und das kaufmännische Und wird zu %26, es handelt sich also um Daten und nicht um ein Trennzeichen. Durch die einmalige Dekodierung dieses Ergebnisses wird die ursprüngliche Phrase wiederhergestellt.
Bei der Live-Prüfung von ClockTools wurde eine Eingabe mit 74 Zeichen im URI-Komponentenmodus zu 102 Zeichen mit 14 Escape-Sequenzen. Diese Zahlen gelten nur für dieses Beispiel; andere Eingaben führen zu anderen Ergebnissen.
Respektieren Sie die Grenzen der URL-Komponenten
Eine URL enthält Teile mit unterschiedlicher Syntax: Schema, Host, Pfad, Abfrage und Fragment. Der sicherste Arbeitsablauf besteht darin, die URL zu analysieren, den beabsichtigten Wert zu ändern und ihn dann mithilfe der API für Ihre Umgebung zu serialisieren. Beim Kodieren einer vollständig zusammengesetzten URL können Trennzeichen wie :, /, ? und & in Escape-Sequenzen umgewandelt werden, obwohl sie ihre strukturelle Bedeutung behalten sollten.
Der Fall des Leerzeichens verdient besondere Aufmerksamkeit. Die generische Prozentkodierung stellt ein Leerzeichen als %20 dar. Bei der Abfrageserialisierung im HTML-Formularstil kann stattdessen + verwendet werden. Lesen Sie URL-Kodierung für ein Leerzeichen für dieses enge Interoperabilitätsproblem. Dieser Artikel befasst sich mit der Betriebsrichtung, der Komponentenauswahl und der Umkehrung.
Doppelte Kodierung verhindern
Eine doppelte Kodierung tritt auf, wenn kodierter Text erneut durch einen Kodierer geleitet wird. Beispielsweise kann %20 zu %2520 werden, da % als %25 codiert ist. Verfolgen Sie, ob jeder Wert roh oder codiert ist, codieren Sie an einer Grenze und decodieren Sie nur so oft, wie es der Datenvertrag erfordert. RFC 3986 warnt davor, dass prozentkodierte Zeichenfolgen ohne klaren Grund nicht mehr als einmal kodiert oder dekodiert werden dürfen.
Kopieren Sie beim Debuggen die kleinste Komponente in das Tool, dekodieren Sie sie einmal und vergleichen Sie das Ergebnis mit dem erwarteten Rohwert. Fügen Sie niemals Geheimnisse, Token oder private URLs in ein Tool ein, dem Sie nicht vertrauen.
Häufig gestellte Fragen
Was ist der Unterschied zwischen URL-Kodierung und -Dekodierung?
Durch die Kodierung werden Zeichen in eine transportsichere Darstellung umgewandelt; durch die Dekodierung werden gültige Prozenttripel in lesbare Zeichen umgewandelt.
Soll ich eine vollständige URL oder nur eine Komponente codieren?
Kodieren Sie normalerweise den Wert oder die Komponente, die Sie einfügen, und nicht eine bereits zusammengestellte URL mit aussagekräftigen Trennzeichen.
Warum enthält eine URL manchmal %2520?
Dies bedeutet im Allgemeinen, dass %20 erneut codiert wurde: Das Prozentzeichen wurde zu %25, wodurch ein doppelt codierter Wert erzeugt wurde.
Ist ein Pluszeichen immer dasselbe wie ein Leerzeichen?
Nein. Einige formularcodierte Abfrageparser behandeln + als Leerzeichen, während die generische URL-Prozentcodierung %20 verwendet.

