Sind URIs der groß-und Kleinschreibung?
Beim Vergleich von zwei URIs zu entscheiden, ob Sie übereinstimmen oder nicht, ein client
SOLLTE ein groß- /Kleinschreibung Byte-by-Byte-Vergleich des gesamten
URIs, mit folgenden Ausnahmen:
Las ich obigen Satz in Http-Rfc ich denke, die Url ist case-insensitive, aber ich nicht undrestand, was das bedeutet
?
InformationsquelleAutor der Frage Shahrooz Jafari | 2013-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Realität kommt es auf den web-server.
IIS ist nicht case sensitive.
Apache ist.
Vermute ich, dass die Entscheidung über die IIS-ist verwurzelt in der Tatsache, dass das Windows-Dateisystem ist groß-und Kleinschreibung nicht.
IIS immer noch erfüllt, die Anteil ist die Skillung da SOLL ist eine Empfehlung, keine Voraussetzung.
InformationsquelleAutor der Antwort Eric J.
RFC 3986 Staaten:
RFC 2616 definiert der folgende Vergleich in der Regel für die
HTTP
Schema:Jedoch RFC 7230 sperrt Sie sich weiter mit der Feststellung:
Diese Regeln in der Regel gelten für client-Seite Vergleiche. Es gibt keine Regeln, das speziell für server-Seite Vergleiche. Sobald ein server bricht eine URI in Ihre Bestandteile auf, Sie sollten behandeln Sie nach den gleichen Regeln, aber ich sehe nicht, dass eine Anwendung in den RFCs. Einige Webserver, wie Apache, tun, befolgen Sie die Regeln. IIS nicht für die Kompatibilität mit Windows groß-und Kleinschreibung Dateisystem.
InformationsquelleAutor der Antwort Remy Lebeau
Den host-Teil der URI ist nicht case-Sensitiv sind:
Entweder der oben genannten, erhalten Sie auf dieser Website.
Den rest der URI nach dem host-Teil sein kann-und Kleinschreibung. Es kommt auf den server.
InformationsquelleAutor der Antwort chue x
Ob oder ob nicht die Darstellung von URLs als von der groß- /Kleinschreibung hängt auch von der web-server. Zum Beispiel, Microsoft-IIS-Server nicht Behandlung von URLs als von der groß- /Kleinschreibung.
Den folgenden URLs (gehostet auf einem Microsoft IIS-server) sind beide gleichgestellt:
Jedoch, Apache-Server tun Behandlung von URLs als von der groß- /Kleinschreibung sind, gelten als zwei verschiedene Ressourcen:
Technisch, Apache ist nach den standards richtig hier, und Microsoft wird gegen die Spezifikation... tja, "alte Gewohnheiten sterben schwer", sagen Sie!
InformationsquelleAutor der Antwort Jordan Clark
Wie bereits in der Antwort von Remy Lebeau, die Regeln sind für die client-Seite. Eigentlich bedeutet dies, dass client-software sollten nicht versuchen, beliebige Fall änderungen auf alle Teile von URIs, außer für die ausdrücklich angegebenen Teile. Also, wenn ein browser z.B. sieht, dass eine relative URL in einer Seite verankern, sollten Sie nicht konvertieren in Kleinbuchstaben um, bevor die überprüfung, ob es bereits in seinem cache zwischengespeichert; es sollte auch nicht URI verwenden, die kleingeschrieben werden, um post zu server. Es sollte auch nicht entscheiden, dass zwei URIs, die sich in den Fall nur auf dieselbe Ressource (also eventuell falsch, das überspringen einer Transaktion und die Rückgabe zwischengespeicherte Ergebnis statt).
Dies bedeutet, dass Kunden sollten nicht davon ausgehen, wie Server zu behandeln, die URIs. Es erfordert Server zu behandeln einige Teile der groß-und Kleinschreibung: z.B., Schema und host. Aber ansonsten ist es bis zum server, zu entscheiden, ob zwei URIs, die sich in den Fall auf die gleiche Ressource, oder nicht. Standard gibt es keine Einschränkungen, die auf Servern in diesem Bereich gibt es nichts "- server sollte" oder "server nicht" neben den direkt vorgeschrieben. Wenn der server entscheidet, dass Ihre URIs die groß- /Kleinschreibung nicht beachtet, ist das absolut in Ordnung. Wenn Sie sind case-sensitive, das ist auch völlig in Ordnung.
InformationsquelleAutor der Antwort Mike Kaganski
Für eine Datei-basierte URI, groß-und Kleinschreibung hängt von der zugrunde liegenden Dateisystem, nicht so sehr die web-server. Apache gerne zurück
index.html
fürINDEX.html
auf Windows (FAT, NTFS) und mac - (HFS -), aber nicht für die groß-und Kleinschreibung Datei-Systeme wie die, die normalerweise verwendet Linux (extx und so weiter).InformationsquelleAutor der Antwort Beel