什么是在'slug-url'中传递其他参数的正确方法

时间:2012-08-13 00:48:19

标签: http web-applications

让我们假设一个带有评论的博客,用户可以查看一篇带有大量评论的博文。博客文章的一个很好的URL可能如下:

http://www.example.com/blog/174/how_to_slug_urls

174是博客文章的数据库ID。由于在一个页面上显示的评论太多,因此评论会在页面上进行分割。

是否有一些通用的方式来传递评论页面参数?我是否会在slu ,, slu after之后将其附加,按POST发送,还是有其他完整的方法?

我能想到的例子:

http://www.example.com/blog/174/how_to_slug_urls/commentpage/4
http://www.example.com/blog/174/how_to_slug_urls?commentpage=4
http://www.example.com/blog/174/how_to_slug_urls#commentpage=4   // maybe parsing with JS?
http://www.example.com/blog/commentpage/4/174/how_to_slug_urls

修改 附加问题:如何处理未连接到当前数据的参数?例如refreshIntervall = 30秒

2 个答案:

答案 0 :(得分:1)

在我看来,在这种情况下有两种可行的选择。

选项1:只使用查询字符串。(即http://www.example.com/blog/article/174/how_to_slug_urls?commentpage=4

请注意,我添加了article/。它没有必要,但我觉得它以更易读的方式呈现URI。

如果您认为评论是同一资源(博客文章)的一部分,我建议使用查询字符串,但仅需要单独的URI用于分页。

选项2:使用完全不同的URI。(即http://www.example.com/blog/comments/174/how_to_slug_urls?page=4

请注意,我仍然使用查询字符串来区分页面。

视觉上不同的URI清楚地表明评论是一个单独的资源。这可能不是您查看评论的方式,但这是我查看评论的方式。

<强>比较

http://www.example.com/blog/article/174/how_to_slug_urls?commentpage=4

http://www.example.com/blog/comments/174/how_to_slug_urls?page=4

处理其他参数:只需使用查询字符串。

我们似乎很难在我们的URI中使用?。有些人会说他们不漂亮;我反驳看起来并不是一切。如果你真的想避免它,那么以下的URI就是。 。 。可以接受,我想:

http://www.example.com/blog/article/174/how_to_slug_urls/4

http://www.example.com/blog/comments/174/how_to_slug_urls/4

答案 1 :(得分:0)

如果评论页面是一个资源,即一个独立可寻址的东西,它显然是在这里,那么第一个URL就可以了。我会把它变成'http://www.example.com/blog/174/how_to_slug_urls/commentpages/4'。注意's'。如'http://stackoverflow.com/questions/11927056'。

博客文章的评论显然从属于博客文章本身,因此层次结构会保留在该网址中,而不是您的上一个示例。