用于在区块链中实现网页访问的方法、装置和存储介质与流程

文档序号:16754965发布日期:2019-01-29 17:16阅读:375来源:国知局
用于在区块链中实现网页访问的方法、装置和存储介质与流程

本公开的实施例总体上涉及区块链技术,并且更具体地涉及在区块链中实现网页访问的方法、装置和存储介质。



背景技术:

区块链(blockchain)是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。所谓价值互联网,是指使得用户能够通过网络方便、快捷、低成本地传递价值。区块链技术包括利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据等。

智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,智能合约可以为区块链节点设备中执行特定功能的计算机程序。用户通过使用智能合约进行事务、共享数据、建立信任,并由区块链技术的特性而保障数据的存储、读取以及执行整个过程透明可跟踪、不可篡改。

由于存入区块链中的数据无法被篡改,因而区块链在数据防篡改方面也能够得到保证。而且,由于区块链可通过将加密数据块按照时间顺序叠加来生成持久的不可修改的记录,并且将记录存储在区块链网络的各个节点中,因此这样可以使得能够以去中心化的方式来集体管理一个可靠数据库。总之,区块链在数据防篡改、透明性以及去中心化方面具有技术优势。



技术实现要素:

本公开的实施例提供了用于在区块链中实现网页访问的方法、装置和存储介质。

在本公开的第一方面,提供了一种用于在区块链中实现网页访问的方法,包括:接收来自客户端设备的针对存储在所述区块链的账本中的网页的访问请求;响应于所述访问请求,从所述账本中获取与所述网页相关联的网页代码,所述网页代码包括代码类型标志;基于所述代码类型标志判断所述网页代码为动态网页代码还是能够在所述客户端设备处解析的第一静态网页代码;以及在所述网页代码为所述第一静态网页代码的情况下,向所述客户端设备返回所述第一静态网页代码。

在本公开的第二方面,提供了一种用于在区块链中实现网页访问的装置,包括:处理器;存储器,所述存储器耦合至所述处理器并且存储有指令,当所述指令执行时使得所述处理器执行以下动作:接收来自客户端设备的针对存储在所述区块链的账本中的网页的访问请求;响应于所述访问请求,从所述账本中获取与所述网页相关联的网页代码,所述网页代码包括代码类型标志;基于所述代码类型标志判断所述网页代码为动态网页代码还是能够在所述客户端设备处解析的第一静态网页代码;以及在所述网页代码为所述第一静态网页代码的情况下,向所述客户端设备返回所述第一静态网页代码。

在本公开的第三方面,提供了一种计算机可读存储介质,其具有存储在其上的计算机可执行指令,所述计算机可执行指令在设备中运行时使得所述设备执行根据本公开的第一方面所述的方法。

经由本公开的实施例,由于可以通过区块链来提供对网页的访问,因此提高了网页访问的安全性和可靠性。

附图说明

图1可用于实施本公开的示例实施例的区块链网络100(此后简称为区块链100)的架构的示意图。

图2例示了根据本公开的实施例的web服务智能合约的大致工作原理的示图。

图3例示了根据本公开的实施例的用于在区块链中实现网页访问的方法300的流程图。

图4例示了根据本公开的示例实施例的用于在区块链中实现网页访问的方法400的流程图。

图5例示了根据本公开的示例实施例的在区块链网络中用于管理电子数据的装置500的示意性框图。

具体实施方式

下面将参照附图更详细地描述本公开的各个示例性实施例。虽然附图中流程图和示意图显示了本公开的一些实施例,然而应当理解的,本公开可以通过各种形式来实现,而且不应被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于说明性作用,并非用于限制本公开的保护范围。

为了便于描述,下面对本公开中出现的一些术语进行说明,应当理解,本申请所使用的术语应解释为具有与其在本申请说明书的上下文以及有关领域中的意义一致的意义。本公开内容中的术语“包括”、“包含”及类似术语应当被理解为是开放性的术语,即“包括但不限于”,表示还可以包括其他内容。

在本公开的实施例中,术语“基于”是“至少部分地基于”。

在本公开的实施例中,术语“一个实施例”表示“至少一个实施例”。

在本公开的实施例中,术语“另一实施例”表示“至少一个另外的实施例”,等等。

在本公开的实施例中,代码类型标志用于指示相应的网页代码的类型,即用于指示该网页代码属于静态网页代码还是动态网页代码。

在本公开的实施例中,静态网页代码是与静态网页相关联的网页代码,其中这种静态网页不包含用于在web服务智能合约中运行的任何脚本,网页上的每一行代码都是由网页设计人员预先编写好后,放置到区块链的账本中的,在发送到客户端设备的浏览器上后不再发生任何变化。

在本公开的实施例中,动态网页代码是与动态网页相关联的网页代码,其包括可用于生成相应的静态网页代码的程序包。在本公开的示例中,动态网页是采用动态网站技术生成的网页,其需要在web服务智能合约中执行以生成相应的静态网页以后才能在客户端设备的浏览器处解析执行。

在本公开的实施例中,待拼装的网页代码是基于动态网页代码从账本中获取的、可用于拼装成相应的静态网页代码的网页代码。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。

应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解并实现被公开的实施例,而并非以任何方式限制发明的范围。

在完全基于区块链来实现的业务系统中,通常会将关键用户交易信息(例如,对于使用区块链实现的保险销售系统而言,其可包括关于供用户购买的保险的详细描述、保费、条款等)存储在区块链中,并且还经常会将一些辅助用户交易信息(例如,同样对于使用区块链实现的保险销售系统而言,其可以包括例如工作人员的联系方式等)存储在区块链上。客户端设备可能需要访问这些信息,以例如购买保险等、查看已购买的保险等,因此经常需要将相关的交易信息呈现给客户端设备。

目前,通常在区块链网络外实现专门的web服务器,以经由网页来向用户提供对在这种系统中生成的业务数据的访问。然而,这种web服务器经常会存在各种安全漏洞。例如,黑客攻击、蠕虫病毒以及木马是因特网比较常见的安全漏洞,而口令攻击、拒绝服务攻击以及ip欺骗又是黑客攻击比较常见的类型。因此,随着网络技术的不断发展,web服务器面临着越来越多的安全威胁,从而直接影响到web服务器的安全,进而影响到通过该web服务器来提供的数据的安全性和可靠性。

因此,有必要提供一种可以以较高的安全性和可靠性来实现网页访问的技术。

本公开的实施例提供了一种用于在区块链中实现网页访问的方法、装置和存储介质,其中与网页相关的代码以及用于在该网页上呈现的(更精确地说,用于在网页上呈现的)数据(例如,业务数据)都被事先存储在区块链的账本中(例如,可通过事先将网页发布在区块链的账本中的方式来实现这种存储),并通过在区块链上运行的智能合约(例如,web服务智能合约)来提供对各网页的访问,从而提高了网页访问的安全性和可靠性。

图1例示了可用于实施本公开的示例实施例的区块链网络100(此后简称为区块链100)的架构的示意图。区块链100包括通过网络连接的多个区块链节点设备(在本文中也被称为区块链节点),例如区块链节点102、104、106、108、110、112。虽然图1中示出的区块链网络100包括三个区块链节点,但应领会,在实际应用中,区块链网络100可包括更多或更少的区块链节点。在本公开的实施例中,这些区块链节点中的每个节点可以为计算设备,计算设备可以为服务器或者用户设备(例如,移动设备,诸如智能手机、平板设备、便携式计算机等,或固定设备,诸如台式计算机)。这些区块链节点设备之间可以通过网络来同步数据,因而能够避免中心化节点所带来的安全隐患和安全风险。网络可以是任何有线和/或无线网络。任选地,网络可以包括但不限于,因特网、广域网、城域网、局域网、虚拟专用网络、无线通信网络等等。在本公开的实施例中,客户端设备114(例如,移动设备,诸如智能手机、平板设备、便携式计算机等,或固定设备,诸如台式计算机)可经由网络(例如,有线网络或无线网络)连接到区块链网络100的区块链节点,以例如向区块链100的节点发送对存储在区块链的账本中的网页进行访问的访问请求,或从区块链100中的节点接收所需的代码或数据以供在其浏览器中进行呈现。

图2例示了根据本公开的实施例的web服务智能合约的大致工作原理的示图。如图2所示,区块链节点200(该区块链节点可以是以上提到的区块链网络100中的任何一个区块链节点)包括智能合约引擎201、web服务智能合约202和通信接口203。通信接口203能够与客户端设备进行通信,以从客户端设备接收数据或向客户端设备发送数据。通信接口203还可与智能合约引擎201进行通信,以从智能合约引擎接收数据或向智能合约引擎发送数据。例如,在本公开的实施例中,通信接口203可从客户端设备接收对存储在区块链的账本中的网页进行访问的访问请求,并将该访问请求转发给智能合约引擎201。智能合约引擎201在接收由通信接口203转发的该访问请求后,可调用web服务智能合约以通过该web服务智能合约来处理该访问请求。web服务智能合约202可被配置成响应于访问请求,从账本中获取与所请求的网页相关联的网页代码,该网页代码可以是动态网页代码或静态网页代码。web服务智能合约202还可被配置成,在所获取的网页代码是静态网页代码的情况下,将该静态网页代码发送给智能合约引擎201,以供智能合约引擎201经由通信接口203将接收到的静态网页代码返回给客户端设备。web服务智能合约202还可被配置成,在所获取的网页代码是动态网页代码的情况下,触发对该动态网页代码的执行,以生成相应的静态网页代码,并将所生成的静态网页代码发送给智能合约引擎201,以供智能合约引擎201经由通信接口203将所生成的静态网页代码返回给客户端设备。在本公开的实施例中,通信接口203还可接收来自客户端设备的将一个或多个网页发布在区块链上的发布请求,并将该发布请求转发给智能合约引擎201。智能合约引擎201在接收到由通信接口203转发的发布请求后,可调用web服务智能合约来处理该发布请求。因此,这时,web服务智能合约还可被配置成响应于该发布请求,将一个或多个网页存储在所述区块链的账本中。

在本公开中,为了防止恶意或者错误的智能合约对区块链节点产生破坏,智能合约引擎可将web服务智能合约放置在沙盒中运行,使得该web服务智能合约没有权限访问沙盒外部的资源和信息。

应当理解,由于区块链的对等性,在一些情况下,每一个区块链节点以及其上运行的智能合约实际上具有相同的数据并且执行相同的功能。但是,出于简化说明的目的,在本公开的实施例中,以某个区块链节点作为执行主体来执行一些动作和操作,但是实际上这些动作和操作也可以由该区块链上的任一其他区块链节点执行,而不会超出本申请的保护范围。

图3例示了根据本公开的实施例的用于在区块链中实现网页访问的方法300的流程图。

在步骤301中,客户端设备向区块链节点发送要访问存储在区块链的账本中的网页的访问请求。该一个示例中,该访问请求可包括用于指示所请求的网页在区块链的账本中的地址的网页标识。例如,作为示例,在查询保险的网页访问请求中,可包括例如网页标识http://insurance.dianrong.com/id=xxxxxx,根据该网页标识,就可以在区块链的账本中找到关联的网页代码了。

区块链节点的通信接口可接收该访问请求,并将该访问请求转发给该区块链节点的智能合约引擎。智能合约引擎接收到由通信接口转发的访问请求后将自动调用web服务智能合约,因此除非明确指出,否则以下过程中由区块链节点执行的步骤可利用该web服务智能合约来实现。

在步骤302中,该区块链节点例如基于网页标识从账本中获取与该网页相关联的网页代码,该网页代码包括用于指示其属于静态网页代码还是动态网页代码的代码类型标志。

在步骤303中,区块链节点判断该网页代码为动态网页代码还是能够在所述客户端设备处解析的第一静态网页代码。在本公开的实施例中,静态网页代码是与静态网页相关联的网页代码。在本公开中,这种静态网页不包含要在web服务智能合约中运行的任何脚本,网页上的每一行代码都是由网页设计人员预先编写好后,放置到区块链的账本中的,在发送到客户端设备的浏览器(例如,ie浏览器、谷歌浏览器、火狐浏览器等等)上后不再发生任何变化。动态网页代码是与动态网页相关联的网页代码,其包括生成静态网页代码的程序包。在本公开的示例中,动态网页是采用动态网站技术生成的网页,其需要在web服务智能合约中执行以生成相应的静态网页以后才能在客户端设备的浏览器处解析执行。在本公开的实施例中,第一网页静态代码可包括但不限于与所述网页相关联的html代码、javascript代码、css代码。

在步骤304中,在所述网页代码为第一静态网页代码的情况下,直接向客户端设备返回该第一静态网页代码。

在步骤305中,客户端设备在接收到第一静态网页代码后,经由其上运行的浏览器对该第一静态网页代码进行解析。

在客户端设备对该第一静态网页代码进行解析的过程中,可自动生成一个或多个子访问请求。每一子访问请求都用于向区块链节点请求访问用于在所述网页中呈现的一个或多个数据。在一个示例中,每一子访问请求都可包括用于指示要获取的一个或多个数据在区块链的账本中的地址的标识信息。因此,在步骤306,客户端设备将生成的子访问请求发送给区块链节点。

在步骤307中,响应于该子访问请求,从区块链的账本中获取该一个或多个数据(例如基于以上提到的标识信息),该相应的一个或多个数据可包括文本数据、列表数据等,也可包括图片数据、视频数据、和音频数据等。在步骤308中,向所述客户端设备返回该一个或多个数据,以供在网页中呈现。在步骤309中,在网页代码为动态网页代码的情况下,区块链节点可通过执行该动态网页代码来从所述账本中获取与所述网页相关联的一个或多个待拼装的网页代码。这些待拼装的网页代码可以是该动态网页代码中引用的网页代码,例如jsp页面代码。

在步骤310中,区块链节点将该一个或多个待拼装的网页代码拼装成能够在客户端设备处解析的第二静态网页代码。例如,区块链节点可通过http智能合约例如利用相应jsp代码将这些待拼装的网页代码拼装成第二静态网页代码。

在步骤311中,区块链节点向客户端设备返回所述第二静态网页代码。与前面提到的第一网页静态代码相似,第二网页静态代码可包括与所述网页相关联的html代码、javascript代码、css代码等等。

在步骤312中,客户端设备在接收到第二静态网页代码后,可经由其上运行的浏览器对该第二静态网页代码进行解析。在客户端设备对该第二静态网页代码进行解析的过程中,也可自动生成一个或多个子访问请求。每一子访问请求都用于向区块链节点请求访问用于在所述网页中呈现的一个或多个数据。在一个示例中,每一子访问请求都可包括用于指示要获取的一个或多个数据在区块链的账本中的地址的标识信息。因此,在步骤313,客户端设备将生成的子访问请求发送给区块链节点。

在步骤314中响应于该子访问请求,从区块链的账本中获取一个或多个数据(例如基于以上提到的标识信息)。

在步骤315,向所述客户端设备返回该一个或多个数据,以供在网页中呈现。

虽然图3中并未示出,但是为了实现能够在区块链上对所需网页的访问,还需要事先将相应的网页发布在区块链上,包括:客户端设备向区块链节点发送将一个或多个新的网页发布在区块链上的发布请求。区块链节点的通信接口接收到该发布请求后,将该发布请求转发给该区块链节点的智能合约引擎。智能合约引擎在接收到经由通信接口转发的发布请求后,调用web服务智能合约来对该发布请求作出响应,将一个或多个新的网页(包括该网页的网页代码和用于在该网页上呈现的数据)存储在区块链的账本中。在本公开的实施例中,存储在区块链的账本中的网页代码包括代码类型标志,该代码类型标志用于指示该网页代码属于静态网页代码还是动态网页代码。

根据以上方法可知,由于与网页相关的代码以及用于在该网页上呈现的数据都被事先存储在区块链的账本中,并通过在区块链上运行的智能合约(例如,web服务智能合约)来提供对各网页的访问,从而提高了网页访问的安全性和可靠性。

图4例示了根据本公开的示例实施例的用于在区块链中实现网页访问的方法400的流程图。应领会,方法400例如可以由区块链中的任何一个区块链节点(例如通过调用web服务智能合约)来执行。

在步骤401,接收来自客户端设备的针对存储在区块链的账本中的网页的访问请求。在步骤402,响应于该访问请求,从账本中获取与该网页相关联的网页代码,该网页代码包括代码类型标志。在步骤403,基于该代码类型标志判断该网页代码为动态网页代码还是能够在客户端设备处解析的第一静态网页代码。在步骤404,在网页代码为第一静态网页代码的情况下,向客户端设备返回该第一静态网页代码。

图5例示了用于实施本公开的实施例的在区块链网络中用于操作数字凭证的装置500的示意性框图,其中装置500可包括处理器510和存储器520,存储器520耦合至处理器510并且存储有指令,当这些指令执行时使得处理器610执行上文描述的方法300和400中的一个或多个动作或步骤。

具体而言,当存储器520中存储的指令执行时使得处理器510执行以下动作:接收来自客户端设备的针对存储在所述区块链的账本中的网页的访问请求;响应于所述访问请求,从所述账本中获取与所述网页相关联的网页代码,所述网页代码包括代码类型标志;基于所述代码类型标志判断所述网页代码为动态网页代码还是能够在所述客户端设备处解析的第一静态网页代码;以及在所述网页代码为所述第一静态网页代码的情况下,向所述客户端设备返回所述第一静态网页代码。其中,所述第一网页静态代码至少包括以下之一:与所述网页相关联的html代码、javascript代码、css代码。

在一个实施例中,当所述指令执行时还使得所述处理器执行以下动作:收来自所述客户端设备的针对用于在所述网页中呈现的一个或多个数据的子访问请求,其中,所述子访问请求由所述客户端设备在解析所述第一静态网页代码的过程中自动生成;响应于所述子访问请求,从所述账本中获取所述一个或多个数据;向所述客户端设备返回所述一个或多个数据。

在一个实施例中,当所述指令执行时还使得所述处理器执行以下动作:在所述网页代码为动态网页代码的情况下,执行所述动态网页代码;在执行所述动态网页代码的过程中,从所述账本中获取与所述网页相关联的附加网页代码;基于所述附加网页代码,生成能够在所述客户端设备处解析的第二静态网页代码;以及向所述客户端设备返回所述第二静态网页代码。其中,所述第二网页静态代码至少包括以下之一:与所述网页相关联的html代码、javascript代码、css代码。

在一个实施例中,当所述指令执行时还使得所述处理器执行以下动作:接收来自所述客户端设备的针对要在所述网页中呈现的一个或多个数据的子访问请求,其中,所述子访问请求由所述客户端设备在解析所述第二静态网页代码的过程中自动生成;响应于所述子访问请求,从所述账本中获取所述一个或多个数据;向所述客户端设备返回所述一个或多个数据。

在一个实施例中,当所述指令执行时还使得所述处理器执行以下动作:接收来自所述客户端设备的将一个或多个新网页发布在所述区块链上的发布请求;以及响应于所述发布请求,将一个或多个新网页存储在所述区块链的账本中。

本公开可以被具体实现为一种用于在区块链中实现网页访问的方法、装置和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。

本公开中所描述的方法和功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的硬件逻辑组件的示意性类型包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)等。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

附图中的流程图和框图显示了根据本公开的多个实施例的方法、区块链节点和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或示意图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。

例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

通过以上描述和相关附图中所给出的教导,这里所给出的本公开的许多修改形式和其它实施方式将被本公开相关领域的技术人员所意识到。因此,所要理解的是,本公开的实施方式并不局限于所公开的具体实施方式,并且修改形式和其它实施方式意在包括在本公开的范围之内。此外,虽然以上描述和相关附图在部件和/或功能的某些示例组合形式的背景下对示例实施方式进行了描述,但是应当意识到的是,可以由备选实施方式提供部件和/或功能的不同组合形式而并不背离本公开的范围。就这点而言,例如,与以上明确描述的有所不同的部件和/或功能的其它组合形式也被预期处于本公开的范围之内。虽然这里采用了具体术语,但是它们仅以一般且描述性的含义所使用而并非意在进行限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1