发展历史
2000年之前,到处寄生于免费个人主页空间的大杂烩,有点像今天的Blog。2000年4月,启用.cn域名。只不过,其实最初其实是想做一个书评网站。那时候我还很爱读书,网站名叫“书途”。
2000年7月,很快忍不住加入了很多自己喜爱的元素,除了DivX之外,还有DVD封面、DC封面、DC游戏、漫画的下载。之后不久又开始加入视频技术製作文章和软体。
2001年9月,开始加入字幕下载的部分。主要还是从DVD上Rip下来的字幕,很多字幕翻译质量都不高。此时已经基本停止维护封面、游戏、漫画和电影下载的部分。
2002年,开始出现自主原创翻译。在此特别向长期以来翻译和发布字幕的贡献者们致敬。
2003年7月,启用新域名。
2004年9月,因为生活和工作的原因,没有足够的精力维护文档和软体更新。好在字幕的自助上传和下载系统已经稳定,就像终结者里面的天网那样,不用人管理也可以运行。
2005年12月,长期积累的大量字幕和每天的海量访问与搜寻令伺服器不堪重负,几乎每天晚上都像当机一样。连自己也看不下去了,终于决定进行一次推倒重来的大改版。
2014年11月22日,正式宣布关闭。
财务状况
射手网是一个纯粹的个人网站,因此也没有资本更没有运营经费。
在2006年之前,所有伺服器均是友人帮助提供,其余网路费和运营经费由站长自掏腰包。期间曾启用海外paypal的捐款通道,不过历史上收到的捐款,一只巴掌就数得过来。乾脆取消了。
2006年改版之后,网站启用GoogleAdsense,虽然点击不高,总算开始有些收入,主要用于弥补网路频宽费用。未来盈余希望可以满足添置资料库和Web伺服器的需要。负载均衡 射手网在Web服务上最大的特点,也是最大的困难,就是在极度缺乏经费的情况下,只能靠朋友“借”伺服器。因此,伺服器配置不理想、可用的伺服器少、难以稳定运行、地理位置分散、网路条件参差不齐,难以承受庞大的访问量负载是最大的困难。
2006年改版后,射手网的整个系统将静态Web伺服器,和其他下载伺服器、搜寻资料库、计数器模组分开。带来的好处不仅是可以扩张负载能力应付巨量访问请求。更有趣的是,即使其中部分伺服器当机,网站的其他模组仍然可以不受影响,可以继续访问和浏览。档案存储、hash与“安全”下载 另外一个长期困扰射手网的问题是,中文、异体档案名称的存储障碍。射手网的伺服器空间都不大,所以所有的档案常常去要分配到不同的伺服器上存储。这里就有个非常严重的问题,每个系统的档案名称编码并不相同,多数是GB2312,但是也有ISO或BIG5或UTF-8的可能。港台朋友上传的字幕可能还有繁体字或异体字,常常造成档案名称存储乱码,最终无法下载。同时由于Windows和Linux的命名规则不同,有时候Windows下被允许的档案名称,在Linux下会完全不被接受而造成档案丢失。
为了解决这个问题,2006改版后的系统,採用了全新的档案存储方式。所有的档案全都不再按原档案名称存储,而是使用一个唯一的目录+hash串码来存储。仅在收到用户下载请求时,根据需要移动(Link)到下载快取区供下载。这也是为什么新版的射手网採用hash码下载而且下载有了时间限制。而“安全”下载方式,就是提供一个不包含中文字元的档案名称来给使用不同编码的作业系统浏览器的人们来下载,以免一些用户因为档案名称乱码而出现下载不到档案的情况。有些人以为这是为了防止盗链,其实站长才没有必要为了这么小气的原因花这么大力气做一套全新的档案存储系统。页面静态化、XML和Ajax 为了应付大量的页面请求,自然需要对页面静态化。改版最初,并没有想到用XML和Ajax。但是渐渐的,传统的静态页面方法展现弊端——哪怕是对页面布局做一点微小的修改,就要花费大量时间重新生成几十万个页面。对于经常要对页面作微调的我,实在是万分痛苦。更何况伺服器负载资源已经非常紧张,每次重建网站的开销也令人无法承受。很快,在现实的压迫下,整个系统转向XML+Ajax。
XML+Ajax的优势是静态级别的负载,做到动态页面的效果。使用静态XML+Ajax之后,不夸张地说,射手网的负载开销下降到原来的1/50-1/100,鬆了一大口气。唯一的遗憾是浏览器之间对Ajax的实现方式总有细微的差别,由此针对某些浏览器,带来不少兼容问题。Linux\FreeBSD vs. Windows 所有的射手网伺服器里面,没有一台使用Windows,全部採用*nix架构的伺服器。未来也不会使用Windows的伺服器,因此请不要来Email提一些只会在Windows伺服器上发生的疑问——99.9%的病毒都是为Windows设计的,而且Windows的病毒不能在*nix系统上运行。档案上传过滤系统 不知道几时起,病毒、木马、流氓软体的门槛这么低。有些人有点聪明才智,就爱往这种事情上用。在上传档案时夹杂病毒、木马,当真困扰了射手网好几个星期。解决方式就是在伺服器上加挂zip和rar支持,检查每个上传档案中,是否包含有可能带来危险的执行档或病毒载体。一旦发现、不仅删除档案,同时记录上传IP存档+Ban。举报系统 射手网是个个人网站,因此不光伺服器资源紧张,而且人力资源也异常紧张——只有一个人。因此难以一一审核上传的档案。所以诞生了举报系统。举报系统的工作流程是这样的,用户发现并举报后,系统先作加权判断,之后再定期检查审核,删除或者恢复。
下载方式
档案伺服器、域名和DNS
射手网採用动态分散式的档案服务。当下载档案时,浏览器将需要调用下列域名:
file0.shooter.cn file1.shooter.cn ... (电信)
cncfile0.shooter.cn cncfile1.shooter.cn ... (网通)
edufile0.shooter.cn edufile1.shooter.cn ... (教育网)
能否正常解析这些域名至正确的IP位址,关係着能否正常访问档案伺服器并下载档案。
检查您的系统能否正确解析这些域名,可以使用nslookup命令。方法是通过“开始”选单,选择“运行...” -> CMD 进入命令行模式,输入 nslookup file0.shooter.cn。 看看系统是否可以正确获得解析IP。
如果系统DNS无法正确获得IP,也可以手动通过修改系统hosts档案,强行为域名指定IP。
中文档案名称与“备选模式”
默认下载模式并没有过滤中文档案名称,而中文档案名称也常常是导致无法正常下载档案的重要原因。这是因为各个OS、伺服器和浏览器对网址URL中的中文处理方式都不同。例如繁体系统可能会把中文编码为big5传送,简体系统则会使用gb2312,而比较新的浏览器可能会使用UTF-8,有的下载工具则可能不对中文进行url编码。这样一来,儘管是完全相同的中文文字,对于传送网路请求来说,却有可能变化为4-6种不同的可能。而对伺服器来说,只能接受其中的一种。所以,中文档案名称也是导致无法正常下载的主要原因。
这也就是为什么射手网有个“备选模式”的下载方式。“备选模式”会过滤掉档案名称中的中文文字,将“ABC中文.rar”变换为“ABC.rar”的url以供下载,这样虽然损失了档案名称中可能包含的说明信息,但是却可以保证可以正常下载。
关于报告无法跟蹤的下载问题
时常有用户Email来报告“某某影片”无法下载,或者“某某软体”无法下载。
这样做带来的问题是,同一部影片或者同一个软体,可能同时有很多不同的版本在提供下载。如果只是含糊的报告,我也无法找到出问题的档案服务。因此,当遇到无法下载时,请提供不能下载的档案ID,或档案URL例如 “http://shooter.cn/file/?fileid=12345”。
什么是hash过期
射手网的档案下载系统的主要设计目的主要是为了,可以无限扩展至多个或许配置并不高的伺服器均衡工作,同时又有较高的免维护性。
射手网的伺服器通常硬碟都不大,所以下载流程大致是这样:1. 主伺服器收到下载请求,针对该档案生成hash码作为ID,同时命令档案伺服器準备该档案;2. 用户访问档案伺服器并提供hash码ID;3. 档案伺服器将对应的档案调入伺服器上的下载目录,并供下载;4. hash过期后,将对应档案清出档案下载目录。
採用这样的下载流程主要是为了在伺服器空间有限的情况下,有控制的最大限度的合理利用资源。但是这也带来一个附加条件,就是一个hash码是有时限的,如果一个hash码的生命期已经结束,就会档案伺服器就会提示hash码已经过期而不能下载,而需要重新回到网站请求档案并获得新的下载连结(部分浏览器可能会快取网页连结而使用户得到的是旧hash码而导致无法下载,此时可以通过清空浏览器快取或刷新网页解决)。
主要事件
正式关闭
2014年11月22日,射手网站长沈晟在公告中称“我所希望射手网所具有的价值,就是能令更多人跨越国家的樊篱,了解世界上不同的文化。如果这个网站有帮到人,我就已经很满足了。但是,需要射手网的时代已经走开了。因此,今天,射手网正式关闭。”
2014年12月17日,国家着作权局公布射手网关停。

















