CN103167016A - 一种浏览器崩溃数据上传和处理的方法和装置 - Google Patents

一种浏览器崩溃数据上传和处理的方法和装置 Download PDF

Info

Publication number
CN103167016A
CN103167016A CN2013100044378A CN201310004437A CN103167016A CN 103167016 A CN103167016 A CN 103167016A CN 2013100044378 A CN2013100044378 A CN 2013100044378A CN 201310004437 A CN201310004437 A CN 201310004437A CN 103167016 A CN103167016 A CN 103167016A
Authority
CN
China
Prior art keywords
collapse
browser
data
information
serial number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013100044378A
Other languages
English (en)
Other versions
CN103167016B (zh
Inventor
范家鹏
张鹏翼
任寰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201310004437.8A priority Critical patent/CN103167016B/zh
Publication of CN103167016A publication Critical patent/CN103167016A/zh
Application granted granted Critical
Publication of CN103167016B publication Critical patent/CN103167016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种浏览器崩溃数据上传和处理的方法和装置,其中该方法包括:浏览器产生崩溃,通过GET接口将浏览器崩溃基本信息上传给服务器端;接收所述服务器端返回的根据所述崩溃基本信息生成的崩溃序号信息;以及在所述崩溃序号信息指示允许上传崩溃数据的情况下,从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据。根据本发明的实施例,能够将浏览器的崩溃数据快速、安全地递交到服务器端进行保存,为后续的崩溃分析处理做好了准备。

Description

一种浏览器崩溃数据上传和处理的方法和装置
技术领域
本发明涉及互联网技术,尤其涉及一种浏览器崩溃数据上传和处理的方法和装置。
背景技术
当在计算机的网络浏览器中加载网页时,常常由于种种原因使得浏览器反应变得很慢,或者造成浏览器失去响应,甚至会导致计算机无法进行其他的操作,此现象一般被称为浏览器崩溃。
导致浏览器崩溃的原因主要有:内存泄露、网页代码复杂和浏览器的缺陷(bug)、网页数据过多、AJAX的web服务漏洞等等。
以微软公司的Windows操作系统为例,如果在Internet Explorer(IE)中遇到崩溃,自动崩溃恢复功能可以帮助减轻这些崩溃带来的影响,但更关键的是从源头杜绝崩溃的发生。存在多种不同的机制用来收集关于崩溃的信息,其中一种机制就是Windows系统的错误报告机制。
对于选择启用Windows错误报告的用户,IE会在崩溃发生时收集浏览器的状态信息并将该信息封装到一个错误报告中,此信息有助于开发人员发现错误根源并修复崩溃。如果在浏览期间遇到浏览器挂起,IE也会发送错误报告。
上述IE崩溃后的错误报告机制依赖于Windows系统的错误报告机制来上报浏览器的崩溃信息,如果Windows系统的错误报告不可用(例如由于用户未启用,或者系统错误等等原因),就无法上报浏览器的崩溃信息。
发明内容
鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的浏览器崩溃数据上传和处理的方法和装置,即,一种浏览器自身的崩溃数据上传和处理方案。
依据本发明的一个方面,提供了一种浏览器进行崩溃数据上传的方法,包括步骤:浏览器产生崩溃,通过GET接口将浏览器崩溃基本信息上传给服务器端;接收所述服务器端返回的根据所述崩溃基本信息生成的崩溃序号信息;以及在所述崩溃序号信息指示允许上传崩溃数据的情况下,从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据。
可选地,在根据本发明的实施例的浏览器进行崩溃数据上传的方法中,所述浏览器崩溃基本信息的参数至少包括:崩溃公共标识、命令行、产品名称、自定义信息、以及数据校验中的一种。
可选地,在根据本发明的实施例的浏览器进行崩溃数据上传的方法中,所述崩溃公共标识至少包括以下参数中的一种:进程类型、线程类型、崩溃信息、崩溃类型、浏览器主程序版本、操作系统版本、浏览器内核程序版本、flash版本、第一层崩溃模块名称、第一层崩溃模块版本、浏览器所在设备的唯一标识号、浏览器崩溃当前进程的标识号。
可选地,在根据本发明的实施例的浏览器进行崩溃数据上传的方法中,在所述浏览器产生崩溃、通过GET接口将浏览器崩溃基本信息上传给服务器端的步骤之前,对于所述产品名称参数所指示的不同的浏览器,利用相应的密钥对于浏览器的合法性进行校验。
可选地,在根据本发明的实施例的浏览器进行崩溃数据上传的方法中,在所述浏览器产生崩溃,通过GET接口将浏览器崩溃基本信息上传给服务器端的步骤之前,利用所述数据校验参数对于所述崩溃基本信息的合法性和完整性进行校验。
可选地,在根据本发明的实施例的浏览器进行崩溃数据上传的方法中,如果所述崩溃序号信息的值大于预先定义的阈值,则指示允许上传崩溃数据。
可选地,根据本发明的实施例的浏览器进行崩溃数据上传的方法还包括:在所述接收所述服务器端返回的根据所述崩溃基本信息生成的崩溃序号信息的步骤的同时,接收服务器端返回的用于指示所述崩溃序号信息来自合法的服务器端的校验信息。
可选地,根据本发明的实施例的浏览器进行崩溃数据上传的方法还包括:在所述崩溃序号信息指示允许上传崩溃数据的情况下、从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据的步骤之前,对于所述浏览器的合法性以及所述崩溃数据的合法性和完整性进行校验。
可选地,根据本发明的实施例的浏览器进行崩溃数据上传的方法还包括:在所述崩溃序号信息指示允许上传崩溃数据的情况下、从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据的步骤之后,接收服务器端返回的指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息。
可选地,在根据本发明的实施例的浏览器进行崩溃数据上传的方法中,所述崩溃数据是操作系统抓取的二进制格式的崩溃快照,其包括有关部分内存、崩溃线程、线程调用栈的信息、以及操作系统当前的寄存器数据。
可选地,在根据本发明的实施例的浏览器进行崩溃数据上传的方法中,所述自定义信息至少包括以下信息中的一种:关于与浏览器内核线程通信是否发生异常的信息、经过加密的当面激活页面的网址、关于是否开启了图形处理单元加速的信息、关于是否开启了web图形加速的信息。
依据本发明的另一方面,提供了一种对浏览器崩溃数据进行处理的方法,包括步骤:接收从浏览器通过GET接口上传的浏览器崩溃基本信息;根据所述崩溃基本信息生成指示是否允许上传崩溃数据的崩溃序号信息并将其返回给所述浏览器;以及接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据。
可选地,在根据本发明的实施例的对浏览器崩溃数据进行处理的方法中,在所述接收从浏览器通过GET接口上传的浏览器崩溃基本信息的步骤中,丢弃在预先定义的时间段内从相同地址的浏览器再次接收到的浏览器崩溃基本信息。
可选地,在根据本发明的实施例的对浏览器崩溃数据进行处理的方法中,在所述根据所述崩溃基本信息生成指示是否允许上传崩溃数据的崩溃序号信息并将其返回给所述浏览器的步骤中,根据所述崩溃基本信息生成崩溃唯一标识,在所述崩溃唯一标识指示已经接收到与所述崩溃基本信息相对应的预先定义的数目的相同的崩溃数据和/或浏览器主程序版本不在预先定义的版本范围内的情况下,生成指示不允许上传崩溃数据的崩溃序号信息并将其返回给所述浏览器。
可选地,根据本发明的实施例的对浏览器崩溃数据进行处理的方法还包括:在所述接收从浏览器通过GET接口上传的浏览器崩溃基本信息的步骤之后,将所述浏览器崩溃基本信息保存到服务器端的数据队列服务器中,并且从所述数据队列服务器中读取所述浏览器崩溃基本信息并且保存到服务器端的数据库中。
可选地,根据本发明的实施例的对浏览器崩溃数据进行处理的方法还包括:在所述将崩溃序号信息返回给所述浏览器的步骤的同时,生成指示所述崩溃序号信息来自合法的服务器端的校验信息并且返回给所述浏览器。
可选地,在根据本发明的实施例的对浏览器崩溃数据进行处理的方法中,所述崩溃序号信息和所述校验信息是JSON格式的信息。
可选地,在根据本发明的实施例的对浏览器崩溃数据进行处理的方法中,所述接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据包括:根据与服务器端的一个或者多个崩溃服务器的唯一标识相对应的保存目录,来保存所述浏览器崩溃数据。
可选地,在根据本发明的实施例的对浏览器崩溃数据进行处理的方法中,所述接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据还包括:将所述浏览器崩溃数据从所述保存目录中存入Cassandra存储系统。
可选地,在根据本发明的实施例的对浏览器崩溃数据进行处理的方法中,所述接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据还包括:将浏览器崩溃数据通过同步的方式传送到基于与所述崩溃服务器的操作系统不同的操作系统的计算机中。
可选地,根据本发明的实施例的对浏览器崩溃数据进行处理的方法还包括:在所述接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据的步骤之后,生成指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息,并且向所述浏览器返回所述上传状态信息以及所述校验信息。
可选地,在根据本发明的实施例的对浏览器崩溃数据进行处理的方法中,所述崩溃数据是操作系统抓取的二进制格式的崩溃快照,其包括有关部分内存、崩溃线程、线程调用栈的信息、以及操作系统当前的寄存器数据。
依据本发明的另一方面,提供了一种用于浏览器崩溃数据上传的装置,包括:崩溃模块,适于产生浏览器崩溃;第一发送接口,适于通过GET接口将浏览器崩溃基本信息上传给服务器端;以及第一接收接口,适于接收所述服务器端返回的根据所述崩溃基本信息生成的崩溃序号信息,所述第一发送接口还适于在所述崩溃序号信息指示允许上传崩溃数据的情况下,从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据。
可选地,根据本发明的实施例的用于浏览器崩溃数据上传的装置还包括:第一校验模块,适于在所述崩溃模块产生浏览器崩溃之前,对于所述产品名称参数所指示的不同的浏览器,利用相应的密钥对于浏览器的合法性进行校验,并且利用所述数据校验参数对于所述崩溃基本信息的合法性和完整性进行校验。
可选地,在根据本发明的实施例的用于浏览器崩溃数据上传的装置中,所述第一接收接口还接收服务器端返回的用于指示所述崩溃序号信息来自合法的服务器端的校验信息。
可选地,在根据本发明的实施例的用于浏览器崩溃数据上传的装置中,在所述第一发送接口在所述崩溃序号信息指示允许上传崩溃数据的情况下、从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据之前,所述第一校验模块对于所述浏览器的合法性以及所述崩溃数据的合法性和完整性进行校验。
可选地,在根据本发明的实施例的用于浏览器崩溃数据上传的装置中,在所述第一发送接口在所述崩溃序号信息指示允许上传崩溃数据的情况下、从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据之后,所述第一接收接口接收服务器端返回的指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息。
依据本发明的另一方面,提供了一种对浏览器崩溃数据进行处理的装置,包括:第二接收接口,适于接收从浏览器通过GET接口上传的浏览器崩溃基本信息;崩溃序号信息生成模块,适于根据所述崩溃基本信息生成指示是否允许上传崩溃数据的崩溃序号信息;以及第二发送接口,适于将所述崩溃序号信息返回给所述浏览器,所述第二接收接口接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据。
可选地,在根据本发明的实施例的对浏览器崩溃数据进行处理的装置中,所述第二接收接口丢弃在预先定义的时间段内从相同地址的浏览器再次接收到的浏览器崩溃基本信息。
可选地,在根据本发明的实施例的对浏览器崩溃数据进行处理的装置中,所述崩溃序号信息生成模块根据所述崩溃基本信息生成崩溃唯一标识,在所述崩溃唯一标识指示已经接收到与所述崩溃基本信息相对应的预先定义的数目的相同的崩溃数据和/或浏览器主程序版本不在预先定义的版本范围内的情况下,所述崩溃序号信息生成模块生成指示不允许上传崩溃数据的崩溃序号信息,所述第二发送接口将所述崩溃序号信息返回给所述浏览器。
可选地,根据本发明的实施例的对浏览器崩溃数据进行处理的装置还包括:第二校验模块,适于生成指示所述崩溃序号信息来自合法的服务器端的校验信息,所述第二发送接口在将崩溃序号信息返回给所述浏览器的同时,还将所述校验信息返回给所述浏览器。
可选地,在根据本发明的实施例的对浏览器崩溃数据进行处理的装置中,在所述第二接收接口在接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据之后,所述第二校验模块还生成指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息,所述第二发送接口向所述浏览器返回所述上传状态信息以及所述校验信息。
本发明公开了一种浏览器崩溃数据上传和处理的方法和装置。根据本发明的各实施例,浏览器端产生崩溃,并通过GET接口将浏览器崩溃基本信息上传给服务器端,服务器端根据所述崩溃基本信息生成崩溃序号信息,并返回给浏览器端,在所述崩溃序号信息指示允许上传崩溃数据的情况下,浏览器端通过POST接口向所述服务器端上传浏览器的崩溃数据。本发明不依赖于操作系统自身的错误报告机制,提供了一种浏览器自身的崩溃数据上传和处理方案,在操作系统的错误报告方案不可用时,仍能够正常地上报浏览器的崩溃信息,并且能够将浏览器的崩溃数据快速、安全地递交到服务器端进行保存,为后续的崩溃分析处理做好了准备。根据本发明,能够对浏览器的合法性、崩溃基本信息的合法性和完整性、服务器的合法性、崩溃数据的合法性和完整性进行校验,以确保崩溃数据上传和处理的安全性。同时,能够丢弃在预先定义的时间段内从相同地址的浏览器再次接收到的浏览器崩溃基本信息,也能够禁止接收超过预先定义的数目的相同的崩溃数据、或者来自不符合要求的版本的浏览器的崩溃数据,节省了系统资源。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明的实施例的浏览器进行崩溃数据上传的方法的流程图;
图2是根据本发明的实施例的对浏览器崩溃数据进行处理的方法的流程图;
图3是根据本发明的实施例的用于浏览器崩溃数据上传的装置以及对浏览器崩溃数据进行处理的装置的框图;以及
图4是根据本发明的实施例的浏览器崩溃数据上传和处理的系统的框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
根据本发明的第一方面,提供了一种浏览器进行崩溃数据上传的方法100。图1示意性地图示了根据本发明的实施例的方法100的流程图。如图1所示,方法100开始于步骤S102,其中,浏览器产生崩溃,通过GET接口将浏览器崩溃基本信息上传给服务器端。
根据本发明的实施例,所述浏览器例如可以是基于IE的360安全浏览器、基于Chrome的360极速浏览器、Firefox浏览器、Safari浏览器、Opera浏览器等各种操作系统下的各种浏览器。
在步骤S102中,首先,浏览器产生崩溃,然后,可以通过GET接口将浏览器崩溃基本信息上传给服务器端。其中,GET接口是一种HTTP请求方式。
根据本发明的实施例,所述浏览器崩溃基本信息的参数至少可以包括崩溃公共标识、命令行、产品名称、自定义信息、以及数据校验中的一种。另外,可选地,参数还可以包括自定义信息,所述自定义信息至少包括以下信息中的一种:关于与浏览器内核线程通信是否发生异常的信息、经过加密的当面激活页面的网址、关于是否开启了图形处理单元加速的信息、关于是否开启了web图形加速的信息。举例而言,对于上述360安全浏览器,自定义信息例如可以包括关于与IE线程通信是否发生异常的信息;而对于上述360极速浏览器,自定义信息例如可以包括经过加密的当面激活页面的网址(如url)、关于是否开启了图形处理单元(GPU)加速的信息、关于是否开启了web图形加速(如WebGL)的信息。
上述参数的详细信息例如参见下表:
Figure BDA00002710972100081
Figure BDA00002710972100091
根据本发明的实施例,所述崩溃公共标识至少可以包括以下参数中的一种:进程类型、线程类型、崩溃信息、崩溃类型、浏览器主程序版本、操作系统版本、浏览器内核程序版本、flash版本、第一层崩溃模块名称、第一层崩溃模块版本、浏览器所在设备的唯一标识号、浏览器崩溃当前进程的标识号。可选地,所述崩溃公共标识还可以包括其它参数,详细信息例如参见下表:
Figure BDA00002710972100092
Figure BDA00002710972100101
根据本发明的实施例,上述mid是浏览器客户端所在物理设备的唯一标识号。通过在崩溃基本信息中包括mid,后续就可以将发生浏览器崩溃的设备和所上传的浏览器崩溃数据绑定起来,并且在进行浏览器崩溃分析后将分析的结果或者崩溃的相关的预警信息直接发送到与mid相对应的浏览器客户端所在的设备上,从而可以实现对于浏览器崩溃分析信息的定点反馈。
根据本发明的实施例,上述pid是浏览器崩溃当前进程的标识号,同样,其可被用于进行浏览器崩溃的具体分析,反映浏览器崩溃当前进程的信息。
可选地,在执行上述步骤S102之前,可以先执行以下步骤:对于所述产品名称参数所指示的不同的浏览器,利用相应的密钥对于浏览器的合法性进行校验。例如,假设有360安全浏览器和360极速浏览器这两种浏览器,产品名称参数(src)分别为1和2,可以利用针对这两种浏览器的密钥来对于浏览器的合法性进行校验。上述两种浏览器仅为示例,本发明的原理不限于此,而是适用于各种浏览器。
另外,可选地,在执行上述步骤S102之前,还可以执行以下步骤:利用所述数据校验参数对于所述崩溃基本信息的合法性和完整性进行校验。例如,可以利用上述数据校验参数(cverify)来执行此校验,生成如下的校验串:cverify=md5(pubkey+密钥),其中pubkey即为上述崩溃公共标识参数,而密钥可以是上述针对不同浏览器的密钥。
如图1所示,在步骤S102之后,可以执行步骤S104,其中接收所述服务器端返回的根据所述崩溃基本信息生成的崩溃序号信息(dumpid)。可选地,与此同时,可以接收服务器端返回的用于指示所述崩溃序号信息来自合法的服务器端的校验信息(sverify)。
可选地,服务器端所返回的dumpid和sverify可以为JSON格式,例如为如下两种情况:
(1){″dumpid":"0","sverify:"sverify_val"};
(2){″dumpid":"dump_id","sverify:"sverify_val"}。
根据本发明的实施例,如果所述崩溃序号信息的值大于预先定义的阈值,则指示允许上传崩溃数据;而如果所述崩溃序号信息的值小于或等于预先定义的阈值,则指示不允许上传崩溃数据。
此处,假设上述预先定义的阈值为0。在上述情况(1)中,dumpid为0,即,等于预先定义的阈值,则指示不允许上传崩溃数据。而在上述情况(2)中,dumpid为“dump_id”,即,大于预先定义的阈值,则指示允许上传崩溃数据。
校验信息sverify用于指示所述崩溃序号信息来自合法的服务器端,其格式例如为:sverify=md5(dumpid+密钥)。这里,dumpid即为上述崩溃序号信息,而密钥可以是上述针对不同浏览器的密钥。
在步骤S104之后,执行步骤S106,其中,在所述崩溃序号信息指示允许上传崩溃数据的情况下,从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据。例如,在上述情况(2)中,dumpid为“dump_id”,指示允许上传崩溃数据,就可以从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据。
根据本发明的实施例,POST的参数例如参见下表:
Figure BDA00002710972100111
Figure BDA00002710972100121
根据本发明的实施例,在所述崩溃序号信息指示允许上传崩溃数据的情况下,在上述步骤S106之前,可以对于所述浏览器的合法性以及所述崩溃数据的合法性和完整性进行校验。
仍以360安全浏览器和360极速浏览器这两种浏览器为例,产品名称参数(src)分别为1和2,可以利用针对这两种浏览器的密钥来对于浏览器的合法性进行校验。同样,应当注意,上述两种浏览器仅为示例,本发明的原理不限于此,而是适用于各种浏览器。
而对于所述崩溃数据的合法性和完整性,则例如可以利用上表中的数据校验参数(cverify)来执行校验,生成如下的校验串:cverify=md5(file+dumpid+密钥),其中file即为上述文件参数,dumpid即为上述崩溃序号信息,而密钥可以是上述针对不同浏览器的密钥。
可选地,在上述步骤S106之前,还可以进行POST数据的一些其它安全校验,例如,判断崩溃数据是否正确(例如,是否为空内容),判断序号(id)信息是否正确。
根据本发明的实施例,所述崩溃数据即为上表中的dump文件流。所述崩溃数据是操作系统抓取的二进制格式的崩溃快照,其包括有关部分内存、崩溃线程、线程调用栈的信息、以及操作系统当前的寄存器数据。
根据本发明的实施例,在所述崩溃序号信息指示允许上传崩溃数据的情况下,在上述步骤S 106之后,还可以执行以下步骤:接收服务器端返回的指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息。例如,上传状态信息和校验信息可以分别为JSON格式的status和sverify,其中例如,status=0表示崩溃数据上传失败,status=1则表示崩溃数据上传成功。而sverify的格式例如可以为:sverify=md5(status+dumpid+密钥),其中status即为上述的上传状态信息,dumpid为上述崩溃序号信息,而密钥可以是上述针对不同浏览器的密钥。服务器端返回的结果可以例如为以下两种情况:
(1){″status":"0","sverify":"sverify_val"};以及
(2){″status":"1","sverify":"sverify_val"}。
其中,在上述情况(1)中,status=0,表示崩溃数据上传失败;而在上述情况(2)中,status=1,表示崩溃数据上传成功。
根据本发明的第二方面,提供了一种对浏览器崩溃数据进行处理的方法200。图2示意性地图示了根据本发明的实施例的方法200的流程图。根据本发明的实施例,与上述可以在浏览器端执行的方法100相对应,方法200可以在服务器端执行。
如图2所示,方法200开始于步骤S202,其中,接收从浏览器通过GET接口上传的浏览器崩溃基本信息。关于浏览器通过GET接口上传浏览器崩溃基本信息的具体情况与上面针对方法100中的步骤S102的描述相同,在此不再赘述。
根据本发明的实施例,在上述步骤S202中,可以丢弃在预先定义的时间段内从相同地址的浏览器再次接收到的浏览器崩溃基本信息。即,采用防刷新机制。例如,将所述预先定义的时间段设置为2秒钟,丢弃在2秒钟内从相同地址的浏览器再次接收到的浏览器崩溃基本信息。应注意,2秒钟仅为所述预先定义的时间段的示例,本发明的范围并不局限于此,本领域技术人员可以根据实际需要选择其它大小的时间段。
随后,可以将所述浏览器崩溃基本信息保存到服务器端的数据队列服务器中,并且例如在服务器启动后利用后台进程从所述数据队列服务器中读取所述浏览器崩溃基本信息并且保存到服务器端的数据库(例如,MySQL服务器)中。
如图2所示,在步骤S202之后,执行步骤S204,其中,根据所述崩溃基本信息生成指示是否允许上传崩溃数据的崩溃序号信息并将其返回给所述浏览器。关于崩溃序号信息的具体情况与上面针对方法100中的步骤S104的描述相同,在此不再赘述。
根据本发明的实施例,在上述步骤S204中,根据所述崩溃基本信息生成崩溃唯一标识,在所述崩溃唯一标识指示已经接收到与所述崩溃基本信息相对应的预先定义的数目的相同的崩溃数据和/或浏览器主程序版本不在预先定义的版本范围内的情况下,生成指示不允许上传崩溃数据的崩溃序号信息并将其返回给所述浏览器。具体而言,可以利用MD5对崩溃基本信息进行加密,以生成崩溃唯一标识(dumpkey)。假设所述预先定义的数目为3,即要求对于相同的崩溃数据的接收次数不超过3次。如果dumpkey指示已经接收到3个与崩溃基本信息相对应的崩溃数据,则生成指示不允许上传崩溃数据的崩溃序号信息(例如,dumpid=0)并将其返回给所述浏览器;而如果dumpkey指示已经接收到少于3个与崩溃基本信息相对应的崩溃数据,则生成指示允许上传崩溃数据的崩溃序号信息(例如,dumpid=dump_id)并将其返回给所述浏览器。另外,可以规定预先定义的浏览器主程序版本范围,例如,对于360安全浏览器,可以将版本范围规定为5.0至6.0版本,对于低于5.0版本的360安全浏览器,可以生成指示不允许上传崩溃数据的崩溃序号信息并将其返回给浏览器。上述3这个数目仅为所述预先定义的数目的示例,5.0至6.0版本的范围也仅为示例,本发明的范围并不局限于此,本领域技术人员可以根据实际需要选择其它数目和版本范围。
在所述步骤S204中,在所述将崩溃序号信息返回给所述浏览器的步骤的同时,还可以生成指示所述崩溃序号信息来自合法的服务器端的校验信息并且返回给所述浏览器。此步骤的具体情况与上面方法100的步骤S104中针对校验信息(sverify)的描述相同,在此不再赘述。如前所述,所述崩溃序号信息和所述校验信息可以是JSON格式的信息。
如图2所示,在步骤S204之后,执行步骤S206,其中,接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据。其中,浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据的具体情况与针对上面方法100中的步骤S106的具体描述相同,在此不再赘述。同样,所述崩溃数据是操作系统抓取的二进制格式的崩溃快照,其包括有关部分内存、崩溃线程、线程调用栈的信息、以及操作系统当前的寄存器数据。
根据本发明的实施例,步骤S206包括:根据与服务器端的一个或者多个崩溃服务器的唯一标识相对应的保存目录,来保存所述浏览器崩溃数据。例如,假设在服务器端有4个云崩溃服务器,key1、key2、key3、key4分别代表这4个云崩溃服务器的诸如IP地址之类的唯一标识,而与这些key相对应的值即为崩溃数据的存放目录。在此之前,可以在云崩溃服务器中先建立临时目录,将崩溃数据暂存在此临时目录中。
另外,根据本发明的实施例,所述步骤S206还包括:将所述浏览器崩溃数据从所述保存目录中存入Cassandra存储系统,以进行持久化存储。Apache Cassandra是一套开源分布式Key-Value存储系统,适于储存特别大的数据,其具体信息可以参见链接http://www.oschina.net/p/cassandra。
另外,根据本发明的实施例,所述步骤S206还包括:将浏览器崩溃数据通过同步的方式传送到基于与所述崩溃服务器的操作系统不同的操作系统的计算机中。例如,假设崩溃服务器所采用的操作系统为Linux,如果希望将浏览器崩溃数据传送到操作系统为Windows的计算机中,就可以通过同步的方式(例如采用用于从Linux向Windows同步文件的软件rsync)将崩溃数据从基于Linux操作系统的崩溃服务器传送到基于Windows操作系统的计算机中。
在将崩溃数据传送到基于Windows操作系统的计算机之后,可以读取崩溃数据队列,将属于不同浏览器的崩溃数据传送到相应的Windows计算机目录下。上述目录可以按照年/月/日来进行划分。可以采用C语言来开发用于Windows年/月/日自动目录生成的脚本。还可以在Windows计算机上布置自动崩溃数据分析程序,以随时监控当天目录下的崩溃数据。一发现有新的崩溃数据,就立刻执行分析,然后向服务器端回传数据,从而实现了实时分析回传。
根据本发明的实施例,在上述步骤S206之后,可以生成指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息,并且向所述浏览器返回所述上传状态信息以及所述校验信息。与上述针对方法100的步骤S106的描述相同,例如,上传状态信息和校验信息可以分别为JSON格式的status和sverify,其中例如,status=0表示崩溃数据上传失败,status=1则表示崩溃数据上传成功。而sverify的格式例如可以为:sverify=md5(status+dumpid+密钥),其中status即为上述的上传状态信息,dumpid为上述崩溃序号信息,而密钥可以是上述针对不同浏览器的密钥。
根据本发明的第三方面和第四方面,与上述方法100和方法200相对应,本发明还分别提供了一种用于浏览器崩溃数据上传的装置300以及一种对浏览器崩溃数据进行处理的装置400。
图3示意性地图示了根据本发明的实施例的用于浏览器崩溃数据上传的装置300以及对浏览器崩溃数据进行处理的装置400的框图。
参见图3,根据本发明的实施例的用于浏览器崩溃数据上传的装置300包括崩溃模块301、第一发送接口302、以及第一接收接口303。
根据本发明的实施例,所述崩溃模块301适于产生浏览器崩溃;所述第一发送接口适于通过GET接口将浏览器崩溃基本信息上传给服务器端;所述第一接收接口303适于接收所述服务器端返回的根据所述崩溃基本信息生成的崩溃序号信息。所述第一发送接口303还适于在所述崩溃序号信息指示允许上传崩溃数据的情况下,从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据。所述崩溃模块301和所述第一发送接口302可以用于执行上述方法100中的步骤S102,所述第一接收接口303可以用于执行上述方法100中的步骤S104,所述第一发送接口302还可以用于执行上述方法100中的步骤S106。
与上述针对方法100的描述相同,所述浏览器崩溃基本信息的参数至少可以包括崩溃公共标识、命令行、产品名称、自定义信息、以及数据校验。所述崩溃公共标识至少可以包括以下参数:进程类型、线程类型、崩溃信息、崩溃类型、浏览器主程序版本、操作系统版本、浏览器内核程序版本、flash版本、浏览器内核、第一层崩溃模块名称、第一层崩溃模块版本、浏览器所在设备的唯一标识号、浏览器崩溃当前进程的标识号。
根据本发明的实施例,所述装置300还可以包括第一校验模块,适于在所述崩溃模块产生浏览器崩溃之前,对于所述产品名称参数所指示的不同的浏览器,利用相应的密钥对于浏览器的合法性进行校验,并且利用所述数据校验参数对于所述崩溃基本信息的合法性和完整性进行校验。与上述针对方法100的描述相同,例如,假设有360安全浏览器和360极速浏览器这两种浏览器,产品名称参数(src)分别为1和2,可以利用针对这两种浏览器的密钥来对于浏览器的合法性进行校验。上述两种浏览器仅为示例,本发明的原理不限于此,而是适用于各种浏览器。另外,例如,可以利用上述数据校验参数(cverify)来执行此校验,生成如下的校验串:cverify=md5(pubkey+密钥),其中pubkey即为上述崩溃公共标识参数,而密钥可以是上述针对不同浏览器的密钥。
根据本发明的实施例,除了接收所述服务器端返回的根据所述崩溃基本信息生成的崩溃序号信息之外,所述第一接收接口303还可以接收服务器端返回的用于指示所述崩溃序号信息来自合法的服务器端的校验信息。与上述针对方法100的描述相同,可选地,服务器端所返回的崩溃序号信息(dumpid)和校验信息(sverify)可以为JSON格式,例如为如下两种情况:(1){″dumpid":"0","sverify:"sverify_val"};(2){"dumpid":"dump_id","sverify:"sverify_val"}。
根据本发明的实施例,如果所述崩溃序号信息的值大于预先定义的阈值,则指示允许上传崩溃数据;而如果所述崩溃序号信息的值小于或等于预先定义的阈值,则指示不允许上传崩溃数据。
此处,假设上述预先定义的阈值为0。在上述情况(1)中,dumpid为0,即,等于预先定义的阈值,则指示不允许上传崩溃数据。而在上述情况(2)中,dumpid为“dump_id”,即,大于预先定义的阈值,则指示允许上传崩溃数据。
校验信息sverify用于指示所述崩溃序号信息来自合法的服务器端,其格式例如为:sverify=md5(dumpid+密钥)。这里,dumpid即为上述崩溃序号信息,而密钥可以是上述针对不同浏览器的密钥。
根据本发明的实施例,在所述崩溃序号信息指示允许上传崩溃数据的情况下,所述第一发送接口302从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据之前,所述第一校验模块可以对于所述浏览器的合法性以及所述崩溃数据的合法性和完整性进行校验。仍以360安全浏览器和360极速浏览器这两种浏览器为例,产品名称参数(src)分别为1和2,可以利用针对这两种浏览器的密钥来对于浏览器的合法性进行校验。同样,应当注意,上述两种浏览器仅为示例,本发明的原理不限于此,而是适用于各种浏览器。而对于所述崩溃数据的合法性和完整性,则例如可以利用上表中的数据校验参数(cverify)来执行校验,生成如下的校验串:cverify=md5(file+dumpid+密钥),其中file即为上述文件参数,dumpid即为上述崩溃序号信息,而密钥可以是上述针对不同浏览器的密钥。
根据本发明的实施例,在所述崩溃序号信息指示允许上传崩溃数据的情况下,所述第一发送接口302从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据之后,所述第一接收接口303接收服务器端返回的指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息。例如,上传状态信息和校验信息可以分别为JSON格式的status和sverify,其中例如,status=0表示崩溃数据上传失败,status=1则表示崩溃数据上传成功。而sverify的格式例如可以为:sverify=md5(status+dumpid+密钥),其中status即为上述的上传状态信息,dumpid为上述崩溃序号信息,而密钥可以是上述针对不同浏览器的密钥。
参见图3,根据本发明的实施例的对浏览器崩溃数据进行处理的装置400包括:第二接收接口401、崩溃序号信息生成模块402、以及第二发送接口403。
根据本发明的实施例,所述第二接收接口401适于接收从浏览器通过GET接口上传的浏览器崩溃基本信息;所述崩溃序号信息生成模块402适于根据所述崩溃基本信息生成指示是否允许上传崩溃数据的崩溃序号信息;所述第二发送接口403适于将所述崩溃序号信息返回给所述浏览器,另外,所述第二接收接口401还适于接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据。所述装置400是服务器端的装置,所述第二接收接口401可以用于执行上述方法200中的步骤S202,所述崩溃序号信息生成模块402和所述第二发送接口403可以用于执行上述方法200中的步骤S204,所述第二接收接口401还可以用于执行上述方法200中的步骤S206。
根据本发明的实施例,所述第二接收接口401可以丢弃在预先定义的时间段内从相同地址的浏览器再次接收到的浏览器崩溃基本信息。即,采用防刷新机制。例如,将所述预先定义的时间段设置为2秒钟,所述第二接收接口401可以丢弃在2秒钟内从相同地址的浏览器再次接收到的浏览器崩溃基本信息。应注意,2秒钟仅为所述预先定义的时间段的示例,本发明的范围并不局限于此,本领域技术人员可以根据实际需要选择其它大小的时间段。
随后,所述第二接收接口401可以将所述浏览器崩溃基本信息保存到服务器端的数据队列服务器中,并且例如在服务器启动后利用后台进程从所述数据队列服务器中读取所述浏览器崩溃基本信息并且保存到服务器端的数据库(例如,MySQL服务器)中。
根据本发明的实施例,所述崩溃序号信息生成模块402根据所述崩溃基本信息生成崩溃唯一标识,在所述崩溃唯一标识指示已经接收到与所述崩溃基本信息相对应的预先定义的数目的相同的崩溃数据和/或浏览器主程序版本不在预先定义的版本范围内的情况下,所述崩溃序号信息生成模块402生成指示不允许上传崩溃数据的崩溃序号信息,所述第二发送接口403将所述崩溃序号信息返回给所述浏览器。具体而言,所述崩溃序号信息生成模块402可以利用MD5对崩溃基本信息进行加密,以生成崩溃唯一标识(dumpkey)。假设所述预先定义的数目为3,即要求对于相同的崩溃数据的接收次数不超过3次。如果dumpkey指示已经接收到3个与崩溃基本信息相对应的崩溃数据,则所述崩溃序号信息生成模块402生成指示不允许上传崩溃数据的崩溃序号信息(例如,dumpid=0)并将其返回给所述浏览器;而如果dumpkey指示已经接收到少于3个与崩溃基本信息相对应的崩溃数据,则所述崩溃序号信息生成模块402生成指示允许上传崩溃数据的崩溃序号信息(例如,dumpid=dump_id)并将其返回给所述浏览器。另外,可以规定预先定义的浏览器主程序版本范围,例如,对于360安全浏览器,可以将版本范围规定为5.0至6.0版本,对于低于5.0版本的360安全浏览器,可以生成指示不允许上传崩溃数据的崩溃序号信息并将其返回给浏览器。上述3这个数目仅为所述预先定义的数目的示例,5.0至6.0版本的范围也仅为示例,本发明的范围并不局限于此,本领域技术人员可以根据实际需要选择其它数目和版本范围。
根据本发明的实施例,所述装置400还包括第二校验模块,适于生成指示所述崩溃序号信息来自合法的服务器端的校验信息,所述第二发送接口在将崩溃序号信息返回给所述浏览器的同时,还将所述校验信息返回给所述浏览器。这与上面针对校验信息(sverify)的描述相同,在此不再赘述。
根据本发明的实施例,在所述第二接收接口401在接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据之后,所述第二校验模块还生成指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息,所述第二发送接口403向所述浏览器返回所述上传状态信息以及所述校验信息。与上面的描述相同,例如,上传状态信息和校验信息可以分别为JSON格式的status和sverify,其中例如,status=0表示崩溃数据上传失败,status=1则表示崩溃数据上传成功。而sverify的格式例如可以为:sverify=md5(status+dumpid+密钥),其中status即为上述的上传状态信息,dumpid为上述崩溃序号信息,而密钥可以是上述针对不同浏览器的密钥。
由于上述各装置实施例与前述各方法实施例相对应,因此不再对各装置实施例的细节进行详细描述。
本发明还分别提供了一种浏览器崩溃数据上传和处理的系统。图4示意性地图示了根据本发明的实施例的浏览器崩溃数据上传和处理的系统的框图。
参见图4,该系统主要包括浏览器端和服务器端这两大部分。浏览器端可以包括一个或者多个浏览器客户端a、浏览器客户端b、……浏览器客户端n,它们通过GET接口和POST接口与服务器端通信,此过程与上面针对方法100和装置300描述的情况类似,在此不再赘述。
在服务器端,可以包括四个云崩溃服务器—云崩溃服务器a、云崩溃服务器b、云崩溃服务器c、云崩溃服务器d。然而,“四个”这个数量仅为示例,本发明的范围并不局限于此,而是同样适用于其它数量的云崩溃服务器。
在浏览器端通过POST接口将浏览器崩溃数据发送到服务器端之后,可以根据与服务器端的一个或者多个云崩溃服务器的唯一标识相对应的保存目录,来保存所述浏览器崩溃数据。例如,假设key1、key2、key3、key4分别代表上述四个云崩溃服务器的诸如IP地址之类的唯一标识,而与这些key相对应的值即为崩溃数据的存放目录。而在此之前,可以在云崩溃服务器中先建立临时目录,将崩溃数据暂存在此临时目录中。
根据本发明的实施例,对于云崩溃服务器a,其可以用于处理上述各实施例所述的崩溃基本信息,在服务器端接收到从浏览器通过GET接口上传的浏览器崩溃基本信息之后,将所述浏览器崩溃基本信息保存到服务器端的数据队列服务器中,然后从所述数据队列服务器中读取所述浏览器崩溃基本信息并且保存到服务器端的数据库(例如MySQL数据库)中。
根据本发明的实施例,对于云崩溃服务器b,其可以用于将浏览器崩溃数据通过同步的方式传送到基于与所述云崩溃服务器的操作系统不同的操作系统的计算机中。例如,假设云崩溃服务器所采用的操作系统为Linux,如果希望将浏览器崩溃数据传送到操作系统为Windows的计算机中,就可以通过同步的方式(例如采用用于从Linux向Windows同步文件的软件rsync的接口)将崩溃数据从基于Linux操作系统的崩溃服务器传送到基于Windows操作系统的计算机中。如图4所示,例如可以布置两台Windows计算机,一台可以用于处理来自例如360安全浏览器的崩溃数据,另一台可以用于处理来自例如360极速浏览器的崩溃数据。
在将崩溃数据传送到基于Windows操作系统的计算机之后,可以读取崩溃数据队列,将属于不同浏览器的崩溃数据传送到相应的Windows计算机目录下。上述目录可以按照年/月/日来进行划分。可以采用C语言来开发用于Windows年/月/日自动目录生成的脚本。还可以在Windows计算机上布置自动崩溃数据分析程序,以随时监控当天目录下的崩溃数据。一发现有新的崩溃数据,就立刻执行分析,然后向服务器端回传数据,从而实现了实时分析回传。
根据本发明的实施例,对于云崩溃服务器c和云崩溃服务器d,其可以将所述浏览器崩溃数据从所述保存目录中存入Cassandra存储系统,以进行持久化存储。如上所述,Apache Cassandra是一套开源分布式Key-Value存储系统,适于储存特别大的数据,其具体信息可以参见链接http://www.oschina.net/p/cassandra。可选地,Cassandra存储系统可以与例如MySQL数据库连接。
上述系统的布置仅为示例,用于帮助读者理解本发明的原理,但并非用作对于本发明保护范围的限制,本领域技术人员可以按照实际需要布置上述系统。
本发明公开了一种浏览器崩溃数据上传和处理的方法和装置。根据本发明的各实施例,浏览器端产生崩溃,并通过GET接口将浏览器崩溃基本信息上传给服务器端,服务器端根据所述崩溃基本信息生成崩溃序号信息,并返回给浏览器端,在所述崩溃序号信息指示允许上传崩溃数据的情况下,浏览器端通过POST接口向所述服务器端上传浏览器的崩溃数据。本发明不依赖于操作系统自身的错误报告机制,提供了一种浏览器自身的崩溃数据上传和处理方案,在操作系统的错误报告方案不可用时,仍能够正常地上报浏览器的崩溃信息,并且能够将浏览器的崩溃数据快速、安全地递交到服务器端进行保存,为后续的崩溃分析处理做好了准备。根据本发明,能够对浏览器的合法性、崩溃基本信息的合法性和完整性、服务器的合法性、崩溃数据的合法性和完整性进行校验,以确保崩溃数据上传和处理的安全性。同时,能够丢弃在预先定义的时间段内从相同地址的浏览器再次接收到的浏览器崩溃基本信息,也能够禁止接收超过预先定义的数目的相同的崩溃数据、或者来自不符合要求的版本的浏览器的崩溃数据,节省了系统资源。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的装置中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个装置中。可以把实施例中的若干模块组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者模块中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个装置实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (34)

1.一种浏览器进行崩溃数据上传的方法,包括步骤:
浏览器产生崩溃,通过GET接口将浏览器崩溃基本信息上传给服务器端;
接收所述服务器端返回的根据所述崩溃基本信息生成的崩溃序号信息;以及
在所述崩溃序号信息指示允许上传崩溃数据的情况下,从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据。
2.如权利要求1所述的方法,其特征在于,所述浏览器崩溃基本信息的参数至少包括:崩溃公共标识、命令行、产品名称、自定义信息、以及数据校验中的一种。
3.如权利要求2所述的方法,其特征在于,所述崩溃公共标识至少包括以下参数中的一种:进程类型、线程类型、崩溃信息、崩溃类型、浏览器主程序版本、操作系统版本、浏览器内核程序版本、flash版本、第一层崩溃模块名称、第一层崩溃模块版本、浏览器所在设备的唯一标识号、浏览器崩溃当前进程的标识号。
4.如权利要求2至3中的任一项所述的方法,其特征在于,在所述浏览器产生崩溃、通过GET接口将浏览器崩溃基本信息上传给服务器端的步骤之前,进一步包括:
对于所述产品名称参数所指示的不同的浏览器,利用相应的密钥对于浏览器的合法性进行校验。
5.如权利要求2至3中的任一项所述的方法,其特征在于,在所述浏览器产生崩溃,通过GET接口将浏览器崩溃基本信息上传给服务器端的步骤之前,进一步包括:
利用所述数据校验参数对于所述崩溃基本信息的合法性和完整性进行校验。
6.如权利要求1至3中的任一项所述的方法,其特征在于,如果所述崩溃序号信息的值大于预先定义的阈值,则指示允许上传崩溃数据。
7.如权利要求1至3中的任一项所述的方法,其特征在于,进一步包括:
在所述接收所述服务器端返回的根据所述崩溃基本信息生成的崩溃序号信息的步骤的同时,接收服务器端返回的用于指示所述崩溃序号信息来自合法的服务器端的校验信息。
8.如权利要求1至3中的任一项所述的方法,其特征在于,进一步包括:
在所述崩溃序号信息指示允许上传崩溃数据的情况下、从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据的步骤之前,对于所述浏览器的合法性以及所述崩溃数据的合法性和完整性进行校验。
9.如权利要求1至3中的任一项所述的方法,其特征在于,进一步包括:
在所述崩溃序号信息指示允许上传崩溃数据的情况下、从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据的步骤之后,接收服务器端返回的指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息。
10.如权利要求1至3中的任一项所述的方法,其特征在于,所述崩溃数据是操作系统抓取的二进制格式的崩溃快照,其包括有关部分内存、崩溃线程、线程调用栈的信息、以及操作系统当前的寄存器数据。
11.如权利要求1至3中的任一项所述的方法,其特征在于,所述自定义信息至少包括以下信息中的一种:关于与浏览器内核线程通信是否发生异常的信息、经过加密的当面激活页面的网址、关于是否开启了图形处理单元加速的信息、关于是否开启了web图形加速的信息。
12.一种对浏览器崩溃数据进行处理的方法,包括步骤:
接收从浏览器通过GET接口上传的浏览器崩溃基本信息;
根据所述崩溃基本信息生成指示是否允许上传崩溃数据的崩溃序号信息并将其返回给所述浏览器;以及
接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据。
13.如权利要求12所述的方法,其特征在于,在所述接收从浏览器通过GET接口上传的浏览器崩溃基本信息的步骤中,丢弃在预先定义的时间段内从相同地址的浏览器再次接收到的浏览器崩溃基本信息。
14.如权利要求12所述的方法,其特征在于,在所述根据所述崩溃基本信息生成指示是否允许上传崩溃数据的崩溃序号信息并将其返回给所述浏览器的步骤中,根据所述崩溃基本信息生成崩溃唯一标识,在所述崩溃唯一标识指示已经接收到与所述崩溃基本信息相对应的预先定义的数目的相同的崩溃数据和/或浏览器主程序版本不在预先定义的版本范围内的情况下,生成指示不允许上传崩溃数据的崩溃序号信息并将其返回给所述浏览器。
15.如权利要求12至14中的任一项所述的方法,其特征在于,进一步包括:
在所述接收从浏览器通过GET接口上传的浏览器崩溃基本信息的步骤之后,将所述浏览器崩溃基本信息保存到服务器端的数据队列服务器中,并且从所述数据队列服务器中读取所述浏览器崩溃基本信息并且保存到服务器端的数据库中。
16.如权利要求12至14中的任一项所述的方法,其特征在于,进一步包括:
在所述将崩溃序号信息返回给所述浏览器的步骤的同时,生成指示所述崩溃序号信息来自合法的服务器端的校验信息并且返回给所述浏览器。
17.如权利要求16所述的方法,其特征在于,所述崩溃序号信息和所述校验信息是JSON格式的信息。
18.如权利要求12至14中的任一项所述的方法,其特征在于,所述接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据的步骤包括:
根据与服务器端的一个或者多个崩溃服务器的唯一标识相对应的保存目录,来保存所述浏览器崩溃数据。
19.如权利要求18所述的方法,其特征在于,所述接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据的步骤还包括:
将所述浏览器崩溃数据从所述保存目录中存入Cassandra存储系统。
20.如权利要求18所述的方法,其特征在于,所述接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据的步骤还包括:
将浏览器崩溃数据通过同步的方式传送到基于与所述崩溃服务器的操作系统不同的操作系统的计算机中。
21.如权利要求12至14中的任一项所述的方法,其特征在于,进一步包括:
在所述接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据的步骤之后,生成指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息,并且向所述浏览器返回所述上传状态信息以及所述校验信息。
22.如权利要求12至14中的任一项所述的方法,其特征在于,所述崩溃数据是操作系统抓取的二进制格式的崩溃快照,其包括有关部分内存、崩溃线程、线程调用栈的信息、以及操作系统当前的寄存器数据。
23.一种用于浏览器崩溃数据上传的装置,包括:
崩溃模块,适于产生浏览器崩溃,
第一发送接口,适于通过GET接口将浏览器崩溃基本信息上传给服务器端;以及
第一接收接口,适于接收所述服务器端返回的根据所述崩溃基本信息生成的崩溃序号信息,
所述第一发送接口还适于在所述崩溃序号信息指示允许上传崩溃数据的情况下,从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据。
24.如权利要求23所述的装置,其特征在于,所述浏览器崩溃基本信息的参数至少包括:崩溃公共标识、命令行、产品名称、自定义信息、以及数据校验中的一种。
25.如权利要求24所述的装置,其特征在于,其中所述崩溃公共标识至少包括以下参数中的一种:进程类型、线程类型、崩溃信息、崩溃类型、浏览器主程序版本、操作系统版本、浏览器内核程序版本、flash版本、第一层崩溃模块名称、第一层崩溃模块版本、浏览器所在设备的唯一标识号、浏览器崩溃当前进程的标识号。
26.如权利要求23至25中的任一项所述的装置,其特征在于,所述装置进一步包括第一校验模块,适于在所述崩溃模块产生浏览器崩溃之前,对于所述产品名称参数所指示的不同的浏览器,利用相应的密钥对于浏览器的合法性进行校验,并且利用所述数据校验参数对于所述崩溃基本信息的合法性和完整性进行校验。
27.如权利要求23至25中的任一项所述的装置,其特征在于,所述第一接收接口还接收服务器端返回的用于指示所述崩溃序号信息来自合法的服务器端的校验信息。
28.如权利要求26所述的装置,其特征在于,在所述第一发送接口在所述崩溃序号信息指示允许上传崩溃数据的情况下、从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据之前,所述第一校验模块对于所述浏览器的合法性以及所述崩溃数据的合法性和完整性进行校验。
29.如权利要求23至25中的任一项所述的装置,其特征在于,在所述第一发送接口在所述崩溃序号信息指示允许上传崩溃数据的情况下、从浏览器通过POST接口向所述服务器端上传浏览器的崩溃数据之后,所述第一接收接口接收服务器端返回的指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息。
30.一种对浏览器崩溃数据进行处理的装置,包括:
第二接收接口,适于接收从浏览器通过GET接口上传的浏览器崩溃基本信息;
崩溃序号信息生成模块,适于根据所述崩溃基本信息生成指示是否允许上传崩溃数据的崩溃序号信息;以及
第二发送接口,适于将所述崩溃序号信息返回给所述浏览器,
所述第二接收接口接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据。
31.如权利要求30所述的装置,其特征在于,所述第二接收接口丢弃在预先定义的时间段内从相同地址的浏览器再次接收到的浏览器崩溃基本信息。
32.如权利要求30所述的装置,其特征在于,所述崩溃序号信息生成模块根据所述崩溃基本信息生成崩溃唯一标识,在所述崩溃唯一标识指示已经接收到与所述崩溃基本信息相对应的预先定义的数目的相同的崩溃数据和/或浏览器主程序版本不在预先定义的版本范围内的情况下,所述崩溃序号信息生成模块生成指示不允许上传崩溃数据的崩溃序号信息,所述第二发送接口将所述崩溃序号信息返回给所述浏览器。
33.如权利要求30至32中的任一项所述的装置,其特征在于,所述装置还包括第二校验模块,适于生成指示所述崩溃序号信息来自合法的服务器端的校验信息,所述第二发送接口在将崩溃序号信息返回给所述浏览器的同时,还将所述校验信息返回给所述浏览器。
34.如权利要求30至32中的任一项所述的装置,其特征在于,在所述第二接收接口在接收并且保存浏览器根据所述崩溃序号信息通过POST接口上传的浏览器崩溃数据之后,所述第二校验模块还生成指示所述崩溃数据是否上传成功的上传状态信息以及用于指示所述上传状态信息来自合法的服务器端的校验信息,所述第二发送接口向所述浏览器返回所述上传状态信息以及所述校验信息。
CN201310004437.8A 2013-01-07 2013-01-07 一种浏览器崩溃数据上传和处理的方法和装置 Active CN103167016B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310004437.8A CN103167016B (zh) 2013-01-07 2013-01-07 一种浏览器崩溃数据上传和处理的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310004437.8A CN103167016B (zh) 2013-01-07 2013-01-07 一种浏览器崩溃数据上传和处理的方法和装置

Publications (2)

Publication Number Publication Date
CN103167016A true CN103167016A (zh) 2013-06-19
CN103167016B CN103167016B (zh) 2016-09-21

Family

ID=48589752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310004437.8A Active CN103167016B (zh) 2013-01-07 2013-01-07 一种浏览器崩溃数据上传和处理的方法和装置

Country Status (1)

Country Link
CN (1) CN103167016B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014106489A1 (zh) * 2013-01-07 2014-07-10 北京奇虎科技有限公司 浏览器崩溃信息的处理方法及系统
CN105827606A (zh) * 2016-03-29 2016-08-03 乐视控股(北京)有限公司 终端崩溃数据的处理方法、装置和终端
CN107665142A (zh) * 2017-07-24 2018-02-06 平安科技(深圳)有限公司 一种检测应用程序业务流程中断的方法、终端及计算机可读存储介质
CN113127239A (zh) * 2019-12-31 2021-07-16 深圳云天励飞技术有限公司 页面状态监控方法、装置、终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005281A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Error capture and reporting in a distributed computing environment
US20100257255A1 (en) * 2009-04-03 2010-10-07 Phillips Derek J Tracking remote browser crashes via cookies
WO2012160772A1 (en) * 2011-05-20 2012-11-29 Canon Kabushiki Kaisha Non-transitory computer-readable storage medium storing document management program and information processing apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005281A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Error capture and reporting in a distributed computing environment
US20100257255A1 (en) * 2009-04-03 2010-10-07 Phillips Derek J Tracking remote browser crashes via cookies
WO2012160772A1 (en) * 2011-05-20 2012-11-29 Canon Kabushiki Kaisha Non-transitory computer-readable storage medium storing document management program and information processing apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014106489A1 (zh) * 2013-01-07 2014-07-10 北京奇虎科技有限公司 浏览器崩溃信息的处理方法及系统
CN105827606A (zh) * 2016-03-29 2016-08-03 乐视控股(北京)有限公司 终端崩溃数据的处理方法、装置和终端
CN107665142A (zh) * 2017-07-24 2018-02-06 平安科技(深圳)有限公司 一种检测应用程序业务流程中断的方法、终端及计算机可读存储介质
CN107665142B (zh) * 2017-07-24 2020-04-07 平安科技(深圳)有限公司 一种检测应用程序业务流程中断的方法、终端及计算机可读存储介质
CN113127239A (zh) * 2019-12-31 2021-07-16 深圳云天励飞技术有限公司 页面状态监控方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN103167016B (zh) 2016-09-21

Similar Documents

Publication Publication Date Title
CN103019879B (zh) 浏览器崩溃信息的处理方法及系统
US11061812B2 (en) Using containers for update deployment
US10089179B2 (en) Failure-decoupled volume-level redundancy coding techniques
US20200233790A1 (en) Designer defined mocking service behavior
US20160179824A1 (en) Volume-level redundancy coding techniques for sequential transfer optimized storage devices
CN109361754A (zh) 一种基于浏览器的文件传输方法及装置
CN103077108A (zh) 一种对浏览器崩溃进行预警的方法和系统
CN103078945B (zh) 对浏览器崩溃数据进行处理的方法与系统
CN106547658B (zh) 一种自动化测试方法及装置
CN107528718B (zh) 获取资源的方法、装置和系统
CN106775602B (zh) 一种代码发布方法及装置
CN111694749A (zh) 接口自动测试方法、装置、计算机设备及可读存储介质
US9912747B2 (en) Browser and system for download and download method
US20170109257A1 (en) Use case driven stepping component automation framework
CN103167016A (zh) 一种浏览器崩溃数据上传和处理的方法和装置
CN110851471A (zh) 分布式日志数据处理方法、装置以及系统
US9558060B1 (en) End use self-help delivery system
CN117370203B (zh) 自动化测试方法、系统、电子设备及存储介质
CN103152381A (zh) 一种对浏览器崩溃数据进行处理的方法和服务器系统
CN104346460A (zh) 进行文件下载的方法、装置及浏览器客户端
CN102917053A (zh) 一种用于判断网页网址重写的方法、设备和系统
CN111756594A (zh) 压力测试的控制方法、计算机设备和计算机可读存储介质
CN109740386A (zh) 一种静态资源文件的检测方法及装置
CN107766386B (zh) 一种solr数据迁移方法和装置
CN115080114A (zh) 应用程序的移植处理方法、装置和介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220725

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right