成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

一個(gè)木函生成app怎么添加多個(gè)網(wǎng)址 有沒(méi)有免費(fèi)的短網(wǎng)址工具?

有沒(méi)有免費(fèi)的短網(wǎng)址工具?我是@程序員小助手,本文從技術(shù)角度,對(duì)短網(wǎng)址參與深度挖掘。前言網(wǎng)上早就有產(chǎn)品,用著還確實(shí)不錯(cuò)??墒?,以及程序員,從頭學(xué)習(xí)造輪子,變更土地性質(zhì)一個(gè)都屬于自己的短網(wǎng)址服務(wù)器,這想法

有沒(méi)有免費(fèi)的短網(wǎng)址工具?

我是@程序員小助手,本文從技術(shù)角度,對(duì)短網(wǎng)址參與深度挖掘。

前言網(wǎng)上早就有產(chǎn)品,用著還確實(shí)不錯(cuò)??墒牵约俺绦騿T,從頭學(xué)習(xí)造輪子,變更土地性質(zhì)一個(gè)都屬于自己的短網(wǎng)址服務(wù)器,這想法amazing!

本文,讀者可很清楚短網(wǎng)址的技術(shù)原理,這些實(shí)際Go語(yǔ)言實(shí)現(xiàn)程序一個(gè)短網(wǎng)址服務(wù)。

簡(jiǎn)明教程短網(wǎng)址為什么不存在地?

微博等產(chǎn)品的興起,異?;钴S了網(wǎng)上的社交圈內(nèi)大多數(shù)用戶。不過(guò)微博象有140字限制,如果沒(méi)有不再轉(zhuǎn)發(fā),單單評(píng)論文字,再而且一段網(wǎng)址,極有可能最多限制而被截?cái)唷?/p>

短網(wǎng)址應(yīng)運(yùn)而出,用較短的一個(gè)字符串,替換較長(zhǎng)的一個(gè)字符串,從觀感上講,效果要不友善的多。

從技術(shù)原理上說(shuō),短網(wǎng)址是一個(gè)hash表,主要用于映射兩個(gè)字符串的對(duì)應(yīng)關(guān)系。

可以使用鍵,找到按的值,重定向進(jìn)行訪問(wèn),就成功了整個(gè)流程。

短網(wǎng)址算法短網(wǎng)址的一般結(jié)構(gòu),比如新浪的SwuTjn,其中后端的一段6位字符串,就是單獨(dú)同樣標(biāo)記一條記錄的ID。那你,可以使用什么算法,可以不生成一條無(wú)反復(fù)重復(fù)的ID呢?

在用通用的做法,不使用0-9A-Za-z總共62個(gè)字符,我們看使用hash鍵位數(shù)三個(gè)有多少種排列組合情況。

1位:pow(62,1)62種

2位:pow(62,2)3844種

3位:pow(62,3)238328種

4位:pow(62,4)14776336種

5位:pow(62,5)916132832種

6位:pow(62,6)56800235584種

一般情況下,6個(gè)字符,就相當(dāng)可以使用了,一共568億種可能。

還有一個(gè)一種情況是,用原網(wǎng)址字符串的MD5值,約計(jì)32位,然后把通過(guò)切分為4段,三個(gè)按位與運(yùn)算,并裁剪到30位。不要超過(guò)5位推舉該位的字符另外該段索引,共6位??墒沁@種做法也有幾率發(fā)生了什么重復(fù),也不非常直觀。

因此本文不使用第一種算法生成鍵ID。

工具打算分析什么短網(wǎng)址的特性,中有200元以內(nèi)項(xiàng)目:

唯一性:鍵是需要全局同樣時(shí)效性:鍵不需要有快過(guò)期時(shí)間目標(biāo)網(wǎng)址任何,假如重復(fù),則手動(dòng)直接返回既有的鍵。決定到根據(jù)上述規(guī)定情形,我們可以使用redis存儲(chǔ)這些對(duì)應(yīng)關(guān)系。在用Gin框架作為路由和控制器,可以提供聯(lián)合的API訪問(wèn)。

核心函數(shù)計(jì)算機(jī)中最常見(jiàn)的一種的2進(jìn)制,8進(jìn)制,10進(jìn)制,16進(jìn)制,我們此處必須建議使用62個(gè)字符,循環(huán)來(lái)表示一個(gè)整數(shù),這樣的話可稱之為62進(jìn)制。

下面使用go語(yǔ)言實(shí)現(xiàn)這個(gè)函數(shù),應(yīng)用于將橫豎斜的整數(shù)(uint64)轉(zhuǎn)換成為(0-9A-Za-z)的字符串。

不需要盡量,基礎(chǔ)的方法,那是運(yùn)行取余數(shù),根據(jù)進(jìn)制字典,索引相對(duì)應(yīng)的字符,然后將各個(gè)余數(shù)拼接出,那就是結(jié)果。

這個(gè)計(jì)算方法,與2進(jìn)制,8進(jìn)制,原理是相同的。

因此字典比較好長(zhǎng),有62個(gè)鍵值對(duì),我們僅列出來(lái)一部分。

上述函數(shù)的轉(zhuǎn)換結(jié)果,像648926400175ai0p

功能規(guī)劃下面是相對(duì)于系統(tǒng)路由,修改短鏈接,和使用短鏈接ftp連接目標(biāo)網(wǎng)址的方法。

1-規(guī)劃路由

路由比較比較簡(jiǎn)單的,最少2個(gè),一個(gè)POST方法,生成氣體短鏈接;一個(gè)是GET方法,ftp訪問(wèn)短鏈接。

代碼::

2-引導(dǎo)出redis并初始化

目的是方便啊演示,我們建議使用redis存儲(chǔ)鍵值,并設(shè)置expire時(shí)間。我們不使用go-redis可以提供的接口操作redis數(shù)據(jù)庫(kù)。

下面是全局的

對(duì)象化合,和系統(tǒng)初始化函數(shù)。

這樣的話做的好處是,我們?nèi)侄伎梢越ㄗh使用變量rdb動(dòng)態(tài)創(chuàng)建方法操作redis鍵值。

3-實(shí)現(xiàn)POST路由方法:omit

本函數(shù)主要是用于接收f(shuō)orm表單數(shù)據(jù),能生成一個(gè)全局真正的hash,充當(dāng)鍵,存入redis,設(shè)置中值和有效期時(shí)間。

代碼追加:

本段我們?cè)谟昧艘粋€(gè)getCounter函數(shù),這是設(shè)置在redis內(nèi)的鍵,將其每次各位創(chuàng)建角色的時(shí)候,自增1,可能保證無(wú)重復(fù)。依據(jù)什么這個(gè)計(jì)數(shù)器,我們調(diào)用helper的DecToAny方法,將其能量轉(zhuǎn)化為62進(jìn)制的字符串,另外全局同樣的hash值。

下圖是getCounter的定義:

最重要的盡量的是,helper包,是我們?cè)凇昂诵暮瘮?shù)”部分定義的函數(shù)。在主函數(shù)體內(nèi)摘錄。

4-實(shí)現(xiàn)GET方法:visit

本函數(shù)主要注意應(yīng)用于使用上一節(jié)接口化合的短鏈接,接受訪問(wèn),并自動(dòng)出現(xiàn)重定向到目標(biāo)網(wǎng)址。

代碼不勝感激:

對(duì)于不存在的短鏈接,或者redis聲望兌換失敗,趕往錯(cuò)誤`信息。

如果存在,在用301StatusMovedPermanently狀態(tài)碼重定向到目標(biāo)地址。

測(cè)試我們不使用curl工具,測(cè)試3上列兩個(gè)接口。

簡(jiǎn)單,使用POST表單遞交數(shù)據(jù):

curl-s-XPOST-dtarget-dexpire600:9090/

本案所涉方法,我們遞交了兩個(gè)參數(shù),爆擊路由之后,會(huì)訪問(wèn)網(wǎng)絡(luò)上一節(jié)第3條的add方法,并生成氣體一個(gè)短鏈接網(wǎng)址。前往JSON格式數(shù)據(jù)萬(wàn)分感謝:

{message:ok,large_url::9090/75ai0r,status:1}

其中,short_url就是短網(wǎng)址。

隨后,我們?cè)诮ㄗh使用curlftp連接這個(gè)鏈接,看有無(wú)發(fā)生重定向。截圖萬(wàn)分感謝:

可以看到,執(zhí)行了301重定向,并提出了目標(biāo)網(wǎng)址,與我們上述表單要想創(chuàng)建的地址相同。

最后,故障測(cè)試。ftp連接一個(gè)不修真者的存在的hash,看是否是首先排除異常信息。截圖不勝感激:

看的到,先執(zhí)行了錯(cuò)誤直接返回信息。

結(jié)語(yǔ)以上我們可以使用GO語(yǔ)言框架Gin實(shí)現(xiàn)了兩個(gè)路由,并建議使用redis管理短鏈接。核心函數(shù)可以使用helper包管理,經(jīng)過(guò)測(cè)量,實(shí)現(xiàn)方法了短網(wǎng)址的功能。

不超過(guò)代碼在本地測(cè)試通過(guò),也可防御部署到線上服務(wù)器組織開(kāi)發(fā)端口,提供服務(wù),效果是一樣的。

希望按照這個(gè)流程,使大家對(duì)于短網(wǎng)址的知識(shí),有一些打聽(tīng)一下,并能依據(jù)什么自身的編程能力,創(chuàng)作作品出更合適得用短網(wǎng)址服務(wù)。

beautifulcoding:-)

【本文由@程序員小助手先發(fā)布,緩慢分享分享編程與程序員相關(guān)的內(nèi)容,記得關(guān)注】

必備手機(jī)應(yīng)用有哪些呢?

很歡喜能問(wèn)你的問(wèn)題,手機(jī)必備軟件,相對(duì)于每個(gè)人來(lái)說(shuō),是都一樣的,下面是我個(gè)人觀點(diǎn),期望能幫助到你,謝謝啦

視頻打開(kāi)程序中...