ich habe bemerkt, dass
HTTP://STACKOVERFLOW.COM/QUESTIONS/ASK
und
http://stackoverflow.com/questions/ask
beides funktioniert gut - eigentlich wird das vorherige in Kleinbuchstaben umgewandelt.
Ich denke, dass dies für den Benutzer sinnvoll ist.
Wenn ich mir Google anschaue, funktioniert diese URL einwandfrei:
http://www.google.com/intl/en/about/corporate/index.html
aber dieser mit "ABOUT" funktioniert nicht:
http://www.google.com/intl/en/ABOUT/corporate/index.html
Sollte die URL zwischen Groß- und Kleinschreibung unterscheiden?
url
case-sensitive
Imageree
quelle
quelle
Antworten:
Laut W3s " HTML und URLs " sollten sie:
quelle
Alle " unempfindlichen " sind zur besseren Lesbarkeit verpflichtet.
Domainnamen unterscheiden gemäß RFC 4343 nicht zwischen Groß- und Kleinschreibung . Der Rest der URL wird über die GET-Methode an den Server gesendet. Dies kann zwischen Groß- und Kleinschreibung unterscheiden oder nicht.
Nehmen wir diese Seite zum Beispiel, stackoverflow.com empfängt GET-Zeichenfolge / Fragen / 7996919 / Sollte-URL-Groß- und Kleinschreibung beachten und sendet ein HTML-Dokument an Ihren Browser. Stackoverflow.com unterscheidet nicht zwischen Groß- und Kleinschreibung, da das gleiche Ergebnis für / QUEStions / 7996919 / Sollte-URL-Groß- und Kleinschreibung beachten .
Auf der anderen Seite unterscheidet Wikipedia zwischen Groß- und Kleinschreibung, mit Ausnahme des ersten Zeichens des Titels. Die URLs https://en.wikipedia.org/wiki/Case_sensitivity und https://en.wikipedia.org/wiki/case_sensitivity führen zum gleichen Artikel, aber https://en.wikipedia.org/wiki/CASE_SENSITIVITY kehrt zurück 404.
quelle
7996919
. Der semantische Teil der URL dient nur SEO-Zwecken.Kommt auf das Hosting-Betriebssystem an. Auf Websites, die unter Windows gehostet werden, wird die Groß- und Kleinschreibung nicht berücksichtigt, da das zugrunde liegende Dateisystem die Groß- und Kleinschreibung nicht berücksichtigt. Auf Unix-Systemen gehostete Sites unterscheiden in der Regel zwischen Groß- und Kleinschreibung, da die zugrunde liegenden Dateisysteme normalerweise zwischen Groß- und Kleinschreibung unterscheiden. Der Hostnamen-Teil der URL unterscheidet immer zwischen Groß- und Kleinschreibung. Der Rest des Pfads variiert.
quelle
Der Domain-Name-Teil einer URL unterscheidet nicht zwischen Groß- und Kleinschreibung, da DNS Groß-
http://en.example.org/
und Kleinschreibung ignoriert: undHTTP://EN.EXAMPLE.ORG/
beide dieselbe Seite öffnen.Der Pfad wird verwendet, um die angeforderte Ressource anzugeben und möglicherweise zu finden. Es unterscheidet zwischen Groß- und Kleinschreibung, obwohl einige Server, insbesondere solche, die auf Microsoft Windows basieren, möglicherweise nicht zwischen Groß- und Kleinschreibung unterscheiden.
Wenn der Server zwischen Groß- und Kleinschreibung unterscheidet und
http://en.example.org/wiki/URL
korrekt ist, wirdhttp://en.example.org/WIKI/URL
oderhttp://en.example.org/wiki/url
wird eine HTTP 404-Fehlerseite angezeigt, sofern diese URLs nicht auf gültige Ressourcen selbst verweisen.quelle
HTTP://www.EXAMPLE.com/
entsprichthttp://www.example.com/
. Es wird angenommen, dass die anderen generischen Syntaxkomponenten zwischen Groß- und Kleinschreibung unterscheiden, sofern das Schema nicht ausdrücklich etwas anderes definiert. "Ich bin kein Fan von alten Artikeln, aber da dies eine der ersten Antworten auf dieses spezielle Problem war, hatte ich das Bedürfnis, etwas zu klären.
Wie die Antwort von @Bhavin Shah besagt, ist der Domain-Teil der URL unabhängig von Groß- und Kleinschreibung
und
und
sind alle gleich, aber alles nach dem Domainnamen-Teil wird als Groß- und Kleinschreibung betrachtet.
so...
und
sind anders.
Hinweis: Ich spreche in vielen Fällen "technisch" und nicht "wörtlich". In den meisten Fällen sind Server so eingerichtet, dass diese Elemente gleich behandelt werden. Es ist jedoch möglich, sie so einzurichten, dass sie NICHT gleich behandelt werden.
Verschiedene Server behandeln dies unterschiedlich und müssen in einigen Fällen zwischen Groß- und Kleinschreibung unterscheiden. In vielen Fällen werden Abfragezeichenfolgenwerte codiert (z. B. Sitzungs-IDs oder Base64-codierte Daten, die als Abfragezeichenfolgenwert übergeben werden). Bei diesen Elementen wird von Natur aus zwischen Groß- und Kleinschreibung unterschieden, sodass der Server bei der Verarbeitung zwischen Groß- und Kleinschreibung unterscheiden muss.
Um die Frage zu beantworten: "Sollten" Server beim Abrufen dieser Daten zwischen Groß- und Kleinschreibung unterscheiden, lautet die Antwort "Ja, auf jeden Fall".
Natürlich muss nicht alles zwischen Groß- und Kleinschreibung unterscheiden, aber der Server sollte wissen, was das ist und wie mit diesen Fällen umgegangen werden soll.
@ Hart Simhas Kommentar sagt im Grunde das Gleiche. Ich habe es verpasst, bevor ich gepostet habe, also möchte ich Kredit geben, wo Kredit fällig ist.
quelle
Schauen Sie sich die Spezifikation hier an: Abschnitt 2.7.3 http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-25#page-19
quelle
Folgendes berücksichtigen:
https://www.example.com/createuser.php?name=Paul%20McCartney
In diesem hypothetischen Beispiel sendet ein HTML-Formular unter Verwendung der GET-Methode den Parameter "name" an ein PHP-Skript, das ein neues Benutzerkonto erstellt.
Und der Punkt, den ich mit diesem Beispiel anspreche, ist, dass bei diesem GET-Parameter zwischen Groß- und Kleinschreibung unterschieden werden muss, um die Großschreibung von "McCartney" beizubehalten (oder als weiteres Beispiel, um "Walter d'Isney" beizubehalten, da es andere Möglichkeiten gibt für Namen, die gegen die üblichen Großschreibungsregeln verstoßen).
Es sind Fälle wie diese, die die W3C-Empfehlung leiten, dass Schema und Host nicht zwischen Groß- und Kleinschreibung unterscheiden, aber alles danach unterscheidet möglicherweise zwischen Groß- und Kleinschreibung - und bleibt dem Server überlassen. Das Erzwingen der Unempfindlichkeit gegenüber Groß- und Kleinschreibung würde das obige Beispiel dazu führen, dass der Fall von Benutzereingaben, die als GET-Abfrageparameter übergeben werden, nicht beibehalten werden kann.
Aber was ich sagen würde ist, dass, obwohl dies notwendigerweise der Buchstabe des Gesetzes ist, um solchen Fällen Rechnung zu tragen, der Geist des Gesetzes darin besteht, dass man sich, wenn der Fall irrelevant ist, in einer fallunempfindlichen Weise verhält. Die Standards können Ihnen jedoch nicht sagen, wo der Fall irrelevant ist, da er, wie die Beispiele, die ich gegeben habe, kontextabhängig ist.
(z. B. wird ein Benutzername eines Kontos wahrscheinlich am besten gezwungen, die Groß- und Kleinschreibung nicht zu berücksichtigen, da "User123" und "user123" unterschiedliche Konten sein können, die sich als verwirrend erweisen können - selbst wenn bei ihrem tatsächlichen Namen, wie oben, die Groß- und Kleinschreibung am besten berücksichtigt wird.)
Manchmal ist es relevant, meistens nicht. Es muss jedoch dem Server / Webentwickler überlassen bleiben, diese Dinge zu entscheiden - und kann nicht standardmäßig vorgeschrieben werden -, da nur auf dieser Ebene der Kontext bekannt sein könnte.
Das Schema und der Host unterscheiden nicht zwischen Groß- und Kleinschreibung (was die Präferenz des Standards für Groß- und Kleinschreibung zeigt, wenn dies allgemein vorgeschrieben werden kann). Der Rest bleibt Ihnen überlassen, um zu entscheiden, wie Sie den Kontext besser verstehen. Aber wie bereits erwähnt, sollten Sie im Geiste des Gesetzes wahrscheinlich standardmäßig die Unempfindlichkeit gegenüber Groß- und Kleinschreibung ablehnen, es sei denn, Sie haben einen guten Grund, dies nicht zu tun.
quelle
Bei URLs sollte die Groß- und Kleinschreibung nicht berücksichtigt werden, es sei denn, es gibt einen guten Grund, warum dies nicht der Fall sein sollte.
Dies ist nicht obligatorisch (es ist kein Teil eines RFC), macht jedoch die Kommunikation und Speicherung von URLs weitaus zuverlässiger.
Wenn ich zwei Seiten auf einer Website habe:
und
Wie sollen sie sich unterscheiden? Vielleicht ist man "Shouting Style" (Großbuchstaben) geschrieben - aber aus IA-Sicht sollte die Unterscheidung niemals durch eine Änderung der URL getroffen werden.
Darüber hinaus ist es einfach, dies in Apache zu implementieren - verwenden Sie einfach
CheckSpelling On
von mod_Speling.quelle
Alte Frage, aber ich bin hier gestolpert. Warum also nicht einen Versuch machen, da die Frage nach verschiedenen Perspektiven und nicht nach einer endgültigen Antwort sucht?
w3c mag seine Empfehlungen haben - was mir sehr wichtig ist - aber ich möchte überdenken, da die Frage hier ist.
Warum betrachtet w3c Domain-Namen nicht zwischen Groß- und Kleinschreibung und lässt danach alles ohne Berücksichtigung der Groß- und Kleinschreibung?
Ich denke, dass das Grundprinzip darin besteht, dass der Domain-Teil der URL von einem Benutzer von Hand eingegeben wird. Alles, was Hypertext ist, wird vom Computer aufgelöst (Browser und Server hinten).
Maschinen können besser mit Groß- und Kleinschreibung umgehen als Menschen (nicht die technische Art :)).
Aber die Frage ist nur, weil die Maschinen damit umgehen können, sollte es so gemacht werden?
Ich meine, was sind die Vorteile des Benennens und Zugriffs auf eine Ressource, die sich im
hereIsTheResource
Vergleich zu vs befindethereistheresource
?Die Seite ist sehr unlesbar als die Kamelhülle, die besser lesbar ist. Für Menschen lesbar (einschließlich der technischen Art).
Also hier sind meine Punkte: -
Der Ressourcenpfad befindet sich irgendwo in der Mitte der Programmierstruktur und befindet sich manchmal in der Nähe eines Endbenutzers hinter dem Browser.
Bei Ihrer URL (mit Ausnahme des Domainnamens) sollte die Groß- und Kleinschreibung nicht berücksichtigt werden, wenn von Ihren Benutzern erwartet wird, dass sie sie berühren oder eingeben usw. Sie sollten Ihre Anwendung so entwickeln, dass vermieden wird, dass Benutzer den Pfad so weit wie möglich eingeben.
Ihre URL (mit Ausnahme des Domainnamens) sollte zwischen Groß- und Kleinschreibung unterscheiden, wenn Ihre Benutzer sie niemals manuell eingeben würden.
Fazit
Der Pfad sollte zwischen Groß- und Kleinschreibung unterscheiden. Meine Punkte wiegen in Richtung der Groß- und Kleinschreibung.
quelle
URL-Zeichen werden in Hex-Code konvertiert (falls Sie jemals bemerkt haben, dass Leerzeichen in URLs als% 20 usw. angezeigt werden). Da Klein- und Großbuchstaben unterschiedliche Hex-Werte haben, ist es durchaus sinnvoll, dass bei URLs die Groß- und Kleinschreibung beachtet wird. Der Geist der Frage scheint jedoch der Standard zu sein, und ich sage nein, aber sie sind es. Es ist Sache des Entwicklers / Anbieters, dies in seinem Code zu berücksichtigen, wenn er möchte, dass es unabhängig von einem Endbenutzer funktioniert.
quelle
Ich denke, dass dies und viele der Antworten rund um das, was die Spezifikation sagt oder nicht sagt, den Punkt der Frage verfehlen. Sollten sie zwischen Groß- und Kleinschreibung unterscheiden? Das ist wirklich eine geladene Frage. Aus der Sicht eines Benutzers ist die Groß- und Kleinschreibung ein Schmerzpunkt, von dem nicht alle wissen, dass er einen Unterschied macht. Die Frage, ob URIs sein sollten oder nicht, hängt vom Kontext der Frage ab. Für technische Flexibilität sollten sie es sein. Aus Gründen der Benutzerfreundlichkeit sollten sie es nicht sein.
quelle
Fallbewahrung
URLs zwischen Client und Server bewahren die Groß- und Kleinschreibung . Bei Teilen von URLs kann es je nach Server aus mehreren Gründen zwischen Groß- und Kleinschreibung unterscheiden oder nicht .
Groß- und Kleinschreibung
Die folgenden fett gedruckten Teile von URLs können je nach Site- und / oder Serverkonfiguration zwischen Groß- und Kleinschreibung unterscheiden.
http: // www. example.com /abc/def.ghi?jkl=mno#pqr
user @ example.com
Begründung
Die Groß- und Kleinschreibung in URLs kann verschiedene Verwendungszwecke haben. Hauptsächlich:
Als Entwickler glaube ich, dass das oben Genannte oft besser gehandhabt werden kann, aber ich verstehe auch, dass es Fälle gibt, in denen eine Situation dies möglicherweise nicht zulässt.
Stellen Sie sich beispielsweise ein vorhandenes Produkt vor, für das viele Daten in der URL "GET" abgelegt werden müssen, das jedoch mit den maximalen URL-Längen aller wichtigen Server, Browser und Caching- / Proxy-Mechanismen kompatibel sein muss. Um auch nur eine Befehlszeichenfolge mittlerer Länge anzupassen (bei einigen älteren Browsern weniger als 1.024 Zeichen), müssen Sie jedes eindeutige URL-sichere Zeichen verwenden, das Sie verwenden können (was im Grunde die Base64url-Codierung ist).
In einer idealen Welt
Ob URLs zwischen Groß- und Kleinschreibung unterscheiden sollten oder nicht, ist umstritten. Ich persönlich bin der Meinung, dass dies der Einfachheit halber nicht der Fall sein sollte (obwohl dadurch möglicherweise längere URLs erstellt werden, haben wir prozentuale Escapezeichen, um Fälle einfach zu behandeln, in denen wir die Beibehaltung exakter Zeichen sicherstellen müssen, und es gibt andere Möglichkeiten, Daten als die richtigen in der URL zu übertragen). .
Viele scheinen zuzustimmen, da URLs ohne Berücksichtigung der Groß- und Kleinschreibung für viele beliebte Websites und Dienste explizit aktiviert werden, um die Benutzerfreundlichkeit zu verbessern. Das bekannteste Beispiel ist der Benutzername der E-Mail-Adressen. Die meisten E-Mail-Anbieter ignorieren Groß- und Kleinschreibung und manchmal sogar Punkte und andere Symbole (z. B. "[email protected]" entspricht "[email protected]"). Obwohl bei E-Mail-Benutzernamen standardmäßig zwischen Groß- und Kleinschreibung unterschieden wird.
Tatsache ist jedoch, dass dies trotz der Wünsche von mir oder anderen der aktuelle Stand der Dinge ist. Und obwohl ein möglicher weltweiter Übergang zu einem URL-Standard ohne Berücksichtigung der Groß- und Kleinschreibung durchaus möglich ist, würde dies wahrscheinlich ziemlich lange dauern, da die Groß- und Kleinschreibung derzeit im Internet häufig für verschiedene Zwecke verwendet wird.
Empfohlene Vorgehensweise
In Bezug auf Best Practices können Sie sich als Benutzer in den meisten Situationen vernünftigerweise an Kleinbuchstaben halten und erwarten, dass die Dinge funktionieren. Die Hauptausnahmen wären URLs, die fallbasierte Codierung oder Dokumentpfade mit direkten Dateisystemäquivalenten verwenden. Solche komplexen URLs werden jedoch normalerweise kopiert (oder einfach angeklickt) und nicht manuell eingegeben.
Als Webentwickler sollten Sie in Betracht ziehen, URLs so weit wie möglich von Groß- und Kleinschreibung zu unterscheiden. Obwohl es je nach Kontext einige schwer zu vermeidende Situationen gibt, wie oben erwähnt.
quelle
Ich sehe keine Verwendung oder gute Praxis hinter URLs, bei denen zwischen Groß- und Kleinschreibung unterschieden wird. Es ist dumm, es ist scheiße und sollte jederzeit vermieden werden.
Um meine Meinung zu untermauern, wenn jemand nach welcher URL fragt, wie können Sie erklären, welche Zeichen der URL in Groß- oder Kleinschreibung geschrieben sind? Das ist Unsinn und sollte dir niemand etwas anderes sagen.
quelle
Bei Websites, die auf einem Linux-Server gehostet werden, wird bei der URL zwischen Groß- und Kleinschreibung unterschieden. http://www.google.com/about und http://www.google.com/About werden an verschiedene Speicherorte umgeleitet. In einem Windows Server unterscheidet die URL nicht zwischen Groß- und Kleinschreibung, wie beim Benennen eines Ordners, und wird an denselben Speicherort umgeleitet.
quelle
Es ist möglich, URLs ohne Groß- und Kleinschreibung zu erstellen
Machen Sie Google.com..GOOGLE.com usw. direkt zu google.com
quelle