短网址服务项目心得

1.短网址服务的作用是什么

1. 短信以及很多社交平台评论发言会限制字数,长网址会占据很大的空间。
2. 规避关键词,域名屏蔽手段。
3. 隐藏真实地址

一般就是发链接的时候,长链接占地方还乱;

有的评论限制字数,链接太长导致可编辑的内容很好。

还有就是广告牌上弄二维码的时候,如果是用长链接生成的二维码,那么二维码很碎,扫码的时候不容易识别,短的生成的二维码就简单,容易识别。

2.调研已有的短网址服务

现有短网址服务:百度短网址、新浪短网址、谷歌短网址

3.思考如何实现一个短网址应用

将要缩短的网址存到数据库中,借助哈希表缩短网址长度,为了能容纳更多的网址,可以将10进制转换为更高的进制,并且设置分区,为了适应高并发场景,采用Redis缓存。

短网址工作流程

1. 用户输入长网址,后端将长网址存入到数据库。

2. 后端将长网址在数据库的主键id作为参数传入到转换函数,生成一个0——大写z的62进制字符串。

3.在字符串前拼接服务器域名(ip地址)以及对应的接口,生成一个短网址,并且通过JS生成短网址对应的二维码。

4. 用户使用二维码或短网址,当别人点击短网址或者扫描二维码时:会访问到服务器,服务器根据短网址的url参数获取短网址字符串,并且查询数据库,找到对应的长网址,最后重定向至长网址。


用户输入一个长网址,后端将长网址存入到数据库。
然后将长网址在数据库的主键id作为参数传入到转换函数,生成一个0——大写z的62进制字符串。
在字符串前拼接服务器域名(ip地址)以及对应的接口,生成一个短网址,并且通过JS生成短网址对应的二维码。
用户扫描二维码或访问短链接的时候,会访问服务器,服务器根据短网址查询数据库,找到对应的长网址,并且重定向至长网址。

get是从服务器上获取数据,post是向服务器传送数据

一般使用post的原因:
上传的数据多的话URL放不下
直接明文显示不安全

域名命名规范:

尽量简短,请求方式+接口名表示动作。请求方式相当于动词,域名最后那个相当于名词,结合起来就是服务内容。


修改host文件在本地给自己的服务配一个域名

在host文件里将你服务的ip和自定义的一个域名对应起来,那么你本机访问这个域名就相当于访问对应的那个ip。

浏览器访问服务器的流程

先查找浏览器的缓存,看有没有该域名对应IP的缓存,有的话就直接访问这个IP,如果浏览器缓存没有的话,查看本机的host文件,看有没有对应关系,有的话就取对应的IP访问,如果host没有对应的,就通过dns协议去dns服务器查找该域名对应的IP。

通过ip地址和端口号(默认端口号80)访问服务器,通过tcp三次握手来建立连接。

客户端向服务器发送请求(本地缓存阶段,协商缓存阶段,缓存失败阶段)

等待服务器处理以及网络传输

接收响应。

实现中的注意点:

路径参数里的":",在浏览器输入信息时不输入。

将整个网址作为一个字符串:/:url

web里一个请求对应一个响应

go中类型不同不能强制转换
string转成int:
int, err := strconv.Atoi(string)
string转成int64:
int64, err := strconv.ParseInt(string, 10, 64)
int转成string:
string := strconv.Itoa(int)
int64转成string:
string := strconv.FormatInt(int64,10)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值