Kann ich ein at-Symbol (@) in URLs verwenden?

Ist es sicher, ein @ -Symbol als Teil eines Benutzers zu verwenden? Eine mögliche URL wäre beispielsweise http://example.com/@dave .

Die Idee ist, dass Benutzer heutzutage häufig “@user” heißen. Warum also nicht die Benutzerseite “@username” erstellen?

   

Prozent-codiert …

Sie können das @ -Zeichen in HTTP-URI-Pfaden verwenden, wenn Sie es als %40 Prozent codieren .

Viele Browser würden es immer noch als @ anzeigen, aber z. B. wenn Sie den URI in ein Textdokument kopieren und einfügen, ist es %40 .

… aber auch direkt

Anstatt es in Prozent zu codieren, können Sie @ direkt im HTTP-URI-Pfad verwenden.

Siehe die Syntax für den Pfad eines URI. Abgesehen von verschiedenen nicht verwandten Klauseln kann der Pfad aus Zeichen im segment , segment-nz oder segment-nz-nc Satz bestehen. segment und segment-nz bestehen aus Zeichen aus dem pchar Satz, der wie folgt definiert ist:

 pchar = unreserved / pct-encoded / sub-delims / ":" / "@" 

Wie Sie sehen können, ist das @ explizit aufgeführt.

Das segment-nz-nc Set listet auch das @ -Zeichen explizit auf:

 segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" ) 

Ein solcher HTTP-URI ist also vollständig gültig:

 http://example.com/@dave 

Beispiel

Hier ist eine Wikipedia-Beispielseite:

  • Verknüpfung
  • Kopieren und Einfügen: http://en.wikipedia.org/wiki/%22@%22_%28album%29

Wie Sie sehen können, sind die Zeichen " , ( , und ) in Prozent codiert, aber das @ und das _ werden direkt verwendet.

Kannst du das @ -Zeichen in einer URL verwenden? – Ja, du kannst!

Beachten Sie, dass das @ -Zeichen, der hexadezimale Wert 40 und der Dezimalwert 64 reservierte Zeichen für URIs sind. Es ist für Dinge wie E-Mail-Adressen in mailto: URI, zum Beispiel mailto:username@somewhere.foo und für die Weitergabe von Benutzernamen und Passwort Informationen auf einem URI (was eine schlechte Idee, aber möglich ist): http://username:password@somewhere.foo

Wenn Sie eine URL mit einem @ -Symbol in einem Pfad haben möchten, müssen Sie diese mit einem sogenannten ” URL-Encoding ” verschlüsseln. Zum Beispiel so: http://somewhere.foo/profile/username%40somewhere.foo

Alle modernen Browser zeigen dies als http://somewhere.foo/profile/username@somewhere.foo an und konvertieren jedes in @ -Zeichen eingegebene Zeichen in %40 , so dass es einfach zu verwenden ist.

Viele Web-Frameworks unterstützen Sie auch automatisch oder mit Hilfsfunktionen bei der Konvertierung von und zu URL-kodierten URLs.

Also, zusammenfassend: Ja, Sie können das @ -Zeichen in einer URL verwenden, aber Sie müssen sicherstellen, dass es codiert ist, da Sie das @ -Zeichen nicht verwenden können.

Im RFC die folgenden Zeichen:

! * ‘(); : @ & = + $, /? % # []

sind reserviert und:

Der Zweck von reservierten Zeichen besteht darin, eine Reihe von begrenzenden Zeichen bereitzustellen, die sich von anderen Daten innerhalb eines URI unterscheiden.

Es wird daher nicht empfohlen, diese Zeichen ohne Codierung zu verwenden.

Grundlegend nein.

@ ist ein reserviertes Zeichen und sollte nur für den vorgesehenen Zweck verwendet werden.

Siehe: http://perishablepress.com/stop-using-unsafe-characters-in-urls/ und http://www.ietf.org/rfc/rfc3986.txt

Es kann verschlüsselt verwendet werden, aber ich glaube nicht, dass Sie das gefragt haben.

Anscheinend werden moderne Browser damit umgehen. Wie auch immer Sie gefragt haben, ob dies sicher war und gemäß der Spezifikation des RFC sollten Sie es nicht verwenden (uncodiert), es sei denn, es ist für den beabsichtigten Zweck.