• 短链接生成原理


    提供一个短址服务
    你有没有发现,我们的任务中出现长 URL 就会比较麻烦?如果有一个短址生成器就好了。虽然市面上有很多,但是我们可以重复发明一个轮子,利用这个机会尝试一下简单的 Web 全栈开发。

    任务

    做一个短链接生成器,可以将一个长链接缩短成一个短链接。

    要发车了

     

    发车前,和大家说一下

    如果不想重复的造轮子,想开箱即用,可以使用基于 PHP 的开源软件 YOURLSYOURLS 还可以和 WordPress 整合到一起,功能强大,可扩展性高。

    本文记录了开发短网址系统的整个过程,包括初期的算法调研、模块设计、数据库设计、功能扩展等。

    什么是短链接

     

    就是把普通网址,转换成比较短的网址。比如:这种,在微博这些限制字数的应用里。好处不言而喻。短、字符少、美观、便于发布、传播。

    百度短网址 
    谷歌短网址服务  号称是最快的

     

    原理解析

    当我们在浏览器里输入 http://t.cn/RkCdbRA 

    1. DNS首先解析获得 http://t.cn 的 IP 地址
    2. 当 DNS 获得 IP 地址以后(比如:74.125.225.72),会向这个地址发送 HTTPGET 请求,查询短码 RkCdbRA
    3. http://t.cn 服务器会通过短码 RkCdbRA 获取对应的长 URL
    4. 请求通过 HTTP301 转到对应的长 URL https://share.earnrmb.us 。

    这里有个小的知识点,为什么要用 301 跳转而不是 302 呐?

    301 是永久重定向,302 是临时重定向。短地址一经生成就不会变化,所以用 301 是符合 http 语义的。同时对服务器压力也会有一定减少。
    但是如果使用了 301,我们就无法统计到短地址被点击的次数了。而这个点击次数是一个非常有意思的大数据分析数据源。能够分析出的东西非常非常多。所以选择302虽然会增加服务器压力,但是我想是一个更好的选择。
  • 相关阅读:
    自动化测试(Selenium+python)-环境搭建
    Jenkins默认插件
    Jenkins安装
    jdk环境变量配置
    RobotFramework使用chrome打开浏览器,提示chromedriver.exe停止运行
    Java之获取年月日时分秒字符串
    JavaScript验证输入是否为空
    轮播图简单实现(转载)
    CSS设置元素背景为半透明, 而其中的内容为不透明
    Hibernate的update() 无效
  • 原文地址:https://www.cnblogs.com/keyng/p/13712484.html
Copyright © 2020-2023  润新知