URL-Tools
URL-Kodierung vs. Dekodierung: Was ist der Unterschied?
Ein Leitfaden zur umkehrbaren URL-Kodierung und -Dekodierung unter Berücksichtigung der URL-Komponenten.
Von Vigneshwaran Vijayakumar, Entwickler und Herausgeber | | Geprüft gemäß der Redaktionsrichtlinie von ClockTools
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 Prozenttripel 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 den Vorgang anhand der Eingabe
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. Der WHATWG-URL-Standard definiert Mengen der zu prozentkodierenden Zeichen für die URL-Analyse und -Serialisierung; RFC 3986 erklärt die Form von Prozenttripeln 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.
Vollziehen Sie ein umkehrbares Beispiel nach
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.
Beachten 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 Wahl des Vorgangs, der Komponentenauswahl und der Umkehrung.
Vermeiden Sie doppelte Kodierung
Eine doppelte Kodierung tritt auf, wenn kodierter Text erneut durch einen Kodierer geleitet wird. Beispielsweise kann %20 zu %2520 werden, da % als %25 kodiert ist. Verfolgen Sie, ob jeder Wert roh oder kodiert ist, kodieren Sie an einer Grenze und dekodieren 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 kodieren?
Kodieren Sie normalerweise den Wert oder die Komponente, die Sie einfügen, und nicht eine bereits zusammengestellte URL mit syntaktisch bedeutsamen Trennzeichen.
Warum enthält eine URL manchmal %2520?
Dies bedeutet im Allgemeinen, dass %20 erneut kodiert wurde: Das Prozentzeichen wurde zu %25, wodurch ein doppelt kodierter Wert erzeugt wurde.
Ist ein Pluszeichen immer dasselbe wie ein Leerzeichen?
Nein. Einige formularkodierte Abfrageparser behandeln + als Leerzeichen, während die generische URL-Prozentcodierung %20 verwendet.

