国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

鏈接縮短 短鏈接 長(zhǎng)鏈接轉(zhuǎn)為短鏈接

這篇具有很好參考價(jià)值的文章主要介紹了鏈接縮短 短鏈接 長(zhǎng)鏈接轉(zhuǎn)為短鏈接。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

核心原理

長(zhǎng)鏈接轉(zhuǎn)為短鏈接的核心原理是: 將短鏈接與原始長(zhǎng)鏈接做一個(gè)映射,訪問(wèn)短鏈接的時(shí)候,通過(guò)重定向的方式轉(zhuǎn)到長(zhǎng)鏈接。

應(yīng)用場(chǎng)景

比如分享功能,查看分享信息的原始鏈接通常是很長(zhǎng)的,直接發(fā)給用戶,體驗(yàn)不是很好,這時(shí)候就可以將其映射為一個(gè)短鏈接再發(fā)給用戶。
又比如我們熟知的百度網(wǎng)盤分享文件,雖然細(xì)節(jié)有所差異,但核心原理都是如此。

長(zhǎng)短鏈接映射表結(jié)構(gòu)核心字段設(shè)計(jì)

字段名 字段描述
code 短鏈接代碼
biz_type 業(yè)務(wù)類型
biz_no 業(yè)務(wù)編號(hào)
origin_link 原始鏈接

除了這些核心字段外,還可以根據(jù)業(yè)務(wù)需求設(shè)計(jì)一些輔助字段。

核心字段說(shuō)明

code-短鏈接代碼: 用于與短鏈接域名拼接成短鏈接的編號(hào),比如code是“123456”,域名是“share.baidu.com”,則完整的短鏈接為“https://share.baidu.com/123456”;
biz_type-業(yè)務(wù)類型: 原始鏈接的內(nèi)容屬于哪個(gè)業(yè)務(wù),比如分享的是一篇隨筆;
biz_no-業(yè)務(wù)編號(hào): 原始鏈接的內(nèi)容所屬業(yè)務(wù)的編號(hào), 比如分享的隨筆的隨筆編號(hào);
origin_link-原始鏈接: 訪問(wèn)短鏈接,會(huì)重定向到此原始鏈接。

實(shí)現(xiàn)邏輯

總體步驟

  1. nginx配置短鏈接重定向到【Step 2】的接口
  2. 產(chǎn)品提供根據(jù)短鏈接代碼重定向原始鏈接的接口(根據(jù)短鏈接代碼查詢?cè)兼溄硬⒅囟ㄏ颍?br> 之所以有【Step 1】,是因?yàn)槎替溄哟a與原始鏈接的映射存在數(shù)據(jù)庫(kù)中,需要產(chǎn)品提供服務(wù)從數(shù)據(jù)庫(kù)中根據(jù)【code】查詢出【origin_link】之后做重定向,而程序提供的查詢接口通常包含了一些其它信息(比如接口域名是“server.baidu.com”,而查詢接口的uri可能是“/api/share/v1/view/{code}”),仍然不夠短。

邏輯

以實(shí)際的例子來(lái)說(shuō)明,下面先列舉過(guò)程中所有需要使用到的素材:

  1. 短鏈接代碼(code):8lq4Sb
  2. 短鏈接域名:share.hulujianyi.com
  3. 程序接口域名:server.hulujianyi.com
  4. 程序接口URI以及參數(shù):/hulu-common/api/share/v1/view/?shareCode=$code
  5. 原始鏈接(origin_link): https://patient-h5.hulujianyi.com/#/patientDetail?code=8lq4Sb&bizType=2&bizNo=3&t=1693298372310&shareSource=3&shareUserId=7&sign=f4Y9hK0Im23MbzMn%2Fx3st6FgGQO8FAXABSNEuptbXsXxBGj4CbUIpWeY2yGlwMwADBRs9tiYy2Zh xVkPU7Gjw5CP0zyitnH1GQ48zetfM9XdjYB4MVkowgr1tG2WMCmavggi1Y1Z0KI1GPLASeXOaSQF IYtOo2gHOhldr%2BGHnc4%3D&e=1694594372310
    根據(jù)以上信息,則整體邏輯為:
  6. 訪問(wèn)內(nèi)容的原始鏈接為【素材5】,而分享到用戶的是由【素材1】和【素材2】拼出來(lái)的短鏈接【https://share.hulujianyi.com/8lq4Sb】;
  7. nginx配置短鏈接轉(zhuǎn)發(fā)到由【素材3】和【素材4】拼出來(lái)的程序提供的接口【https://server.hulujianyi.com/hulu-common/api/share/v1/view/?shareCode=8lq4Sb】;
  8. 接口的功能是根據(jù)請(qǐng)求參數(shù)shareCode,也即是短鏈接代碼code,從數(shù)據(jù)庫(kù)中查詢出原始鏈接,然后做重定向;
  9. 所以整體流程為:訪問(wèn)短鏈接 -> nginx重定向到接口 -> 接口重定向到原始鏈接

根據(jù)以上流程,下面貼出一下關(guān)鍵性配置和代碼:

  1. nginx配置轉(zhuǎn)發(fā)
# 分享配置
server{
    server_name share.hulujianyi.com;

    access_log /usr/local/nginx/logs/access.log main;

    listen 80;
    listen 443 ssl;
    include cert.conf; # 這里是引入的ssl的證書(shū)配置

    location ~ ^/(?<code>[^/]+)/?$ {
        return 302 "https://server.hulujianyi.com/hulu-common/api/share/v1/view/?shareCode=$code";
    }
}

配置中,正則表達(dá)式 ^/(?<code>[^/]+)/?$ 捕獲 URL 中的URI,在演示例子中截取到的是8lq4Sb,并將其存儲(chǔ)在名為 code 的變量中。然后在配置中使用 code 變量,例如在 rewrite 指令中進(jìn)行重定向。
2. 接口根據(jù)code查詢?cè)兼溄雍椭囟ㄏ虻膫未a文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-679718.html

    @GetMapping(value = "/view")
    public void view(@RequestParam("shareCode") String shareCode, HttpServletResponse res) throws IOException {
        try {
            String link = iShareService.viewLink(shareCode);// 這里是調(diào)用的根據(jù)code從數(shù)據(jù)庫(kù)查詢?cè)兼溄拥姆椒?            res.sendRedirect(link);
        } catch (BizException e) {
            LOGGER.warn(ExceptionUtil.exceptionStackTraceToString(e));
            super.error(res, e);
        } catch (Exception e) {
            LOGGER.warn(ExceptionUtil.exceptionStackTraceToString(e));
            super.error(res, null);
        }
    }
  1. 最終訪問(wèn)的原始鏈接打開(kāi)的內(nèi)容,有一些業(yè)務(wù)校驗(yàn),則屬于另一套體系,這里不做說(shuō)明。

到了這里,關(guān)于鏈接縮短 短鏈接 長(zhǎng)鏈接轉(zhuǎn)為短鏈接的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【音視頻原理】圖像相關(guān)概念 ⑥ ( YUV 與 RGB 之間的轉(zhuǎn)換 | YUV444 顏色編碼格式 轉(zhuǎn)為 RGB 格式 | RGB 顏色編碼格式 轉(zhuǎn)為 YUV444 格式 )

    YUV 與 RGB 顏色格式之間進(jìn)行轉(zhuǎn)換時(shí) , 涉及一系列的數(shù)學(xué)運(yùn)算 ; YUV 顏色編碼格式 轉(zhuǎn)為 RGB 格式 的 轉(zhuǎn)換公式 取決于 于 YUV 的具體子采樣格式 : YUV444 YUV422 YUV420 YUV444 格式 轉(zhuǎn)為 RGB 格式 的 轉(zhuǎn)換公式如下 : R = Y + 1.13983 * (V - 128) G = Y - 0.39465 * (U - 128) - 0.58060 * (V - 128) B = Y + 2.03211 * (U

    2024年01月24日
    瀏覽(38)
  • 鏈接器工作原理

    鏈接器工作原理

    ?鏈接器解析符號(hào)引用的方法是將每個(gè)引用與它輸入的可重定位目標(biāo)文件的符號(hào)表中的一個(gè)確定的符號(hào)定義關(guān)聯(lián)起來(lái),可重定位目標(biāo)文件的符號(hào)表在隨筆ELF可重定位目標(biāo)文件 - mjy66 - 博客園 (cnblogs.com)中有提到,以ELF格式的目標(biāo)文件舉例,.symtab節(jié)就是其符號(hào)表。 ?在解析符號(hào)

    2024年02月08日
    瀏覽(16)
  • C 語(yǔ)言->編譯和鏈接實(shí)現(xiàn)原理

    C 語(yǔ)言->編譯和鏈接實(shí)現(xiàn)原理

    ?作者簡(jiǎn)介:大家好,我是橘橙黃又青,一個(gè)想要與大家共同進(jìn)步的男人???? ??個(gè)人主頁(yè):橘橙黃又青-CSDN博客 今天學(xué)習(xí) :淺學(xué)編譯和鏈接內(nèi)部實(shí)現(xiàn)原理 前提:本文是在gcc編譯環(huán)境下學(xué)習(xí),目前只是淺學(xué)習(xí) 在ANSI C的任何?種實(shí)現(xiàn)中,存在兩個(gè)不同的環(huán)境。 第1種 是翻譯環(huán)

    2024年01月20日
    瀏覽(24)
  • RPC核心原理詳解

    RPC核心原理詳解

    RPC的全稱是Remote Procedure Call,即遠(yuǎn)程過(guò)程調(diào)用。簡(jiǎn)單解讀字面上的意思,遠(yuǎn)程肯定是指要跨機(jī)器而非本機(jī),所以需要用到網(wǎng)絡(luò)編程才能實(shí)現(xiàn),但是不是只要通過(guò)網(wǎng)絡(luò)通信訪問(wèn)到另一臺(tái)機(jī)器的應(yīng)用程序,就可以稱之為RPC調(diào)用了?顯然并不夠。 我理解的RPC是幫助我們屏蔽網(wǎng)絡(luò)編程

    2024年02月11日
    瀏覽(18)
  • Elasticsearch 核心概念與原理

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) Elasticsearch是一個(gè)開(kāi)源、分布式、RESTful搜索和分析引擎。它的主要特性如下: 分布式特性:Elasticsearch集群中的節(jié)點(diǎn)彼此協(xié)同工作,形成一個(gè)整體,從而提供橫向擴(kuò)展性; RESTful API接口:Elasticsearch提供了豐富的基于HTTP協(xié)議的API接口,支持全文檢索

    2024年02月07日
    瀏覽(21)
  • Android 熱修復(fù)核心原理

    Android 熱修復(fù)核心原理

    dexopt 在 Dalvik 中虛擬機(jī)在加載一個(gè)dex文件時(shí),對(duì) dex 文件 進(jìn)行 驗(yàn)證 和 優(yōu)化的操作,其對(duì) dex 文件的優(yōu)化結(jié)果變成了 odex(Optimized dex) 文件,這個(gè)文件和 dex 文件很像,只是使用了一些優(yōu)化操作碼。 dex2oat ART 預(yù)先編譯機(jī)制 ,在安裝時(shí)對(duì) dex 文件執(zhí)行dexopt優(yōu)化之后再將odex進(jìn)行 AO

    2024年02月11日
    瀏覽(19)
  • 字典核心底層原理

    字典核心底層原理

    字典對(duì)象的核心是散列表。散列表是一個(gè)稀疏數(shù)組(總是有空白元素的數(shù)組),數(shù)組的每個(gè)單元叫做bucket。每個(gè)bucket有兩部分:一個(gè)是鍵對(duì)象的引用,一個(gè)是值對(duì)象的引用。 由于,所有bucket結(jié)構(gòu)和大小一致,我們可以通過(guò)偏移量來(lái)讀取指定bucket。 假設(shè)字典a對(duì)象創(chuàng)建完后,數(shù)

    2024年02月04日
    瀏覽(14)
  • Kafka的核心原理

    Kafka的核心原理

    目錄 Tpoic的分區(qū)和副本機(jī)制 分區(qū) 副本 ?消息存儲(chǔ)機(jī)制和查詢機(jī)制 消息存儲(chǔ)機(jī)制 ? log文件和index文件的解析 ?index文件內(nèi)容基本結(jié)構(gòu) 查詢機(jī)制 Kafka中生產(chǎn)者數(shù)據(jù)分發(fā)策略 隨機(jī)分發(fā)策略 指定分區(qū)策略 Hash取模策略 自定義分區(qū)策略 輪詢分發(fā)策略 和 粘性分發(fā)策略 Kafka消費(fèi)者的負(fù)

    2024年01月17日
    瀏覽(18)
  • 【C++】多態(tài) ④ ( 多態(tài)實(shí)現(xiàn)原理 | C++ 聯(lián)編概念 | 鏈接屬性 | 內(nèi)部鏈接 | 外部鏈接 | 聯(lián)編與鏈接 | 靜態(tài)聯(lián)編 | 動(dòng)態(tài)聯(lián)編 | 聯(lián)編 與 virtual 關(guān)鍵字 )

    【C++】多態(tài) ④ ( 多態(tài)實(shí)現(xiàn)原理 | C++ 聯(lián)編概念 | 鏈接屬性 | 內(nèi)部鏈接 | 外部鏈接 | 聯(lián)編與鏈接 | 靜態(tài)聯(lián)編 | 動(dòng)態(tài)聯(lián)編 | 聯(lián)編 與 virtual 關(guān)鍵字 )

    \\\" 聯(lián)編 \\\" Linkage 指的是 將 程序模塊 和 代碼 互相關(guān)聯(lián)的過(guò)程 , 將不同源文件中的 同名函數(shù) 或 變量 進(jìn)行鏈接 ; 在 C++ 語(yǔ)言中 , 每個(gè) 函數(shù) 或 變量 都有一個(gè) 鏈接屬性 , 該鏈接屬性決定了該 函數(shù) 或 變量 是否可以在其他源文件中使用 ; 聯(lián)編 是通過(guò) 聲明函數(shù)或變量 的 鏈接屬性

    2024年02月05日
    瀏覽(19)
  • React核心原理與實(shí)際開(kāi)發(fā)

    React核心原理與實(shí)際開(kāi)發(fā)

    學(xué)習(xí)目標(biāo) React是啥? 官方定義:將前端請(qǐng)求獲取到的 數(shù)據(jù) 渲染為 HTML視圖 的 JavaScript庫(kù) 。 直接創(chuàng)建react,使用初始化會(huì)創(chuàng)建package.json 再安裝 使用純JS創(chuàng)建ReactDOM(元素) React.createElement()方法使用不是很靈活,知道就好; ReactDOM.render()方法渲染react元素很重要?。?!使用起來(lái)

    2024年02月07日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包