используя файловые URI или нет - PullRequest
0 голосов
/ 24 июня 2010

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

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

1 голос
/ 24 июня 2010

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

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

...