背景:近来有一个需求也就是让外包做一个类新浪微博里的短域名功能,而外包给出说是js跳转的,用的是alt里的属性值实现的,让我想起当年我在新浪微博时,正好让一兄弟去做这个短域名的事情,后来就离开了新浪微博,于是有这事儿就了解下呗,其实现方式上有与外包所述有较大出入。
在微博里找个短的Url示例链接如下:http://t.cn/zRM2bLm ,直接贴上google的chrome浏览器里并分析其Http协议头:
请求头和返回如下:
一)Google的Chrome发起请求:
HTTP/1.0 302 Moved Temporarily
Request URL:http://t.cn/zRM2bLm
Request Method:GET
Status Code:302 Moved Temporarily
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Host:t.cn
Proxy-Connection:keep-alive
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1530.2 Safari/537.36
二)服务端返回Location的Url:
Response Headersview source
Age:0
Connection:Keep-Alive
Content-Length:224
Content-Type:text/html;charset=UTF-8
Date:Mon, 21 Oct 2013 02:34:02 GMT
Location:http://www.iheima.com/archives/54668.html
NetAnts:MaxConnection=1
Proxy-Connection:Keep-Alive
Server:weibo
Via:1.1 varnish
X-Varnish:3008712889
三)HTML给用户的展现(一瞬间就过去了,浏览器直接重新定向,几乎看不到的):
这块要快,其实现有可能是通过key=value格式的,如nginx直接代码到某些no-sql存储里实现的才能实现较大并发,
当然对这些url可以实现hash到多台服务器即可实现横向扩展。
这个哥们的redis值得借鉴:http://zjcjack.blog.163.com/blog/static/20283218020130319363715/
在微博里找个短的Url示例链接如下:http://t.cn/zRM2bLm ,直接贴上google的chrome浏览器里并分析其Http协议头:
请求头和返回如下:
一)Google的Chrome发起请求:
HTTP/1.0 302 Moved Temporarily
Request URL:http://t.cn/zRM2bLm
Request Method:GET
Status Code:302 Moved Temporarily
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Host:t.cn
Proxy-Connection:keep-alive
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1530.2 Safari/537.36
二)服务端返回Location的Url:
Response Headersview source
Age:0
Connection:Keep-Alive
Content-Length:224
Content-Type:text/html;charset=UTF-8
Date:Mon, 21 Oct 2013 02:34:02 GMT
Location:http://www.iheima.com/archives/54668.html
NetAnts:MaxConnection=1
Proxy-Connection:Keep-Alive
Server:weibo
Via:1.1 varnish
X-Varnish:3008712889
三)HTML给用户的展现(一瞬间就过去了,浏览器直接重新定向,几乎看不到的):
这块要快,其实现有可能是通过key=value格式的,如nginx直接代码到某些no-sql存储里实现的才能实现较大并发,
当然对这些url可以实现hash到多台服务器即可实现横向扩展。
这个哥们的redis值得借鉴:http://zjcjack.blog.163.com/blog/static/20283218020130319363715/
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/6750/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2013-10-21 10:45
评论列表