【问题标题】:using file based URIs or not是否使用基于文件的 URI
【发布时间】:2010-06-24 01:02:08
【问题描述】:

当然,传统的方法是让文件系统和您的网络服务器计算出 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 来做要慢。)

【问题讨论】:

    标签: http url url-routing uri


    【解决方案1】:

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

    【讨论】:

    • 漂亮有什么好处呢?无论如何,人们不太可能尝试通过网址通过 ID 访问特定产品,对吧?
    • @aharon:不,但您可能想向 URL 添加数据,例如查看此问题的 URL。标题是 URL 的一部分。当您向某人发送链接时,他们会立即知道点击该链接会发生什么。
    【解决方案2】:

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

    它的扩展是 URI 不指向文件,它们指向资源。此类资源可能由文件或数据库表支持,也可能由某个可怜的家伙为每个请求手动写出 html 并使用摩尔斯电码敲击 0 和 1 提供支持。

    【讨论】:

    • 当然。但是,当然,除了可记忆性之外,拥有 example.com/resource?id=55 有什么问题。事实是,大多数人无论如何都不会记住资源 ID。
    • @aharon:Better SEO。你说得对,人们不太可能记得resource?id=55,但他们很可能记得documents/wedding-guest-list
    猜你喜欢
    • 1970-01-01
    • 2011-04-05
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    相关资源
    最近更新 更多