2010-06-24 1 views
0

Конечно, традиционный метод позволяет файловой системе и веб-серверу работать с URL-адресами. EG, www.example.com/index.html -> /var/www/public_html/index.htmlс использованием URI на основе файлов или нет

Но я заметил тенденцию, в которой, в отличие от того, чтобы веб-сервер сделал сопоставление для вас, вы сделайте это самостоятельно (например, Rails и его файл конфигурации маршрутов, поэтому/index сопоставляется с app/controller/index.rb или w/e, который вы установили для него).

Теперь я понимаю, что одним из преимуществ последнего подхода является то, что никто не может просмотреть ваш исходный код, если сервер начинает не выполнять работу или нет; но для скомпилированных CGI это, очевидно, не проблема.

Есть ли какая-либо настоящая причина (идеи, связанные с REST), чтобы самостоятельно анализировать URL-адреса? (У меня такое ощущение, что это медленнее, чем позволить Apache делать это.)

ответ

1

Что касается определения маршрутов самостоятельно (в качестве примера Ruby), это то, что URI не должны указывать на фактические файлы. В случае структур MVC они просто указывают на действия. Вы могли бы обрабатывать несколько действий одним и тем же контроллером, который находится в том же классе и в том же файле. Вот nice (ASP.NET MVC) example того, что дает вам маршрутизация (в частности, посмотрите раздел поиска).

Расширение того, что URI не указывают на файлы, они указывают на ресурсы. Такие ресурсы могут быть подкреплены файлами или таблицами базы данных или каким-то бедным парнем, который пишет html для каждого запроса вручную и набирает 0 и 1, используя код Морзе.

+0

Конечно. Но опять же, что не так, если у вас есть example.com/resource?id=55, помимо запоминаемости, конечно. Дело в том, что большинство людей не помнит идентификатор ресурса. –

+0

@aharon: [Лучше SEO] (http://weblogs.asp.net/scottgu/archive/2010/04/20/tip-trick-fix-common-seo-problems-using-the-url-rewrite-extension .aspx). И вы правы, люди вряд ли помнят «resource? Id = 55», но они, вероятно, будут помнить «документы/wedding-guest-list». – R0MANARMY

3

Самая большая причина иметь код за URL-адресом заключается в том, что он позволяет URL-адресам, которые не поддерживаются файлом для ответа на запросы. Возможно, вы захотите иметь CGI на диске для каждого URL-адреса, который вы, возможно, захотите подавать, но, вероятно, нет. Вы можете сделать /products.cgi?productid=12, но более красивый URL-адрес для людей - /products/12.

+0

Какая польза от притягательности? Люди вряд ли попытаются получить доступ к определенному продукту по ID через веб-адрес, так или иначе? –

+0

@aharon: Нет, но вы можете добавить данные в URL-адрес, посмотрите URL-адрес для этого вопроса, например. Название является частью URL-адреса. Когда вы отправляете кому-то ссылку, они сразу же знают, чего ожидать от клика по ней. – R0MANARMY

 Смежные вопросы

  • Нет связанных вопросов^_^