Sind% 20 und + in einer HTTP-URL identisch? [Duplikat]

8

Ich weiß, dass% 20 und + beide auf den gleichen binären Wert (ein Leerzeichen) dekodieren, und für die meisten Webserver, insbesondere diejenigen, die physischen Dateien zugeordnet sind, zeigen sie auf dieselbe Ressource.

Aber meine Frage ist, muss eine URL wie Ссылка auf die gleiche Ressource verweisen wie Ссылка , sind sie kanonisch identisch?

In HTTP / 1.0 + wurde kein Leerzeichen zugeordnet, daher frage ich speziell nach HTTP / 1.1.

    
Evert 21.10.2010, 20:59
quelle

1 Antwort

4

Nur innerhalb der Abfragezeichenfolge : Das Pluszeichen ist ein reserviertes Zeichen, also muss es codiert werden, um ein tatsächliches '+' entweder im Pfad oder in der Abfragezeichenfolge zu übergeben. Es ist eine W3C Empfehlung , die nur für die Abfragezeichenfolge verwendet wird:

>
  

Innerhalb der Abfragezeichenfolge das Pluszeichen   ist als Kurzschrift für. reserviert   ein Leerzeichen. Daher echte Pluszeichen   muss codiert sein. Diese Methode wurde verwendet   um die Übergabe von URIs zu erleichtern   Systeme, die keine Leerzeichen zulassen.

URI-Vergleich ( RFC 2616 ):

  

Wenn zwei URIs verglichen werden, um zu entscheiden, ob   Sie passen oder nicht, ein Client sollte verwenden   ein code-sensitives Oktett-by-Oktett   Vergleich der gesamten URIs mit   Diese Ausnahmen:

%Vor%      

Andere Zeichen als die in der   "reserved" und "unsafe" setzen (siehe RFC   2396 [42]) entsprechen ihren   ""% "HEX HEX" Codierung.

Reservierte Zeichen ( RFC 2396 )

  

";" | "/" | "?" | ":" | "@" | "&Ampere;" | "=" | "+" | "$" | ","

Also, beim dritten Durchstarten: Es gibt nichts Offizielles, das erklärt, dass sie dasselbe sind. Die Verwendung von '+', um http://example.org/hello+world an ein Verzeichnis mit dem Namen hello+world zu verweisen, ist falsch, aber es gibt nichts, was besagt, dass es stattdessen als Leerzeichen betrachtet werden sollte.

    
Brad Mace 21.10.2010, 21:13
quelle

Tags und Links