當前位置:首頁 > 科技 > 正文

免費制作網(wǎng)站軟件(如何制作自己的網(wǎng)站)

免費制作網(wǎng)站軟件(如何制作自己的網(wǎng)站)

本篇文章給大家談談免費制作網(wǎng)站軟件,以及如何制作自己的網(wǎng)站對應的知識點,文章可能有點長,但是希望大家可以閱讀完,增長自己的知識,最重要的是希望對各位有所幫助,可以解決了...

本篇文章給大家談談免費制作網(wǎng)站軟件,以及如何制作自己的網(wǎng)站對應的知識點,文章可能有點長,但是希望大家可以閱讀完,增長自己的知識,最重要的是希望對各位有所幫助,可以解決了您的問題,不要忘了收藏本站喔。

有沒有免費的短網(wǎng)址工具

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

前言

網(wǎng)上已經(jīng)有產(chǎn)品,用著還不錯。可是,作為程序員,從零開始造輪子,開發(fā)一個屬于自己的短網(wǎng)址服務器,這想法amazing!

通過本文,讀者可明白短網(wǎng)址的技術(shù)原理,以及通過Go語言實現(xiàn)一個短網(wǎng)址服務。

簡明教程

短網(wǎng)址為什么存在?

微博等產(chǎn)品的興起,活躍了網(wǎng)上的社交圈內(nèi)大多數(shù)用戶。但是微博一般有140字限制,如果不轉(zhuǎn)發(fā),單純評論文字,再加上一段網(wǎng)址,極有可能超過限制而被截斷。

短網(wǎng)址應運而生,用較短的一個字符串,替換較長的一個字符串,從觀感上講,效果要友好的多。

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

使用鍵,找到對應的值,重定向進行訪問,就完成了整個流程。

短網(wǎng)址算法

短網(wǎng)址的一般結(jié)構(gòu),比如新浪的SwuTjn,其中后端的一段6位字符串,就是用來唯一標記一條記錄的ID。那么,使用什么算法,可以生成一條無重復的ID呢?

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

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個字符,就足夠使用了,共計568億種可能。

還有一種情況是,用原網(wǎng)址字符串的MD5值,共計32位,然后通過切分為4段,分別按位與運算,并裁剪到30位。間隔5位選出該位的字符作為該段索引,共有6位。但是這種做法也有幾率發(fā)生重復,也不直觀。

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

工具準備

分析短網(wǎng)址的特性,包含以下項目:

唯一性:鍵需要全局唯一時效性:鍵需要有過期時間目標網(wǎng)址唯一,如果重復,則自動返回既有的鍵。

考慮到上述情形,我們使用redis存儲這些對應關(guān)系。使用Gin框架作為路由和控制器,提供對外的API訪問。

核心函數(shù)

計算機中常見的2進制,8進制,10進制,16進制,我們此處需要使用62個字符,循環(huán)表示一個整數(shù),那么可稱之為62進制。

下面使用go語言實現(xiàn)這個函數(shù),用于將任意的整數(shù)(uint64)轉(zhuǎn)換為(0-9A-Za-z)的字符串。

需要注意,基礎(chǔ)的方法,就是循環(huán)取余數(shù),根據(jù)進制字典,索引相應的字符,然后將各個余數(shù)拼接出來,就是結(jié)果。

這個計算方法,與2進制,8進制,原理是相同的。

由于字典比較長,有62個鍵值對,我們僅列出一部分。

上述函數(shù)的轉(zhuǎn)換結(jié)果,類似于6489264001=75ai0p

功能規(guī)劃

下面是對于系統(tǒng)路由,創(chuàng)建短鏈接,以及使用短鏈接訪問目標網(wǎng)址的方法。

1-規(guī)劃路由

路由比較簡單,一共2個,一個POST方法,生成短鏈接;一個是GET方法,訪問短鏈接。

代碼如下:

2-引入redis并初始化

為了方便演示,我們使用redis存儲鍵值,并設(shè)置expire時間。

"github.com/gin-gonic/gin" "github.com/go-redis/redis/v7"

我們使用go-redis提供的接口操作redis數(shù)據(jù)庫。

下面是全局的

redis.Client

對象生成,和初始化函數(shù)。

這樣做的好處是,我們?nèi)侄伎梢允褂米兞縭db調(diào)用方法操作redis鍵值。

3-實現(xiàn)POST路由方法:add

本函數(shù)用于接收form表單數(shù)據(jù),生成一個全局唯一的hash,作為鍵,存入redis,設(shè)置值和過期時間。

代碼如下:

本段我們使用了一個getCounter函數(shù),這是設(shè)置在redis內(nèi)的鍵,將其每次請求創(chuàng)建的時候,自增+1,可保證無重復。根據(jù)這個計數(shù)器,我們調(diào)用helper的DecToAny方法,將其轉(zhuǎn)化為62進制的字符串,作為全局唯一的hash值。

下圖是getCounter的定義:

特別注意的是,helper包,就是我們在“核心函數(shù)”部分定義的函數(shù)。在主函數(shù)體內(nèi)引用。

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

本函數(shù)主要用于使用上一節(jié)接口生成的短鏈接,進行訪問,并自動重定向到目標網(wǎng)址。

代碼如下:

對于不存在的短鏈接,或者redis獲取失敗,返回錯誤信息。

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

測試

我們使用curl工具,測試上述兩個接口。

首先,使用POST表單提交數(shù)據(jù):

curl-s-XPOST-d"target=https://httpbin.org/ip"-d"expire=600"http://localhost:9090/

上述方法,我們提交了兩個參數(shù),命中路由之后,會訪問上一節(jié)第3條的add方法,并生成一個短鏈接網(wǎng)址。返回JSON格式數(shù)據(jù)如下:

{"message":"ok","short_url":"http://localhost:9090/75ai0r","status":1}

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

接著,我們在使用curl訪問這個鏈接,看是否發(fā)生重定向。截圖如下:

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

最后,故障測試。訪問一個不存在的hash,看是否排除異常信息。截圖如下:

可以看到,執(zhí)行了錯誤返回信息。

結(jié)語

以上我們使用GO語言框架Gin實現(xiàn)了兩個路由,并使用redis管理短鏈接。核心函數(shù)使用helper包管理,經(jīng)過測試,實現(xiàn)了短網(wǎng)址的功能。

以上代碼在本地測試通過,也可部署到線上服務器對外開發(fā)端口,提供服務,效果是一樣的。

希望通過這個流程,使大家對于短網(wǎng)址的知識,有一些了解,并能根據(jù)自身的編程能力,創(chuàng)作出更好用的短網(wǎng)址服務。

Happycoding:-)

【本文由@程序員小助手發(fā)布,持續(xù)分享編程與程序員成長相關(guān)的內(nèi)容,歡迎關(guān)注】

有哪些免費的素材網(wǎng)站或軟件

PS素材下載網(wǎng)站包括:昵圖網(wǎng)、素材天下、筆秀網(wǎng)、懶人圖庫、站酷網(wǎng)、素材公社、匯圖網(wǎng)、素材之家、我圖網(wǎng)、智圖網(wǎng)、千圖網(wǎng)、視覺中國、素材庫、我圖網(wǎng)、三聯(lián)。希望能幫助到你

從哪個網(wǎng)站能夠下載免費的photoshop

謝邀。

自己學習還是很多的,網(wǎng)上都可以用,但是修改后上傳當自己作品奧。

假如是無版權(quán)的,可以去pixabay這個網(wǎng)站去看看,都是無版權(quán)圖片

在哪里下載歌曲免費

1、《咪咕音樂》

一款主打免費下載歌曲的超優(yōu)質(zhì)音樂下載app,內(nèi)有海量高音質(zhì)音樂一鍵下載。

2、《千千音樂》

作為一款綜合了超多功能的音樂app,免費下載音樂到你的手機里也是它的強項,專注于音樂下載功能,超多高音質(zhì)歌曲批量下載,可謂是每一個手機必備軟件。

3、《尼酷音樂》

每一個愛好聽音樂的人都會下載的音樂app,多種音樂分類盡享其中,新生代潮流、節(jié)奏搖滾,或者是熱情奔放的電音。在這個app里,你能無限暢想你的所聽所想。

網(wǎng)站免費制作app的軟件有哪些

網(wǎng)上很多免費的,例如pageadmincms、discua都是不錯,直接下載就可以啦。

。做起網(wǎng)站、APP都非常方便。。。

看網(wǎng)站免費的軟件app

《UC瀏覽器》

功能包羅萬象,資訊、視頻、小說、網(wǎng)盤功能統(tǒng)統(tǒng)都有。平臺貼心設(shè)計無痕瀏覽模式,保護個人隱私。還具備省流模式,節(jié)省30%流量,即使沒有Wi-Fi,也能隨心搜索,不怕流量超量。

關(guān)于免費制作網(wǎng)站軟件和如何制作自己的網(wǎng)站的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

主站蜘蛛池模板: 五月六月综合欧美网站| 狠狠色丁香婷婷综合激情| 色综合久久综精品| 亚洲欧洲日韩国产综合在线二区| 一本色道久久综合狠狠躁| 色综合网天天综合色中文男男| 青青热久久综合网伊人| 久久婷婷五月综合国产尤物app| 日本丶国产丶欧美色综合| 国产巨作麻豆欧美亚洲综合久久 | 综合国产在线观看无码| 国产成人亚洲综合无码精品| 色综合久久夜色精品国产| 亚洲欧美日韩国产综合在线| 青青草原综合久久大伊人| 亚洲综合久久久| 激情综合丁香五月| 久久综合九色综合欧美狠狠| 久久综合88熟人妻| 色综合AV综合无码综合网站| 亚洲综合精品香蕉久久网| 91精品一区二区综合在线| 色99久久久久高潮综合影院| 丁香婷婷综合网| 久久综合给久久狠狠97色| 青青综合在线| 久久综合久久性久99毛片| 久久婷婷综合中文字幕| 色综合久久久久综合体桃花网| 久久综合日本熟妇| 色噜噜狠狠狠综合曰曰曰| 欧美日韩国产综合一区二区三区| 欧美日韩一区二区综合| 久久久久亚洲av综合波多野结衣| 亚洲人成综合网站7777香蕉| 亚洲日韩在线中文字幕综合 | 欧美综合在线观看| 亚洲综合一区二区精品导航| 国产亚洲精品精品国产亚洲综合| 国产欧美日韩综合AⅤ天堂| 欧美伊人久久大香线蕉综合|