在内核中实现URL重定向

URL redirection,或称网址重定向或URL重定向,是指当使用者浏览某个网址时,将他导向到另一个网址的技术。常用在把一串很长的网站网址,转成较短的网址。因为当要传播某网站的网址时,常常因为网址太长,不好记忆;又有可能因为换了网络的免费网页空间,网址又必须要变更,不知情的使用者还以为网站关闭了。这时就可以用网络上的转址服务了。这种方法还可以用在广告推送及拦截上, 最常见的就是电信使用的了。

 

在技术上, URL重定向可以很多种方法实现, 下面介绍其中常用的几种.

方法一:

       通过返回一个简单的HTML页面, 采用自刷新方式,将页面重新引至新URL页面. 示例:

<html><head>

  <meta http-equiv="Refresh" content="0; url=http://www.example.com/">

</head><body>

  <p>Please follow <a href="http://www.example.com/">link</a>!</p>

</body></html>

方法二:

       通过返回一个HTTP refresh header, 进行重定向. 示例:

       HTTP/1.1 200 ok

Refresh: 0; url=http://www.example.com/

Content-type: text/html

Content-length: 78

 

Please follow <a href="http://www.example.com/">link</a>!

方法三:

       通过HTTP 状态码301 Moved Permanently 永久重定向, 示例:

HTTP/1.1 301 Moved Permanently

Location: http://www.example.org/

Content-Type: text/html

Content-Length: 174

 

<html>

<head>

<title>Moved</title>

</head>

<body>

<h1>Moved</h1>

<p>This page has moved to <a href="http://www.example.org/">http://www.example.org/</a>.</p>

</body>

</html>

 

经过个人测试, 发现采用HTTP 状态码301 Moved Permanently方式速度比较快.

 

以下是内核实现源码, 测试的时候有个小bug mac地址填错了, 结果调试了N,还发帖了, 最终自己才发现, 真是惭愧.

参考:

       URL redirection http://en.wikipedia.org/wiki/URL_redirection

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值