网站短链生成服务器,一天时间撸个短链服务器

该项目是一个简单的短链服务器实现,采用Servlet 3.0、HikariCP和Gson,支持通过SPI切换内存和Redis两种存储方式。提供短链生成API,使用JSON+POST方式,支持token验证。通过curl示例展示了短链生成和访问过程,未来计划增加token管理和后台管理功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

short-url-service

目的:简单造轮子 + 复习旧的知识

项目介绍

简单短链服务器,算法参考

软件架构

f80b1829b828da90d04ef637dc795c63.png

依赖

servlet3.0+

HikariCP

Gson

lettuce redis

SPI

使用说明

clone git code

gradle tomcatRun

可以修改SPI实现,目前实现了简单内存实现和redis实现两种方式

提供了短链生成API,使用token + json + post方式

测试

请求生成短链样例

短链生成请求:

curl -v -i -X POST -H "Content-type:application/json" -H "token:123" -d '{"url":"https://www.baidu.com"}' http://localhost:8080/sus/create

短链生成响应:

* About to connect() to localhost port 8080 (#0)

* Trying ::1...

* Connected to localhost (::1) port 8080 (#0)

> POST /sus/create HTTP/1.1

> User-Agent: curl/7.29.0

> Host: localhost:8080

> Accept: */*

> Content-type:application/json

> token:123

> Content-Length: 31

>

* upload completely sent off: 31 out of 31 bytes

< HTTP/1.1 200 OK

HTTP/1.1 200 OK

< Server: Apache-Coyote/1.1

Server: Apache-Coyote/1.1

< Content-Type: application/json;charset=UTF-8

Content-Type: application/json;charset=UTF-8

< Transfer-Encoding: chunked

Transfer-Encoding: chunked

< Date: Sat, 15 Dec 2018 09:05:28 GMT

Date: Sat, 15 Dec 2018 09:05:28 GMT

<

{"code":0,"longUrl":"https://www.baidu.com","shortUrl":"Afi6Nb"}

* Connection #0 to host localhost left intact

使用短链访问样例

短链访问请求:

curl -v -i http://localhost:8080/sus/vQj2eq

短链访问响应:

* About to connect() to localhost port 8080 (#0)

* Trying ::1...

* Connected to localhost (::1) port 8080 (#0)

> GET /sus/vQj2eq HTTP/1.1

> User-Agent: curl/7.29.0

> Host: localhost:8080

> Accept: */*

>

< HTTP/1.1 301 Moved Permanently

HTTP/1.1 301 Moved Permanently

< Server: Apache-Coyote/1.1

Server: Apache-Coyote/1.1

< Location: https://www.baidu.com

Location: https://www.baidu.com

< Content-Length: 0

Content-Length: 0

< Date: Sat, 15 Dec 2018 09:15:13 GMT

Date: Sat, 15 Dec 2018 09:15:13 GMT

<

* Connection #0 to host localhost left intact

后期功能扩展

目前是纯servlet项目,可以切换为springboot类型项目

token管理

后台管理功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值