Gross-/Kleinschreibung in URLs...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Gross-/Kleinschreibung in URLs...

Beitragvon jens » Mittwoch 20. Juni 2007, 12:12

Wir rätseln gerade ein wenig, ob man in URLs Gross-/Kleinschreibung verwenden kann oder nicht.

Es geht im Grunde über die Namen bei PyLucid Plugins. Da diese in der URL vorkommen, sollte man also besser sagen das diese konsequent klein geschrieben werden müßen oder nicht.

Ich meine ich hatte einen Fall, das Firefox die URL eines Redirects kleingeschrieben hat, obwohl in der URL auch Gross-Buchstaben vorgekommen sind.

Weiß da jemand genauer bescheid?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

Beitragvon BlackJack » Mittwoch 20. Juni 2007, 12:17

Das kommt auf den Teil der URL an. Beim Domain-Namen ist Gross-/Kleinschreibung egal. Alles was danach kommt ist "case sensitiv".
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Mittwoch 20. Juni 2007, 13:11

Es geht nur um den Teil danach...

Machen das die Browser auch alle richtig? Hat da jemand Erfahrung gesammelt?

Ansonsten hat sich nämlich ein Problem für mich erledigt, siehe auch: http://pylucid.org/phpBB2/viewtopic.php?t=136

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Mittwoch 20. Juni 2007, 13:23

jens hat geschrieben:Es geht nur um den Teil danach...
Machen das die Browser auch alle richtig? Hat da jemand Erfahrung gesammelt?

Hallo Jens!

Die Browser übernehmen exakt das, was in der HTML-Seite steht. Wenn es da groß/klein geschrieben steht, dann wird der URL auch so an den Server übergeben.

Der Apache unter Linux achtet exakt auf Groß-/Kleinschreibung. Der Apache unter Windows nicht.

Aber es gehört, meines Erachtens, zum guten Ton, dass man URLs klein schreibt, keine Sonderzeichen und keine Leerzeichen verwendet.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Beitragvon apollo13 » Mittwoch 20. Juni 2007, 13:30

Und bitte auch keine Unterstriche verwenden. Die sieht man nicht wenn die Url als Link angezeigt wird...
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Mittwoch 20. Juni 2007, 13:37

Also ich werde das nachher nochmal testen.

Ich meine ich hatte ein Problem mit einem http-Redirect in django. Ich hatte Firefox und den django-dev-server genutzt.

Das eigentliche "Problem":

Normalerweise schreibt man ja in Python die Klassen-Namen groß oder in CamleCase. Nun wollte ich in PyLucid z.B. mal den Plugin Name "pageadmin" in "PageAdmin" ändern.

In PyLucid muß der Name eines Plugins an einigen Stellen genau gleich lauten:
    1. Verzeichnisname: "./PyLucid/plugins_internal/page_admin/"
    2. Dateiname: "./PyLucid/plugins_internal/page_admin/page_admin.py"
    3. Klassenname im Skript: "class page_admin(PyLucidBaseModule):"
    4. Name der config Datei: "./PyLucid/plugins_internal/page_admin/page_admin_cfg.py"

Der Name taucht dann halt auch wieder in der URL auf wie z.B. http://www.bsp.de/_command/1/page_admin/edit_page/

Wenn ich also alles konsequent in CamleCase schreiben würde, dann ist in der URL nicht page_admin, sondern PageAdmin... Wenn nun der Browser die URL mit lower() behandelt, weiß der plugin_manager nicht mehr welches Plugin gemeint ist und kann das nicht Ausführen.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Beitragvon apollo13 » Mittwoch 20. Juni 2007, 14:09

Der Browser behandelt eine Url sicher nicht mit lower(), dann würden ein paar Apaches nur mehr 404 zurückliefern (zu Recht!).
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Mittwoch 20. Juni 2007, 14:39

OK, Ich habe es jetzt nochmal getestet und sowohl ein normaler Link als auch ein http-Redirect funktionierten einwandfrei. Mit Firefox unter Windows und Linux und mit dem IE7.

Dann weiß ich nicht, warum das letztens nicht geklappt hat... Naja, ich werde mal die Plugins alle umbenennen und dann mal sehen...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Mittwoch 20. Juni 2007, 18:09

gerold hat geschrieben:Der Apache unter Linux achtet exakt auf Groß-/Kleinschreibung. Der Apache unter Windows nicht.

Das wage ich mal ganz arg in Frage zu stellen. Richtig ist aber, dass Windows-Dateisysteme aber dahingehend case-insensitive sind, dass sie keine zwei bis auf die Groß-/Kleinschreibung identischen Namen zulassen. Entsprechend sollte der Apache bei /test.html, /TEST.html und /test.HTML stets dieselbe Datei liefern, weil nur eine unter diesem/n Namen im Dateisystem existieren.

Für Action-Namen in URLs bevorzuge ich mittlerweile foo_bar gegenüber FooBar/fooBar, weil Letzeres bei ungünstigen Buchstabenkombinationen schon mal verwirrend, unleserlich oder missverständlich werden kann (so sehen z.B. das große 'i' und das kleine 'L' gewöhnlich hinreichend gleich aus).
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Mittwoch 20. Juni 2007, 18:54

Y0Gi hat geschrieben:Für Action-Namen in URLs bevorzuge ich mittlerweile foo_bar gegenüber FooBar/fooBar, weil Letzeres bei ungünstigen Buchstabenkombinationen schon mal verwirrend, unleserlich oder missverständlich werden kann (so sehen z.B. das große 'i' und das kleine 'L' gewöhnlich hinreichend gleich aus).


Ich möchte es aber vermeiden zwei verschiedene Schreibweisen zu Pflegen und auf der anderen Seite möchte ich gern, das die Klassennamen Python-like geschrieben sind...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
rafael
User
Beiträge: 189
Registriert: Mittwoch 26. Juli 2006, 16:13

Beitragvon rafael » Mittwoch 20. Juni 2007, 19:23

jens hat geschrieben:
Y0Gi hat geschrieben:Für Action-Namen in URLs bevorzuge ich mittlerweile foo_bar gegenüber FooBar/fooBar, weil Letzeres bei ungünstigen Buchstabenkombinationen schon mal verwirrend, unleserlich oder missverständlich werden kann (so sehen z.B. das große 'i' und das kleine 'L' gewöhnlich hinreichend gleich aus).


Ich möchte es aber vermeiden zwei verschiedene Schreibweisen zu Pflegen und auf der anderen Seite möchte ich gern, das die Klassennamen Python-like geschrieben sind...


Python schreibt ja keine Klassenbenennungsmethode explizit vor, sondern nur PEP8 gibt Tipps und Hinweise für verständlicheren, ordentlicheren Codeaufbau.
CamelCase erinnert mich eher an Wiki (MoinMoin) anstatt an Python.

Ich würde es wie Y0Gi mit foo_bar lösen, da die Wörter dann gut und schnell erkannt werden können.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Donnerstag 21. Juni 2007, 11:15

jens hat geschrieben:Ich möchte es aber vermeiden zwei verschiedene Schreibweisen zu Pflegen und auf der anderen Seite möchte ich gern, das die Klassennamen Python-like geschrieben sind...

Dann bau' dir doch einfach einen Style-Konverter, der die Klassennamen für das Routing URL-tauglich umbenennt.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder