Подтвердить что ты не робот

URL-адреса сайтов без расширения файлов?

Когда я смотрю на Amazon.com, и я вижу их URL-адрес для страниц, он не имеет .htm, .html или .php в конце URL-адреса.

Это как:
http://www.amazon.com/books-used-books-textbooks/b/ref=topnav_storetab_b?ie=UTF8&node=283155

Почему и как? Что это за расширение?

4b9b3361

Ответ 1

Ваш браузер не заботится о расширении файла, а только о типе контента, который сообщает сервер. (Хорошо, если вы не используете IE, потому что в Microsoft они думают, что знают больше о том, что вы обслуживаете, чем вы). Если ваш сервер сообщает, что содержимое, которое обслуживается, является Content-Type: text/html, тогда ваш браузер должен обрабатывать его так же, как HTML, независимо от имени файла.

Ответ 2

Как правило, он реализован с использованием схемы перезаписи URL-адреса некоторого описания. Основное понятие состоит в том, что веб-сервер должен перемещаться к ресурсам с соответствующими URI, а не классическими старыми URL-адресами, которые несут в себе детали реализации и которые в будущем могут быть уязвимы для будущих изменений.

Подробное обсуждение этой темы можно найти в статье Тима Бернерса-Ли Cool URIs Do not Change, в которой утверждается в пользу сокращения нерелевантный рывок в URI как средство, помогающее избежать проблем, возникающих при изменении реализаций, и когда ресурсы переходят на другой URL-адрес. Сама статья содержит хорошие общие рекомендации по планированию схемы URI и хорошо стоит прочитать.

Ответ 3

Для сайтов, использующих Apache, они, вероятно, используют mod_rewrite, что позволяет им переписывать URLS (и сделать их более удобными для пользователей и SEO)

Подробнее вы можете прочитать здесь http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html и здесь http://www.sitepoint.com/article/apache-mod_rewrite-examples/

EDIT. Также существуют модули перезаписи для IIS.

Ответ 4

Более конкретно, чем большинство из этих ответов:

В веб-контенте не используется расширение файла, чтобы определить, какой файл будет обслуживаться (если вы не Internet Explorer). Вместо этого они используют заголовок Content-type HTTP, который отправляется по кабелю до содержимого изображения, HTML-страницы, загрузки или чего-то еще. Например:

Content-type: text/html

означает, что просматриваемая страница должна интерпретироваться как HTML, а

Content-type: image/png

означает, что страница является PNG-изображением.

Веб-серверы часто используют расширение файла, если файл обслуживается непосредственно с диска, чтобы определить, что Content-type для назначения, но веб-приложения также могут создавать страницы с любым Content-type, которые им нравятся в ответ на запрос. Независимо от структуры или расширения имени файла, если фактическое содержимое страницы соответствует объявленному Content-type, данные отображаются в соответствии с назначением.

Ответ 5

Традиционно расширение файла представляет файл, который обслуживается.

Например

http://someserver/somepath/image.jpg

Позже этот же подход использовался, чтобы позволить script обрабатывать параметр

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

В этом случае файл был php script, который обрабатывал "запрос" и представлял динамически созданный файл.

В настоящее время приложения гораздо сложнее, чем это (амазонка, которую вы измерили)

Тогда нет ни одного script, который обрабатывает запрос (но гораздо более сложное приложение с несколькими файлами/методами/функциями/объектом и т.д.), а URL-адрес больше похож на точку входа для веб-приложения (он может иметь script позади, но это другая вещь), поэтому теперь веб-приложения, такие как amazon, и да stackoverflow не показывают файл в URL-адресе, но все, что происходит, обрабатывается приложением на стороне сервера.

URL-адреса сайтов без расширения файла?

Здесь я задаю параметры webapp и 322747 параметр

Надеюсь, это небольшое объяснение поможет вам лучше понять все остальные ответы.

Ответ 6

Ну как насчет наличия файла index.html в каталоге, а затем введите путь в браузер? Я вижу, что мои Firefox и IE7 автоматически помещают конечную косую черту, мне не нужно ее вводить. Это больше подходит для таких людей, как я, которые не считают, что каждый URL-адрес на земле должен вызывать php, perl, cgi и еще 10 000 других приложений, чтобы отправить несколько килобайт данных.

Ответ 7

Многие люди используют более " RESTful" тип архитектуры... или, по крайней мере, URL-адреса REST.

Этот сайт (StackOverflow) dosn't показывает расширение файла... он использует ASP.NET MVC.

Ответ 8

В зависимости от настроек вашего сервера вы можете использовать (или нет) любое расширение, которое вы хотите. Вы даже можете установить расширения как ".JamesRocks", но это будет не очень полезно:)

В любом случае, на всякий случай, если вы новичок в веб-программировании, все эти тарабарщины в конце есть аргументы для операции GET, а не расширения страницы.

Ответ 9

Несколько сообщений упомянули об этом, и я буду взвеситься. Это абсолютно система перезаписи URL-адресов, и у ряда платформ есть способы реализовать это.

Я работал на нескольких крупных сайтах электронной коммерции, и теперь он является очень важной частью присутствия в Интернете и предлагает ряд преимуществ.

Я бы рекомендовал использовать технологию, с которой вы хотите работать, и исследовать образцы механизма перезаписи URL-адресов для этой платформы. Например, для .NET есть URL-адрес для переписывания URL-адреса google 'asp.net' или использовать дополнительную структуру, такую ​​как MVC, которая делает эту функциональность из коробки.

Ответ 10

В Django (структура веб-приложений для python) вы сами создаете URL-адреса, независимо от имени файла или даже любого пути на сервере.

Вы просто скажете что-то вроде "Я хочу, чтобы /news/<number>/ URL-адреса обрабатывались этой функцией"