是否使用基于文件的URI

时间:2010-06-24 01:02:08

标签: http url url-routing uri

当然,传统的方法是让文件系统和你的网络服务器解决问题。 E.G.,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 个答案:

答案 0 :(得分:3)

在URL后面加代码的最大原因是它允许没有文件支持的URL响应查询。您可能希望在磁盘上有一个CGI,用于您可能想要提供的每个URL,但您可能不希望这样。您可以执行/products.cgi?productid=12,但人类可以使用的更漂亮的网址是/products/12

答案 1 :(得分:1)

关于自己定义路由的事情(正如你给出的ruby示例)是URI不必指向实际文件。在MVC框架的情况下,他们只是指向行动。您可以让同一个控制器处理多个操作,该控制器位于同一个类和同一个文件中。这是路由为您提供的nice (ASP.NET MVC) example(特别是请查看搜索部分)。

扩展名是URI不指向文件,它们指向资源。这些资源可以由文件或数据库表支持,或者是一些穷人,他们手动为每个请求写出html,并使用摩尔斯电码来点击0和1。