本发明专利技术实施例提供一种URL解析方法及设备。该方法包括:按序扫描URL字符串中的字符;根据当前扫描的字符、构建的URL的FSM的状态转换表和FSM的当前状态,更新FSM的当前状态;当扫描URL的路径path域的字符时,根据当前扫描的字符、构建path域的子FSM的状态转换表和子FSM的当前状态更新子FSM的状态,子FSM的状态转换表包括在不同子FSM的当前状态下扫描不同类型字符时所对应的更新后的子FSM的状态;当FSM和子FSM的终态均为接受状态,则判定URL符合URL语法;否则,判定URL不符合URL语法。
【技术实现步骤摘要】
本专利技术涉及计算机和通信
,尤其涉及一种URL解析方法及设备。
技术介绍
统一资源定位符(Uniform Resource Locator,简称URL)是因特网上标准的资 源地址,用于完整地描述因特网上的网页和其他资源,也可标识本地资源。利用URL能 唯一标识因特网上的每一个网页或资源。URL由一系列字符组成,格式为protocol:〃 @host 。 其中,protocol域 指定传输协议,例如HTTP协议,FTP协议等;host域指定存放资源的服务器的主机名或IP 地址;username和password域指定连接到服务器所需的用户名和密码;port域指定上述 传输协议的端口号;path域指定主机上一个目录或文件的地址;query域指定给动态网页 传递的参数;fragment域指定网络资源中的片断。另外,上述URL格式中,带方括号[]的 域为可选项。 客户端程序利用URL请求访问因特网服务器的信息资源时,需要确定请求使用的 协议、请求的服务器、请求资源的标志符和存储路径等信息。上述信息都由URL地址提供。 PHP源码中用到的URL解析方法,先裸扫描URL,利用库函数确定分隔字符的位置, 以逐步分隔URL各个域。URL分隔完成后,再对URL各个域单独扫描,判断是否需要编解码 操作,如果需要就进行相应的百分号编解码转换。此过程相当于重新对整个URL域进行扫 描。该方案中没有提供对path域处理的方法,需要用户自己提供。并且,对path域处理时, 需再次对path域进行扫描。由于需要反复扫描解析path域,现有技术解析效率低,资源消 耗大。
技术实现思路
本专利技术实施例提供一种URL解析方法及设备,提高了 URL解析过程中的资源利用率。 本专利技术实施例提供一种URL解析方法,包括 按序扫描URL字符串中的字符; 根据当前扫描的字符、URL的有限状态转换机FSM的状态转换表和所述FSM的当 前状态,更新所述FSM的当前状态;所述FSM的状态转换表包括所述FSM在不同的状态下, 扫描不同类型字符时,所对应的更新状态; 当扫描URL的路径path域的字符时,根据当前扫描的字符、所述path域的子有限 状态转换机子FSM的状态转换表和所述子FSM的当前状态,更新所述子FSM的状态,所述子 FSM的状态转换表包括所述子FSM在不同的状态下,扫描不同类型字符时,所对应的更新状 态; 当所述FSM和所述子FSM的终态均为接受状态时,则判定所述URL符合URL语法; 否则,判定所述URL不符合URL语法。 本专利技术实施例提供一种URL解析设备,包括 扫描模块,用于按序扫描URL字符串中的字符; 第一状态转换模块,用于根据所述扫描模块当前扫描的字符、URL的有限状态转换 机FSM的状态转换表和所述FSM的当前状态,更新所述FSM的当前状态,所述FSM的状态转 换表包括所述FSM在不同的状态下,扫描不同类型字符时,所对应的更新状态; 第二状态转换模块,用于当扫描URL的路径path域的字符时,根据当前扫描的字 符、所述path域的子有限状态转换机子FSM的状态转换表和所述子FSM的当前状态,更新 所述子FSM的状态,所述子FSM的状态转换表所述子FSM在不同的状态下,扫描不同类型字 符时,所对应的更新状态;解析结果判定模块,用于当所述FSM和所述子FSM的终态均为接 受状态时,判定所述URL符合URL语法;否则,判定所述URL不符合URL语法。 本专利技术实施例URL解析方法,在按序扫描URL字符串时,将当前扫描字符输入FSM, 以使FSM的状态发生转移。FSM状态转移的过程即是分隔URL各个域的过程,同时在FSM的 当前状态进入path域对应的状态后,则对之后的扫描字符进行path域解析。在URL字符 串扫描结束时,通过判断FSM所处的终态是否为接受状态,来确定URL字符串是否符合URL 语法。因此,本专利技术实施例URL解析方法,通过一次扫描URL实现了对URL各个域的分隔以 及对path域的特殊处理。从而提高了 URL解析效率和资源利用率。附图说明 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。 图1为本专利技术一实施例提供的URL解析方法的流程图; 图2为本专利技术另一实施例提供的用于URL解析的FSM的状态转换图; 图3为本专利技术另一实施例提供的用于path域解析的子FSM状态转换图; 图4为本专利技术另一实施例提供的URL解析方法的流程图; 图5为本专利技术另一实施例提供的URL解析方法的流程图; 图6为本专利技术另一实施例提供的URL解析设备的结构示意图 图7为本专利技术另一实施例提供的URL解析设备的结构示意图 图8为本专利技术另一实施例提供的URL解析设备的结构示意图 图9为本专利技术另一实施例提供的URL解析设备的结构示意图 图10为本专利技术另一实施例提供的URL解析设备的结构示意图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于 本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本专利技术保护的范围。 URL解析的过程即是在扫描URL的过程中,根据URL语法规定的各个域之间的分隔符逐步分解URL各个域。因此,有必要了解URL的各个域、各个域允许的字符集,以及各个 域的分隔符和允许以非分隔符形式存在的保留字符。URL由一系列字符组成,格式为(带方 括号@host 以下对URL的各个域进行说明 protocol (协议)指定使用的传输协议,最常用的是HTTP协议,它也是目前WWW中应用最广的协议。 User和pass (用户名和密码)连接到服务器所需的用户名和密码。 host (主机名)是指存放资源的服务器的域名系统(DNS)主机名或IP地址。 port (端口号)整数,各种传输协议都有默认的端口号,如http的默认端口为 80。如果输入时省略,则使用默认端口号。 path (路径)由零或多个"/"符号隔开的字符串, 一般用来表示主机上的一个目 录或文件地址。 query (查询)可选,用于给动态网页传递参数,可有多个参数,用"&"符号隔开, 每个参数的名和值用"="符号隔开。 fragment,信息片断,字符串,用于指定网络资源中的片断。例如一个网页中有多 个名词解释,可使用fragment直接定位到某一名词解释。 以下是URI的RFC为描述URL的组成所定义的字符集 gen-delims :由":〃 /" /" /" " /" #〃 /" 〃 /" @"组成,称为 分隔字符集; sub-delims :由"! " /" $" /" &" /' " " /" (" /" )" /" *" /" +" /" ," / 〃 ;〃 /〃 =〃组成,称为子分隔字符集; reserved :由gen-delim本文档来自技高网...
【技术保护点】
一种统一资源定位符URL解析方法,其特征在于,包括:按序扫描URL字符串中的字符;根据当前扫描的字符、URL的有限状态转换机FSM的状态转换表和所述FSM的当前状态,更新所述FSM的当前状态;所述FSM的状态转换表包括所述FSM在不同的状态下,扫描不同类型字符时,所对应的更新状态;当扫描URL的路径path域的字符时,根据当前扫描的字符、所述path域的子有限状态转换机子FSM的状态转换表和所述子FSM的当前状态,更新所述子FSM的状态,所述子FSM的状态转换表包括所述子FSM在不同的状态下,扫描不同类型字符时,所对应的更新状态;当所述FSM和所述子FSM的终态均为接受状态时,则判定所述URL符合URL语法;否则,判定所述URL不符合URL语法。
【技术特征摘要】
【专利技术属性】
技术研发人员:郑重,刘艳敏,
申请(专利权)人:成都市华为赛门铁克科技有限公司,
类型:发明
国别省市:90[中国|成都]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。