本申请涉及信息技术领域,尤其涉及一种调用文件方法及装置。
背景技术:
在现今的信息化社会中,网络成为人们生活和工作中不可或缺的一部分。人们在浏览网页时,一般是通过浏览器(或者,具有浏览器内核的应用)与服务器建立通信连接,以使得该浏览器可向该服务器发送获取网页页面的请求,并在获得该服务器返回的网页页面后,显示该网页页面。
由于,网页是由一组代码构成的(如,由html5代码构成),并且该网页的代码指向各类资源文件(如,javascript程序源文件、网页的样式文件等)也是由各自的代码构成的,但是代码都是人工编写的,所以只要是代码就可能会存在缺陷或者瑕疵。于是,在服务器向网络提供一个网页之前(即,将一个网页上线之前),一般会在离线环境中,先对该网页中的各个代码进行测试,即,进行离线测试。
但是,在离线测试时,该服务器只能使用模拟的线上数据对该网页进行测试,这就使得离线测试的结果并不一定准确,也就是说通过离线测试确定没有问题的网页,在上线后也可能出现问题。则此时,工作人员需要在服务器端调试该出现问题的资源文件的代码,但是由于服务器一般比较繁忙,在该服务器中执行该调试操作的业务可能需要排队等待,直到有空闲线程来执行该调试操作业务,所以导致每一次调试该出现问题的资源文件的代码所需要的时间较长。并且,由于通常情况下仅靠一次调试很难解决该资源文件的代码中存在的问题,需要进行多次调试,所以进一步使得调试解决问题所需的时间增加(尤其是在对存储于其他服务器中的资源文件进行调试时,还需要浪费大量的传输 时间)。基于上述原因,导致工作人员难以对网页中出现问题的资源文件进行快速、方便的调试。
于是,在现有技术中,针对网页中需要调试的资源文件,采用http代理的方法,将需要调试的资源文件映射到终端本地,以便后续可以利用真实的线上数据,对该资源文件进行调试,其中,http代理方法具体如图1所示。
图1为现有技术http代理的方法,具体包括:
s101:确定网页中需要调试的资源文件,并下载所述资源文件,作为待调试资源文件。
由于http代理方法,是希望工作人员可以在终端本地完成对该资源文件的调试,所以首先该端需要确定网页中需要调试的资源文件,再将该文件下载到该终端本地,作为待调试资源文件,以便后续可以对该待调试资源文件进行调试。
s102:建立虚拟服务器,并为该待调试资源文件确定访问路径。
该待调试资源文件需要通过本地浏览器获取。具体的,该浏览器通过运行网页中的代码,先获得该待调试资源文件的访问路径(即,该待调试资源文件的域名),再根据所述访问路径,向提供该待调试资源文件的服务器发起调用该资源文件的请求,最后获得该服务器返回的该待调试资源文件。
但是,由于工作人员希望能通过在本地直接修改该待调试资源文件,所以此时,该终端还需要伪装成为服务器,以欺骗该浏览器,让该浏览器通过运行同样的网页代码,获取本地已下载的该待调试资源文件。以实现,在该终端本地调试该待调试资源文件的目的。
具体的,该终端需要在本地建立虚拟服务器,并为存储在本地的该待调试资源文件确定访问路径(即,该待调试资源文件的虚拟域名)。
s103:通过所述虚拟服务器,将访问原资源文件的访问路径替换为访问本地待调试资源文件的访问路径。
为了使该终端中的浏览器在通过网页代码访问该资源文件时,不再访问该 资源文件的服务器,而是访问本地的虚拟服务器。此时,还需要对该终端的网络配置进行修改,以使得该终端在接收到该浏览器发起的调用该资源文件的请求时,将访问该资源文件的访问路径替换为访问本地待调试资源文件的访问路径。
使得当该浏览器向网络上的服务器发送调用该资源文件的请求时,该虚拟服务器替代该网络上的服务器接收该调用请求,并将该待调试资源文件返回给该服务器,并使该浏览器确定接收到的是网络上对应服务器返回的资源文件。
通过图1所述的方法,可将该需要调试的资源文件下载到本地后,作为待调试资源文件,在该终端本地对该待调试资源文件经行调试,并且由于该网页中代码并没有改动,所以可以充分的利用线上的真实数据进行调试。进一步的,由于该终端可仅用于调试该待调试资源文件,所以每一次调试过程无需等待可以立刻执行,提高了调试效率。
但是,图1所示的过程仅可针对网页为超文本传输协议(hypertexttransferprotocol,http)的网页实现。对于网页为安全套接字层超文本传输协议(hypertexttransferprotocoloversecuresocketlayer,https)的网页而言,此时浏览器与服务器间的传输需要进行通信加密,即,该浏览器需要利用安全套接字层协议(securesocketlayer,ssl)协议生成的安全证书来验证服务器的身份,并在接收服务器返回的资源文件时,需要验证该资源文件是否携带了对应的安全证书。
但是,由于在图1所示的过程中,该虚拟服务器没有安全证书,也无法提供安全证书,则该浏览器既无法验证该虚拟服务器的身份,也无法确定接收到该虚拟服务器返回的该待调试资源文件的安全性,那么对于https网页来说,该浏览器甚至无法调用该待调试资源文件,也就使得工作人员无法进行后续调试工作。
可见,现有技术中,由于没有安全证书,导致难以进行https网页的代理,无法调用待调试资源文件的问题。
技术实现要素:
本申请实施例提供一种调用文件方法及装置,用以解决现有调用文件方法,采用的http代理方式,由于无法提供安全证书,导致浏览器无法调用待调试资源文件的问题。
本申请实施例提供的一种调用文件方法,包括:
接收针对https网页中网络资源文件的替换指令;
根据所述替换指令,在本地建立虚拟服务器;
通过所述虚拟服务器,将访问所述网络资源文件的访问路径替换为访问本地待调试资源文件的访问路径;
为所述虚拟服务器生成根证书;
根据所述根证书,生成子证书,使得当本地浏览器根据所述https网页发起对所述网络资源文件的调用请求时,由所述虚拟服务器接收到所述调用请求,并根据替换为访问本地待调试资源文件的访问路径,向所述浏览器返回所述待调试资源文件以及所述子证书,使所述浏览器根据所述子证书,获取并执行所述待调试资源文件。
本申请实施例提供的一种调用文件装置,包括:
接收模块,用于接收https网页中网络资源文件的替换指令;
执行模块,用于根据所述替换指令,在本地建立虚拟服务器;
替换模块,用于通过所述虚拟服务器,将访问所述网络资源文件的访问路径替换为访问本地待调试资源文件的访问路径;
根证书模块,用于为所述虚拟服务器生成根证书;
子证书模块,用于根据所述根证书,生成子证书,使得当本地浏览器根据所述https网页发起对所述网络资源文件的调用请求时,由所述虚拟服务器接收到所述调用请求,并根据替换为访问本地待调试资源文件的访问路径,向所述浏览器返回所述待调试资源文件以及所述子证书,使所述浏览器根据所述子 证书,获取并执行所述待调试资源文件。
本申请实施例提供一种调用文件方法及装置,该方法当接收到针对https网页中网络资源文件的替换指令时,根据该替换指令,在本地建立虚拟服务器,并通过该虚拟服务器,将访问该网络资源文件的访问路径替换为访问本地的待调试资源文件的访问路径,之后为该虚拟服务器生成根证书以及子证书,使得当本地浏览器根据http网页发起对该网络资源文件的调用请求时,由该虚拟服务器接收该调用请求,并向该浏览器返回该待调试资源文件以及该子证书,最终使得该浏览器可以根据该子证书,调用并执行该待调试资源文件。通过上述方法,由于为虚拟服务器生成了根证书以及对应的子证书,使得该虚拟服务器可向该浏览器提供安全证书,使该浏览器可正常调用该待调试资源文件。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术http代理过程;
图2为本申请实施例提供的调用文件过程;
图3是本申请实施例提供一种调用文件装置的结构示意图。
具体实施方式
在本申请实施例中,在接收到对https网页中的网络资源的替换指令时,该终端先根据该指令,先在该终端本地建立虚拟服务器,再通过该虚拟服务器,将该终端中访问该网络资源文件的访问路径替换为访问本地的待调试资源文件的访问路径,最后为该虚拟服务器生成根证书以及对应的子证书。可见本申请所述的方法,通过为该虚拟服务器生成根证书(即,该虚拟服务器颁发的自签证书)的方法,使得该虚拟服务器可以欺骗该浏览器,使该浏览器确定该虚 拟服务器是提供https网页中网络资源文件的服务器,并且,当向该浏览器返回本地的待调试资源文件时,可以一并返回由该根证书生成的子证书,使得该浏览器确定该待调试资源文件是安全的文件,最终使得该浏览器可以调用并执行该待调试资源文件,解决了由于虚拟服务器无法提供安全证书,导致难以进行https网页的代理,无法调用待调试资源文件的问题。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2为本申请实施例提供的调用文件过程,具体包括以下步骤:
s201:接收针对https网页中网络资源文件的替换指令。
由于需要在终端本地对https网页中的网络资源文件进行调试,所以在调试开始之前,需要先将本地的待调试资源文件替换为该https网页中的该网络资源文件。但是,由于此时尚未开始对该待调试资源文件的调试,所以当前的该待调试资源文件可以是任意文件,并可是仅仅拥有文件标识以及地址但是没有相应的内容的文件(即,是一个空白的文件),并不妨碍后续该待调试资源文件被调用。
于是,在本申请实施例中,该终端可接收针对https网页中的该网络资源文件的替换指令。
具体的,该替换指令可以是一行命令行,用于使该终端确定需要替换的网络资源文件以及预先保存在本地的待调试资源文件。其中,该替换指令包含:该网络资源文件的标识、该网络资源文件的访问路径、预先保存在本地的该待调试资源文件的标识及该待调试资源文件的地址。
需要说明的是,该终端可以是个人电脑(personalcomputer,pc)、手机、平板电脑等,该网络资源文件可以是在浏览器上运行的java脚本语言 (javascript,js)程序源文件、层叠样式表(cascadingstylesheets,css)文件等可由服务器通过统一资源定位符(uniformresourcelocator,url)提供的文件。
例如,假设https网页a中的音乐播放按钮,在被点击后会向浏览器返回用于调用本地播放器应用播放音频文件的js程序源文件(以下,简称音频js文件),使该https网页a通过本地播放器应用播放指定的音频文件,但是工作人员在该https网页a上线运行后,发现该音乐播放按钮在点击后,该https网页a并没有播放音频文件,于是,该工作人员需要在自己的pc上对该https网页a中出现问题的该js程序源文件。
进一步假设,该pc接收到了针对该https网页a中的音频js文件(即,网络资源文件)的替换指令,并且该替换指令中包含,该音频js文件的标识:a.js、该音频js文件的访问路径:https://www.xx.com/xx/a.js、该pc本地预先保存的待调试资源文件的标识:b.js以及该待调试资源文件的地址:e:\调试工作\待调试文件\b.js。
s202:根据所述替换指令,在本地建立虚拟服务器。
在本申请实施例中,正常情况下该网络资源文件的调用过程是:该终端中的浏览器通过运行该https网页的代码,先确定需要调用的网络资源文件的访问路径,再向存储该网络资源文件的服务器发起调用该网络资源文件的请求(即,根据该网络资源文件的访问路径发起调用请求),最后该浏览器接收该服务器返回的该网络资源文件以及该服务器提供的子证书,完成对该网络资源文件的调用。
但是在本申请中,由于需要该浏览器能调用本地的该待调试资源文件(以便后续可以在该终端本地进行调试),所以还需要为该待调试资源文件提供一个该浏览器可以访问的访问路径。于是在本申请中,需要先将该终端伪装成存储该带调试资源文件的虚拟服务器,并确定该虚拟服务器的域名,使得该浏览器可以通过该虚拟服务器的域名访问该虚拟服务器,以便进行后续为该待调试 资源文件生成访问路径。
具体的在该终端本地建立虚拟服务器的过程与现有技术一致,通过建立该虚拟服务器以及确定该虚拟服务器域名,使得该终端中的浏览器可以通过该虚拟服务器的域名访问建立在该终端本地的虚拟服务器,为该浏览器调用保存在本地的该待调试资源文件建立了基础。
继续沿用上例,假设该pc在接收到该替换指令后,在该pc上建立了虚拟服务器α,并确定其域名为:https://www.yy.com。
s203:通过所述虚拟服务器,将访问所述网络资源文件的访问路径替换为访问本地待调试资源文件的访问路径。
在本申请实施例中,当建立了虚拟服务器之后,便可为该待调试资源文件生成访问路径,使该浏览器可以根据该待调试资源文件的访问路径调用该待调试资源文件。但是,此时该浏览器根据该https网页的网页代码访问的还是该网络资源文件的路径,所以还需要将访问该网络资源文件的访问路径替换为访问该待调试资源文件的访问路径。
具体的,首先根据该虚拟服务器的域名以及该待调试文件的地址,生成该待调试文件的访问路径(即,该待调试资源文件的虚拟域名),则此时可以认为该待调试资源文件是存储于该虚拟服务器中的文件。
其次,修改该终端的网络配置,将访问该网络资源文件的访问路径替换为访问该待调试资源文件的访问路径。使得当该终端接收到该浏览器发送的基于该网络资源文件的访问路径的访问、调用或查询请求时,根据上述访问路径的替换关系,使该虚拟服务器接收该访问、调用、查询请求,并且将该访问、调用、查询请求的目的地指向该待调试资源文件的访问路径。
另外,为了后续调试过程中可以最大程度上利用线上的真实数据运行该https网页,保证调试结果的可靠性,在本申请中可仅修改针对该网络资源文件的访问路径为该待调试资源文件的访问路径,而不改动该浏览器发出的针对其他资源文件访问路径,使得当该浏览器在调用该https网页上的其他资源文件 时,根据该https网页确定的访问路径没有被改变,该浏览器最终调用的还是网络上的其他资源文件,而当该浏览器调用该网络资源文件时,该浏览器确定的访问路径被替换为指向该终端本地的该待调试资源文件,该浏览器调用的是本地保存的该待调试资源文件。进而使得在后续的调试过程中,该浏览器可以最大程度上使用线上的真实数据,使工作人员仅调试该该调试资源文件。
需要说明的是,为该待调试资源生成访问路径的方法与现有技术相同,可任意为该待调试资源文件生成一个基于该虚拟服务器域名的访问路径,并记录该访问路径与该待调试资源文件的地址的对应关系,使得该虚拟服务器可以可根据该访问路径确定该待调试资源文件。
继续沿用上例,假设该pc通过该虚拟服务器α的域名https://www.yy.com以及该待调试资源文件b.js的地址e:\调试工作\待调试文件\b.js,生成所述待调试资源文件b.js的访问路径:https://www.yy.com/b.js。并且,该pc还将网络配置中访问路径https://www.xx.com/xx/a.js替换为https://www.yy.com/b.js。使得当该pc接收到终端浏览器b发出的针对该https网页a的音频js文件的调用请求时,根据网络配置中修改的访问路径,该虚拟服务器α接收该调用请求,并根据访问路径https://www.yy.com/b.js调用该待调试资源文件b.js。
s204:为所述虚拟服务器生成根证书。
在本申请实施例中,步骤s101中已经写明,本申请是基于https网页的,而对于https网页来说,该浏览器与该虚拟服务器间的传输需要进行通信加密,于是为了使该虚拟服务器能对与该浏览器间的传输进行通信加密,还需要为该虚拟服务器生成根证书。
具体的,由于该根证书仅作为该虚拟服务器的安全证书在该终端中使用,所以无需权威的、公信力较高的安全证书(如,证书授权中心,certificateauthority,颁发的ca证书),仅需能欺骗该浏览器,使该浏览器可以与该虚拟服务器件的传输进行通信加密即可。
需要说明的是,该根证书是各种类型的安全证书,如,域名型ssl(domain validationssl,dvssl)证书、企业型ssl(organizationvalidationssl,ovssl)证书、增强型ssl(extendedvalidationssl,evssl)证书、通配符ssl(wildcardssl)证书,本申请对此并不具体限定。
继续沿用上例,假设,为该虚拟服务器α生成了根证书β。
s205:根据所述根证书,生成子证书。
在本申请实施例中,当为该虚拟服务器生成了根证书之后(即,为该虚拟服务器颁发了自签证书之后),为了使该浏览器可以调用保存于该终端本地的该待调试资源文件,该虚拟服务器还可根据该根证书,生成用于发送给该浏览器的子证书,以便该浏览器可以根据该子证书确定该待调试资源文件是安全的。生成了根证书及其子证书后,该浏览器即可与该虚拟服务器进行基于https网页的通信连接。
具体的与现有技术一致,该虚拟服务器基于该根证书生成用于发送给该浏览器的子证书,使得当该终端中的该浏览器在根据该https网页发起对该网络资源文件的调用请求时,由该虚拟服务器接收到该调用请求,并根据替换为访问本地待调试资源文件的访问路径,向该浏览器返回该待调试资源文件以及该子证书,进而使该浏览器根据该子证书确定该待调试资源文件是安全的,获取并执行该待调试资源文件。
继续沿用上例,假设,该虚拟服务器根据该根证书β生成子证书γ,则当该浏览器b在根据该https网页a向https://www.xx.com/xx/a.js发起调用请求时,该虚拟服务器α接收到向https://www.yy.com/b.js发起的调用请求,则该虚拟服务器α向该浏览器返回该待调试资源文件b.js以及该子证书γ,使得该浏览器b在接收到该待调试资源文件b.js以及该子证书γ后,根据该子证书γ确定该待调试资源文件b.js安全可用,获取并执行该待调试资源文件b.js。
通过如图2所示的调用文件方法,可见,由于为该虚拟服务器生成了根证书以及子证书,所以即使对于浏览器根据https网页发起的网络资源文件的调用请求,该虚拟服务器也可通过该根证书欺骗该浏览器,使该浏览器确定该虚 拟服务器是提供该https网页中的网络资源文件的服务器,并且,该虚拟服务通过向该浏览器返回该待调试资源文件以及该子证书,使得该待调试资源文件可以通过该子证书欺骗该浏览器,让该浏览器确定该待调试资源文件的身份是安全的。从而实现https网页中的网络资源文件的替换,并使该浏览器可以获取、执行本地的待调试资源文件。使得工作人员后续可以在终端本地对出现问题的https网页中的网络资源文件进行调试。
另外,如在步骤s201中所述的,该待调试资源文件可以是任意文件,于是,为了后续可以对该待调试资源文件进行调试,在本申请中还可以下载该网络资源文件至该待调试资源文件的地址。
具体的,该终端可根据该替换指令,确定该网络资源文件的访问路径,并根据该网络资源文件的访问路径下载该网络资源文件至该待调试资源文件的地址,则此时该待调试资源文件不再是任意文件,而已经被替换为已下载的该网络资源文件,于是后续工作人员可以在本地对该待调试资源文件进行调试。
需要说明的是,该网络资源文件的下载以及该待调试资源文件的替换可以在本申请中任一步骤中进行,仅需要保证在步骤s203中生成的该待调试资源文件的访问路径为已替换为网络资源文件的该待调试资源文件的访问路径即可。
基于图2所示的调用文件过程,本申请实施例还提供一种调用文件装置,如图3所示。
图3是本申请实施例提供一种调用文件装置的结构示意图,具体包括:
接收模块301,用于接收https网页中网络资源文件的替换指令;
执行模块302,用于根据所述替换指令,在本地建立虚拟服务器;
替换模块303,用于通过所述虚拟服务器,将访问所述网络资源文件的访问路径替换为访问本地待调试资源文件的访问路径;
根证书模块304,用于为所述虚拟服务器生成根证书;
子证书模块305,用于根据所述根证书,生成子证书,使得当本地浏览器 根据所述https网页发起对所述网络资源文件的调用请求时,由所述虚拟服务器接收到所述调用请求,并根据替换为访问本地待调试资源文件的访问路径,向所述浏览器返回所述待调试资源文件以及所述子证书,使所述浏览器根据所述子证书,获取并执行所述待调试资源文件。
所述替换指令包含:所述网络资源文件的标识、所述网络资源文件的访问路径、预先保存在本地的所述待调试资源文件的标识及所述待调试资源文件地址。
执行模块302具体用于,根据所述替换请求,在本地建立虚拟服务器,并确定所述虚拟服务器的域名。
替换模块303具体用于,根据所述虚拟服务器的域名以及所述待调试资源文件地址,生成所述待调试资源的访问路径,将访问所述网络资源文件的访问路径替换为访问本地待调试资源文件的访问路径。
所述装置还包括:
下载模块306,用于下载所述网络资源文件至所述待调试资源文件的地址。
具体的,上述如图3所示的数据库语句编译装置可以位于终端中,该终端可以是手机、平板电脑或者pc。
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读 存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。