如何将任意 url 转换成 10-12 个字符串

2016-05-10 21:51:57 +08:00
 wico77

使用 python 或者 nodejs 都可以。

3459 次点击
所在节点    问与答
32 条回复
congeec
2016-05-10 22:00:10 +08:00
你只能考虑短链接
Bryan0Z
2016-05-10 22:03:58 +08:00
ASCII 当成 unicode 显示,字符数应该可以减到以前的 1/3 ,然后再压缩下,够呛
短链接更适合你
chairuosen
2016-05-10 22:10:24 +08:00
如果你掌握了这个方法,那么你可以把任意数据拼到 url 里,然后用这个方法转换成 10-12 个字符。无限压缩率?
murmur
2016-05-10 22:39:42 +08:00
你晓得合法的 url 最长有多长么?压缩到 10-12 ? 100-120 都很了不起了
Slienc7
2016-05-10 23:05:56 +08:00
md5 + substr
lululau
2016-05-10 23:16:07 +08:00
@murmur 你告诉我合法的 URL 是多长吧,哪部法律?
Pastsong
2016-05-10 23:34:40 +08:00
@lululau https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.2.1

> Note: Servers ought to be cautious about depending on URI lengths
above 255 bytes, because some older client or proxy
implementations might not properly support these lengths.
upczww
2016-05-10 23:48:36 +08:00
找个短链接 api 吧,渣浪的就挺好
lululau
2016-05-11 00:09:06 +08:00
@Pastsong 这句话能说明 256 个字节的 URI 就是不合法的了?
wico77
2016-05-11 00:45:51 +08:00
一个字符有 a-zA-Z0-9, 62 个变化, 62 的 12 次方足够应对现有的互联网的网页 url 了吧
@Slienc7 md5+substr ,这种方法不可逆呀。
wico77
2016-05-11 00:46:26 +08:00
@congeec 话说短链接是怎么缩小到 10 几个字符的呢
ligyxy
2016-05-11 00:50:38 +08:00
@wico77 你想要可逆?确定?
tSQghkfhTtQt9mtd
2016-05-11 00:50:41 +08:00
@wico77 访问短链接->短链接服务查询对应长链接(你自己写进去的)-> 301/302 Moved
lslqtz
2016-05-11 01:02:32 +08:00
@Slienc7 我第一个也是想到这个。
lslqtz
2016-05-11 01:04:30 +08:00
md5+substr 将 substr 后的放到数据库 url 也放进数据库 ruok
wico77
2016-05-11 01:42:14 +08:00
@lslqtz 好方法。
ob
2016-05-11 07:29:13 +08:00
@lslqtz 你这方法有点把问题复杂化了,如果单纯只是转 10 个字符串,既然用到本地数据库,为什么不直接弄张对应表,一个 url ,一个自增长的 id ,前面需要的话可以补零。当然多台台服务器同步的另说。
congeec
2016-05-11 07:43:00 +08:00
@wico77 哈希呗,然后把哈希后的字符串和原始 URL 用键值对保存起来
murmur
2016-05-11 07:58:37 +08:00
@lululau IE 是 2083 所以你单纯用 url 做映射索引效率低死 肯定有一次 hash 再比较 url
Havee
2016-05-11 08:32:26 +08:00
楼上有人将 url uri 搞混了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/277741

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX