问题,服务器如何统计软件真实的下载量(注意,是真实的)?

时间:2021-11-26 17:16:49
软件下载完成后,服务器才真正统计,如果客户点击了取消或者中途停止不算。

用asp和php的方法不用说了,asp功能没有这么强,统计不到这么精确,不能监控客户端行为。

我想,要解决这个问题必须要从服务器的层面来解决了,这个应该没有不能办到的,服务器和客户端通讯,下载的文件分成n个包传送,文件传送结束后,服务器肯定知道的。

各位朋友可以说说自己的观点,不一定要能完全解决我的问题,只要有知道往哪个方面入手即可,比如说在iis上面可以这样解决啊,apache上可以那样解决,或者用cgi,或者是jsp可以解决什么的,只要有这方面的信息,都欢迎涉入。

我现在只是想要知道解决的方法,至于网站服务器类型不限,语言不限。

就只有50分,希望大家说说自己的看法,交流下经验,谢谢。

6 个解决方案

#1


先让用户下载个下载客户端,由下载客户端和服务器联系,这样统计的效果肯定真实

#2


我给你讲一下IIS6的做法。

凡是成功下载成功的,你就能在IIS日志里面找到一条相应的status为200的纪录。你只要统计这个日志里面你的软件的文件名(如XXX.exe)向对应的200的记录条数,就可以实现你的需求了。

此外,根据这一条日志记录里面"Bytes Sent"的大小,你可以进一步确认是否完全下载完毕了。
http://technet.microsoft.com/en-us/library/cc786596(WS.10).aspx

如果下载到一半用户取消了或者网络断掉了,你可以在HttpErr日志里面发现一条Connection_Dropped记录
http://support.microsoft.com/kb/937692

#3


引用 1 楼 myrroom 的回复:
先让用户下载个下载客户端,由下载客户端和服务器联系,这样统计的效果肯定真实


l楼的朋友,谢谢你的想法,不过这样的方法会被客户端认为是有木马行为而屏蔽,我以前好像试过,什么瑞星,卡巴之类的门神根本就不让你发送http协议。

#4


引用 2 楼 archu 的回复:
我给你讲一下IIS6的做法。

 凡是成功下载成功的,你就能在IIS日志里面找到一条相应的status为200的纪录。你只要统计这个日志里面你的软件的文件名(如XXX.exe)向对应的200的记录条数,就可以实现你的需求了。

 此外,根据这一条日志记录里面"Bytes Sent"的大小,你可以进一步确认是否完全下载完毕了。
http://technet.microsoft.com/en-us/library/cc786596(WS.10).aspx

 如果下载到一半用户取消了或者网络断掉了,你可以在HttpErr日志里面发现一条Connection_Dropped记录
http://support.microsoft.com/kb/937692


2楼的朋友,这个方法可以实现,虽然的确没有什么技术要求,但非常感谢你的回答。

但是如果我们的机器是在虚拟主机或是网上租用的主机,没有这么容易得到iis日志的情况下,应该如何办呢?

#5


很抱歉,没办法。
文件的下载是由web服务程序所控制的,比如w3wp.exe把数据发给网络层。
你连IIS日志都无法得到的话,又如何能得到w3wp.exe进程的运行状态呢?那么也就无法得到下载的进行时信息。

谢谢!

#6


学习

#1


先让用户下载个下载客户端,由下载客户端和服务器联系,这样统计的效果肯定真实

#2


我给你讲一下IIS6的做法。

凡是成功下载成功的,你就能在IIS日志里面找到一条相应的status为200的纪录。你只要统计这个日志里面你的软件的文件名(如XXX.exe)向对应的200的记录条数,就可以实现你的需求了。

此外,根据这一条日志记录里面"Bytes Sent"的大小,你可以进一步确认是否完全下载完毕了。
http://technet.microsoft.com/en-us/library/cc786596(WS.10).aspx

如果下载到一半用户取消了或者网络断掉了,你可以在HttpErr日志里面发现一条Connection_Dropped记录
http://support.microsoft.com/kb/937692

#3


引用 1 楼 myrroom 的回复:
先让用户下载个下载客户端,由下载客户端和服务器联系,这样统计的效果肯定真实


l楼的朋友,谢谢你的想法,不过这样的方法会被客户端认为是有木马行为而屏蔽,我以前好像试过,什么瑞星,卡巴之类的门神根本就不让你发送http协议。

#4


引用 2 楼 archu 的回复:
我给你讲一下IIS6的做法。

 凡是成功下载成功的,你就能在IIS日志里面找到一条相应的status为200的纪录。你只要统计这个日志里面你的软件的文件名(如XXX.exe)向对应的200的记录条数,就可以实现你的需求了。

 此外,根据这一条日志记录里面"Bytes Sent"的大小,你可以进一步确认是否完全下载完毕了。
http://technet.microsoft.com/en-us/library/cc786596(WS.10).aspx

 如果下载到一半用户取消了或者网络断掉了,你可以在HttpErr日志里面发现一条Connection_Dropped记录
http://support.microsoft.com/kb/937692


2楼的朋友,这个方法可以实现,虽然的确没有什么技术要求,但非常感谢你的回答。

但是如果我们的机器是在虚拟主机或是网上租用的主机,没有这么容易得到iis日志的情况下,应该如何办呢?

#5


很抱歉,没办法。
文件的下载是由web服务程序所控制的,比如w3wp.exe把数据发给网络层。
你连IIS日志都无法得到的话,又如何能得到w3wp.exe进程的运行状态呢?那么也就无法得到下载的进行时信息。

谢谢!

#6


学习