
1 simp1e 2018 年 4 月 16 日 via Android |
2 cdlixucd 2018 年 4 月 16 日 现在推特就用的这种技术吧 |
3 luoway 2018 年 4 月 16 日 现在还只用度娘,停留在五年前了吧? |
4 youxiachai 2018 年 4 月 16 日 不是数据库插一个对应的还原链接吗... |
5 evil4 2018 年 4 月 16 日 就是服务端请求一下这个短网址,然后当 http status code 是 301 / 302 的时候,输出最终跳转地址吧。 |
6 holyghost 2018 年 4 月 16 日 你说的是 301 吧? |
7 musclpanda OP @evil4 点醒了。。。谢谢 |
8 KIDJourney 2018 年 4 月 16 日 |
9 Qiss 2018 年 4 月 16 日 一个 request 请求得到返回值输出。。。没啥技术含量了。。。 |
10 dianso 2018 年 4 月 16 日 via Android 跳转后复制 |
11 mooo 2018 年 4 月 16 日 用发号策略, 别用 hash https://www.zhihu.com/question/29270034 |
12 night98 2018 年 4 月 16 日 via Android kv,key=原网址 hash 后 url,value=原网址,然后重定向,搞定 |
13 learnshare 2018 年 4 月 16 日 还原?都是跳转好么 |
14 wd 2018 年 4 月 16 日 via iPhone @mooo 要思考下 如果只是自己公司用 网址数量一般不会很多 hash 策略好多了 再加上网址过期策略 基本 hash 是比较好的策略 |
15 vus520 2018 年 4 月 16 日 1,短网址实现:预先生成 100*100*100 个 key,新的 URL 依次去填 value,不要使用 HASH 2,短网址查找:查找 Key 即可 3,短网址还原:curl + http 200/301 |
16 imdong 2018 年 4 月 16 日 我认为的短网址原理: 插入到数据库(先查重),对自增 ID 进行进制转换( 16/62/64 等进制) 转换的结果作为后缀使用。 至于短网址还原,直接请求短网址地址,然后获取 header 的 location 字段即可。 |
17 fengyj 2018 年 4 月 16 日 其实就是 key-value 键对,key 唯一(也就短域名后面的那些短字符串)对应这 value (就是你原先的长网址)。然后存储进数据库,主要就是数据库存储和查询操作。 相关项目你去看看 https://github.com/YOURLS/YOURLS 磕下源码就大概了解了。 |
18 qiayue PRO |
19 SourceMan 2018 年 4 月 16 日 via iPhone 这....就...非常尴尬了 18 楼之前的 |
20 580a388da131 2018 年 4 月 16 日 php 短网址还原 python 短网址还原 加个语言就有大把结果了。 之所以造成我们用的不是一个百度,那是因为姿势不正确啊。 |
21 akira 2018 年 4 月 16 日 一路 301 302 回去就是了, 不过有见过一种所谓的短地址,是会给你另外一个页面,然后在里面点按钮跳转的,这个要多一个步骤了 |
23 txydhr 2018 年 4 月 17 日 via iPhone 一一对应存在数据库里。。。。 |
24 balamiao 2018 年 4 月 17 日 服务端不就保存一个 map 嘛,根据 key 拿 value 的事情呀~ |
25 shuizhengqi 2018 年 4 月 17 日 很简单,你请求一个短连接过来,我给你返回个网址,301 重定向,根本就没有还原短网址这一说法 |
26 moonsola 2018 年 4 月 17 日 你输入一个短网址 a,后端访问这个短网址后根据返回的头信息可以获取原网址 b,将 b 输出到前端就可以了。应该就是这么简单粗暴 至于你说的“分步解析出短网址还原过程中每个 url ”,不清楚是什么意思 |
27 opengps 2018 年 4 月 17 日 如果用算法生成短网址,那么可能用算法还原。 但是如果用字典或者说数据库生成,那么外部人员是无法还原的 |
28 luozic 2018 年 4 月 17 日 via iPhone key-value 或者算法 md5 那种方式类似缩略图 |
29 pmispig 2018 年 4 月 17 日 谁告诉你能还原的? |
30 pmispig 2018 年 4 月 17 日 你给的这个网站还原的方式就是 get 一次,把 302 地址给你,这就叫还原了? |
31 wizardforcel 2018 年 4 月 17 日 via Android 负载均衡+kv 数据库。。。 |
32 xxxy 2018 年 4 月 17 日 每一家公司的短地址生成方式都不太一样,想直接还原是不可能的。直接访问一下查看历史跳转记录就行。 |
33 sampeng 2018 年 4 月 17 日 nginx+lua+redis。。了解一下。 |
34 FrankAdler 2018 年 4 月 17 日 生成方式不一样, 还原方式就不一样, 我说一个基于文件的短网址吧 一个文件, 原本 size 是 x, 网址长度 y, 写入文件后, 文件大小变成 z, 那么把 x,y 记录下来, 下次可以以 fseek 的方式还原 url 这里有几个问题 1. x,y 可能比较大或者说是长度比较长, 那么可以转为高进制, 比如 64 进制, 进制越高, 长度越短, 但是稀奇古怪的字符越多 2. url 越来越多, 文件越来越大, 那么可以占用 1 位长度来做散列, 能保证很长的一段时间 url 足够短 |
35 FrankAdler 2018 年 4 月 17 日 不建议用任意一种数据库来存储这个对应关系 |