oschina 的帖子 URL 地址代表什么意思呢?

华宰 发布于 2011/06/21 08:14
阅读 1K+
收藏 8

http://www.oschina.net/question/54100_22339

这样的URL地址中后面两个数字分别代表什么?似乎后面一个数字 22339 是帖子编号,为什么会这么做呢?有编号不就足够了吗?

加载中
0
红薯
红薯

请看 oschina 对这个 url 的处理方法,至于为什么要这样做,大家再猜猜?

static MessageFormat QID_FORMAT = new MessageFormat("{0,number,integer}_{1,number,integer}");

/**
 * XXXX_XXXX - > Question
 * @param sid
 * @return
 */
public static Question question(String sid) {
	try {
		Object[] ids = QID_FORMAT.parse(sid);
		Question q = question((Long)ids[1]);
		return (q!=null&&q.getUser()==(Long)ids[0])?q:null;
	} catch (Exception e) {}
	return null;
}
2
一号男嘉宾
一号男嘉宾

引用来自“东明”的答案

老大你好坏哟。

鸡皮疙瘩起来了

你还不如说“红鼠,你好坏哟,把人家~”

G.
G.
这天气, 突然好冷啊.
1
红薯
红薯

如果URL改成 http://www.oschina.net/question/11111

那么随便有人就可以使用下面程序来扒取所有的帖子

for(int i=1;i<99999;i++){
    http_get("http://www.oschina.net/question/"+i);
}

增加一个 uid 在 url 中就是为了提供这种门槛。

水牛叔叔
水牛叔叔
这招好实用
雷志伟
雷志伟
@东明: 哪怕改成 哈希串 都没用. 只是为了让抓取的人不太如愿而已.
大东哥
大东哥
如果uid改成随机数,门槛更高啦。
G.
G.
略一变通, 我还是可以照扒... 哈哈.
0
绿悠悠
绿悠悠

同问,代码分享中的代码 url 也是这样,多了一个 snippet_

http://www.oschina.net/code/snippet_12_4833

0
xmdeepdata
xmdeepdata

我猜的:

前面的数字应该表示分类,这样可以在加载“类似话题”的时候,免去多查一次数据库。

0
Wss_绍铖
Wss_绍铖

数据库结构不一样,有些东西必须要的。

等待站主解答!

0
默默无蚊
默默无蚊
前面是用户ID,后面是问题ID
0
我的收藏
我的收藏

引用来自“红薯”的答案

如果URL改成 http://www.oschina.net/question/11111

那么随便有人就可以使用下面程序来扒取所有的帖子

for(int i=1;i<99999;i++){
    http_get("http://www.oschina.net/question/"+i);
}

增加一个 uid 在 url 中就是为了提供这种门槛。

0
大东哥
大东哥
老大你好坏哟。
0
一号男嘉宾
一号男嘉宾
AI就是AI,佩服呀~
返回顶部
顶部