2008-11-27 4 views

Antwort

0

Viele Leute verwenden eine mehr "RESTful" Typ-Architektur ... oder zumindest REST-looking URLs.

Diese Seite (StackOverflow) zeigt keine Dateierweiterung ... es verwendet ASP.NET MVC.

5

Für Websites, die Apache verwenden, werden sie wahrscheinlich mod_rewrite, die sie URLS umschreiben können (und sie benutzer und SEO-freundlich)

können Sie hier mehr lesen http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html und hier http://www.sitepoint.com/article/apache-mod_rewrite-examples/

EDIT: Es gibt Rewriting-Module für IIS ebenso.

+0

+1 Ja, definitiv mod_rewrite oder ein ähnliches Modul, je nach ihrer Server-Software –

+1

Beachten Sie, dass Amazon einen benutzerdefinierten Web-Anwendungsserver namens "Obidos" laufen. – Rob

+0

@Rob, hatte keine Ahnung, dass sie eine benutzerdefinierte Web-App hatten ... thnx – Kostis

0

Je nach den Einstellungen Ihres Servers können Sie eine beliebige Erweiterung verwenden (oder nicht). Sie könnten sogar Erweiterungen als ".JamesRocks" einstellen, aber es wird nicht sehr hilfreich sein :)

Egal, nur für den Fall, dass Sie neu am Webprogrammieren sind, das ganze Kauderwelsch am Ende gibt es Argumente für eine GET-Operation, und nicht die Erweiterung der Seite.

9

In der Regel ist es mit einem URL-Rewriting-Schema einiger Beschreibung implementiert. Der Grundgedanke ist, dass das Web die Ressourcen mit geeigneten URIs ansprechen sollte, nicht mit klassischen alten URLs, die Implementierungsdetails verlieren und die als Folge für zukünftige Änderungen anfällig sind.

Eine gründliche Diskussion des Themas findet sich in Tim Berners-Lees Artikel Cool URIs Don't Change, der sich dafür ausspricht, den irrelevanten Nachteil in URIs zu reduzieren, um die Probleme zu vermeiden, die auftreten, wenn Implementierungen sich ändern und wann Ressourcen werden auf eine andere URL verschoben. Der Artikel selbst enthält gute allgemeine Hinweise zur Planung eines URI-Schemas und ist eine Lektüre wert.

22

Ihr Browser kümmert sich nicht um die Erweiterung der Datei, sondern nur um den Inhaltstyp, den der Server meldet. (Nun, es sei denn, Sie verwenden den IE, weil sie bei Microsoft denken, dass sie mehr darüber wissen, was Sie aufbieten, als Sie tun). Wenn Ihr Server meldet, dass der Inhalt Content-Type: text/html ist, dann soll Ihr Browser ihn wie HTML behandeln, egal was der Dateiname ist.

-1

In Django (einem Webanwendungs-Framework für Python) entwerfen Sie die URLs selbst, unabhängig von einem beliebigen Dateinamen oder sogar einem beliebigen Pfad auf dem Server.

Sie gerade etwas sagen wie: „Ich will /news/<number>/ Urls durch diese Funktion behandelt werden“

3

Traditionell ist die Dateierweiterung steht für die Datei, die bedient wird.

Zum Beispiel

http://someserver/somepath/image.jpg

Später am selben Ansatz verwendet wurde

http://somerverser/somepath/script.php?param=1234&other=7890

In diesem Fall t ein Skript Prozess um den Parameter zu ermöglichen, Die Datei war ein PHP-Skript, das die "Anfrage" bearbeitete und eine dynamisch erstellte Datei präsentierte.

Heute sind die Anwendungen wesentlich komplexer als die (nämlich Amazon, die Sie metioned)

Dann gibt es kein ein einziges Skript, das die Anforderung verarbeitet (aber eine viel komplexere app wit mehrere Dateien/Methoden/Funktionen/object usw.), und die URL ist mehr wie der Einstiegspunkt für eine Webanwendung (vielleicht hat sie ein Skript dahinter, aber das ist eine andere Sache), so dass nun Webapplikationen wie amazon und ja stackoverflow keine Datei in der URL anzeigen alles Kommende wird von der App auf der Serverseite verarbeitet.

websites urls without file extension?

Here I Fragen stellt die Webapp und den Parameter

ich diese kleine Erklärung hoffen, hilft Ihnen, besser alle anderen Antworten zu verstehen.

0

Eine Reihe von Posts haben dies erwähnt, und ich werde einwiegen. Es ist ein URL-Rewriting-System, und eine Reihe von Plattformen haben Möglichkeiten, dies zu implementieren.

Ich habe für ein paar größere E-Commerce-Websites gearbeitet, und es ist jetzt ein sehr wichtiger Teil der Webpräsenz und bietet eine Reihe von Vorteilen.

Ich würde empfehlen, die Technologie, mit der Sie arbeiten möchten, zu nehmen und Beispiele des URL-Neuschreibmechanismus für diese Plattform zu untersuchen. Für .NET, zum Beispiel, google 'asp.net url rewriting' oder verwenden Sie ein Add-on-Framework wie MVC, die diese Funktionalität out-of-the-box.

5

Insbesondere als die meisten dieser Antworten:

Webinhalte nicht die Dateierweiterung verwenden, um zu bestimmen, welche Art von Datei (es sei denn, du bist Internet Explorer) serviert wird. Stattdessen verwenden sie den HTTP-Header Content-type, der vor dem Inhalt des Bildes, der HTML-Seite, dem Download oder was auch immer gesendet wird. Zum Beispiel:

Content-type: text/html 

bedeutet, dass die Seite, die Sie sehen sollten als HTML interpretiert werden, und

Content-type: image/png 

bedeutet, dass die Seite ein PNG-Bild ist.

Webserver verwenden häufig die Dateierweiterung, wenn die Datei direkt von der Festplatte zu bestimmen welche Content-type zuweisen serviert wird, aber Web-Anwendungen können auch generieren Seiten mit jedem Content-type sie in Reaktion auf eine Anfrage gerne. Unabhängig von der Struktur oder Erweiterung des Dateinamens werden die Daten wie beabsichtigt dargestellt, solange der tatsächliche Inhalt der Seite mit dem angegebenen Content-type übereinstimmt.

1

Nun, wie wäre es mit einer index.html Datei im Verzeichnis und dann den Pfad in den Browser eingeben? Ich sehe, dass sowohl Firefox als auch IE7 den Schrägstrich automatisch einfügen, ich muss ihn nicht eingeben. Dies ist eher für Leute wie mich geeignet, die nicht glauben, dass jede einzelne URL auf der Welt PHP, Perl, CGI und 10.000 andere Anwendungen aufrufen sollte, nur um ein paar Kilobyte Daten zu senden.