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

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

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

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

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

有沒有免費的短網址工具

我是@程序員小助手,本文從技術角度,對短網址進行深度挖掘。

前言

網上已經有產品,用著還不錯??墒?,作為程序員,從零開始造輪子,開發一個屬于自己的短網址服務器,這想法amazing!

通過本文,讀者可明白短網址的技術原理,以及通過Go語言實現一個短網址服務。

簡明教程

短網址為什么存在?

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

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

從技術原理上說,短網址是一個hash表,用于映射兩個字符串的對應關系。

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

短網址算法

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

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

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億種可能。

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

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

工具準備

分析短網址的特性,包含以下項目:

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

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

核心函數

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

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

需要注意,基礎的方法,就是循環取余數,根據進制字典,索引相應的字符,然后將各個余數拼接出來,就是結果。

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

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

上述函數的轉換結果,類似于6489264001=75ai0p

功能規劃

下面是對于系統路由,創建短鏈接,以及使用短鏈接訪問目標網址的方法。

1-規劃路由

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

代碼如下:

2-引入redis并初始化

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

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

我們使用go-redis提供的接口操作redis數據庫。

下面是全局的

redis.Client

對象生成,和初始化函數。

這樣做的好處是,我們全局都可以使用變量rdb調用方法操作redis鍵值。

3-實現POST路由方法:add

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

代碼如下:

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

下圖是getCounter的定義:

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

4-實現GET方法:visit

本函數主要用于使用上一節接口生成的短鏈接,進行訪問,并自動重定向到目標網址。

代碼如下:

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

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

測試

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

首先,使用POST表單提交數據:

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

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

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

其中,short_url就是短網址。

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

可以看到,執行了301重定向,并給出了目標網址,與我們上述表單想要創建的地址一致。

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

可以看到,執行了錯誤返回信息。

結語

以上我們使用GO語言框架Gin實現了兩個路由,并使用redis管理短鏈接。核心函數使用helper包管理,經過測試,實現了短網址的功能。

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

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

Happycoding:-)

【本文由@程序員小助手發布,持續分享編程與程序員成長相關的內容,歡迎關注】

有哪些免費的素材網站或軟件

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

從哪個網站能夠下載免費的photoshop

謝邀。

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

假如是無版權的,可以去pixabay這個網站去看看,都是無版權圖片

在哪里下載歌曲免費

1、《咪咕音樂》

一款主打免費下載歌曲的超優質音樂下載app,內有海量高音質音樂一鍵下載。

2、《千千音樂》

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

3、《尼酷音樂》

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

網站免費制作app的軟件有哪些

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

。做起網站、APP都非常方便。。。

看網站免費的軟件app

《UC瀏覽器》

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

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

主站蜘蛛池模板: 国产成人综合洲欧美在线| 精品综合久久久久久97| 久久综合九色综合网站| 狠狠色丁香久久婷婷综合蜜芽五月 | 最新狠狠色狠狠色综合| 五月天综合网| 一本色道久久88精品综合| 九月丁香婷婷亚洲综合色| 久久99国产综合精品免费| 狠狠色丁香久久婷婷综合_中| 欧美偷窥清纯综合图区| 天天干天天色综合| 国产AV综合影院| 国产综合色在线视频区| 久久狠狠爱亚洲综合影院| 伊人久久综合无码成人网| 天天综合久久久网| 五月丁香六月综合欧美在线| 欧美综合欧美视频| 色婷婷六月亚洲综合香蕉| 99精品国产综合久久久久五月天 | 久久香蕉综合色一综合色88| 久久综合色老色| 日韩人妻无码一区二区三区综合部 | 五月婷婷综合免费| 国产成人亚洲综合网站不卡| 亚洲综合国产精品第一页| 综合在线免费视频| 少妇人妻综合久久中文字幕| 亚洲国产成人久久综合一| 日韩欧国产精品一区综合无码| 久久综合九色综合97_久久久| 青青青伊人色综合久久| 日本一道综合色视频| 欧美精品色婷婷五月综合 | 色综合久久中文综合网| 亚洲综合在线观看视频| 国产成人AV综合久久| 亚洲国产成人久久综合碰| 久久亚洲综合色一区二区三区| 桃花色综合影院|