URL 中单数与复数类型名称的标准

URL 中单数与复数类型名称的标准

我在一个网站上工作,我们正在进行一次重大的架构重组。有一点可能有点挑剔,但我看不出有什么标准。

当你在 URL 中使用以 / 为分隔符的真实单词时,你应该使用单数还是复数。因此

/user/fred

对比

/users/fred

SO 似乎使用“问题”、“用户”等,但我想知道是否有任何权威建议。

附言:我不知道这应该放在 SO SU 还是 SF 上。如果您能弄清楚它应该放在哪个存储桶中,请随意移动。

答案1

我总是听说只要你内心始终如一,其他都无关紧要。

话虽如此,在 *nix 系统架构中它总是单数。(例如“用户”、“家庭”、“mnt”等(或者应该是“等”?)),所以这可能是一个更好的默认值,因为它已经很常见了?

答案2

我个人更喜欢复数,它表示有一个用户集合,你正在其中寻找 fred。

答案3

为了让@Satanicpuppy 的回答更准确,在 *nix 系统架构中,它并不总是单数。我认为在 *nix 系统中,由于系统管理员大多使用终端访问它,因此优先考虑的是少输入,这就是为什么我们

    have proc and not process,
    have mnt and not mount,
    have var and not variable,
    have usr and not user,
    ...

列表还在继续,他们使用缩写的另一个原因(这里讨论的不是单数或复数形式,而是为什么缩写)。无论操作系统是什么,过去文件系统都有限制。限制既有也有Maximum Pathname LengthMaximum Filename Length也许你还记得(如果你够老的话;))一个 verylongnames.txt 文件在 Windows 上变成了 verylo~1.txt,如果没有这是解释)。

但近年来一切都发生了变化:限制已经消失,如今用户体验和可读性是一个重要问题,大多数用户使用 GUI 与计算机交互。这也是为什么在所有主流操作系统(Linux、OS X 和 Windows)上,用户目录命名约定都是相同的:

    Users 
       '-Documents
       '-Downloads
       '-Movies/Videos
       '-Pictures

唯一的例外是 Linux 上的用户目录被称为 home。


除了上述原因之外,在网络上使用复数形式更为常见:

在 Django 中,使用复数形式很常见:例如django 文档

    # To get a list of polls
    /polls/ 

    # To get an individual poll item
    /polls/5/

另一个很好的例子是谷歌,它使用:

    google.com/analytics
    google.com/analytics/settings
    google.com/analytics/feeds
    google.com/books
    google.com/catalogs
    google.com/maps
    google.com/places
    google.com/trends

Bing 也使用复数形式:

    bing.com/images
    bing.com/maps
    bing.com/results
    bing.com/videos

当然还有 stackoverflow:

   stackoverflow.com/users/
   stackoverflow.com/feeds/
   stackoverflow.com/questions/
   stackoverflow.com/tags/
   stackoverflow.com/help/badges

答案4

无论如何,设置从错误版本到规范版本的 301 重定向可能是一个好主意。这样,当有人输入链接而不是复制粘贴时,他们会得到 301 而不是 404。

就我个人而言,我会将 /users/ 作为用户列表页面(如果有的话),将 /user/fred/ 作为 fred 的主页。但这样操作起来很麻烦,尤其是如果你想使用 301 重定向,所以在实际系统中,我会选择一个并坚持使用它。

相关内容