CN109688280B - 请求处理方法、请求处理设备、浏览器及存储介质 - Google Patents
请求处理方法、请求处理设备、浏览器及存储介质 Download PDFInfo
- Publication number
- CN109688280B CN109688280B CN201810957286.0A CN201810957286A CN109688280B CN 109688280 B CN109688280 B CN 109688280B CN 201810957286 A CN201810957286 A CN 201810957286A CN 109688280 B CN109688280 B CN 109688280B
- Authority
- CN
- China
- Prior art keywords
- request
- browser
- access request
- preset
- middleware
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/5183—Call or contact centers with computer-telephony arrangements
- H04M3/5191—Call or contact centers with computer-telephony arrangements interacting with the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种请求处理方法、请求处理设备、浏览器及存储介质,所述方法包括:浏览器对资源访问请求进行跨域访问检测,在检测到资源访问请求属于跨域访问请求时向预设中间件发送预检请求,预设中间件响应于预检请求检测浏览器是否满足预设跨域访问条件,在满足时反馈授权指令,浏览器在接收到授权指令时对本地数据传输接口进行重设并将资源访问请求发送至预设中间件,预设中间件根据资源访问请求中包含的本地数据将资源访问请求发送至对应的接口服务器,由于是通过预先设置的中间件来将接收到的资源访问请求转发至接口服务器,从而使得用户能够使用浏览器直接跨域访问接口服务器,以客户端/服务器架构低成本的实现了对功能接口的跨域集成。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种请求处理方法、请求处理设备、浏览器及存储介质。
背景技术
呼叫中心,又称客户服务中心,是指在一个相对集中的场所,由一批服务人员组成的服务机构。目前,市面上有很多类似呼叫中心的产品(如华为呼叫中心、AOFOX呼叫中心等),这些呼叫中心的功能接口的集成方式都是服务器对接服务器模式,但这种模式的缺陷在于:需要准备服务器对接集成,考虑至少2台高可用服务器;而通常情况下服务器和应用需要有专业IT人员维护,成本较高,且需要给服务器申请宽带线路,费用较高,成本投入较大,故障点也较多。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种请求处理方法、请求处理设备、浏览器及存储介质,旨在解决现有呼叫中心功能接口的集成方式,需要依赖多台服务器、成本投入大、维护费用高的技术问题。
为实现上述目的,本发明提供了一种请求处理方法,所述方法包括以下步骤:
浏览器对接收到的资源访问请求进行跨域访问检测,在检测到所述资源访问请求属于跨域访问请求时向预设中间件发送预检请求;
所述预设中间件响应于接收到的所述预检请求,检测所述浏览器是否满足预设跨域访问条件,若满足则向所述浏览器反馈授权指令;
所述浏览器在接收到所述授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将所述资源访问请求发送至所述预设中间件;
所述预设中间件根据所述资源访问请求中包含的本地数据将所述资源访问请求发送至对应的接口服务器。
优选地,所述浏览器对接收到的资源访问请求进行跨域访问检测,在检测到所述资源访问请求属于跨域访问请求时向预设中间件发送预检请求的步骤,包括:
浏览器获取接收到的资源访问请求对应的目标统一资源定位符地址;
所述浏览器读取当前页面中包含的本地统一资源定位符地址,将所述目标统一资源定位符地址与所述本地统一资源定位符地址进行匹配;
所述浏览器在匹配失败时判定所述资源访问请求属于跨域访问请求,并向预设中间件发送预检请求。
优选地,所述浏览器在匹配失败时判定所述资源访问请求属于跨域访问请求,并向预设中间件发送预检请求的步骤,包括:
所述浏览器在检测到所述目标统一资源定位符地址对应的域名与所述本地统一资源定位符地址对应的域名不相同;和/或所述目标统一资源定位符地址对应的端口与所述本地统一资源定位符地址对应的端口不相同;和/或所述浏览器在检测到所述目标统一资源定位符地址对应的协议类型与所述本地统一资源定位符地址对应的协议类型不相同时,判定所述资源访问请求属于跨域访问请求,并向预设中间件发送预检请求。
优选地,所述预设中间件响应于接收到的所述预检请求,检测所述浏览器是否满足预设跨域访问条件,若满足则向所述浏览器反馈授权指令的步骤,包括:
所述预设中间件响应于接收到的所述预检请求,检测所述资源访问请求对应的请求方法是否属于预设请求方法,以及所述浏览器对应的终端是否属于授权终端;
所述预设中间件在检测到所述资源访问请求对应的请求方法属于预设请求方法,且所述浏览器对应的终端属于授权终端时,向所述浏览器反馈跨域访问的授权指令。
优选地,所述浏览器在接收到所述授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将所述资源访问请求发送至所述预设中间件的步骤,包括:
所述浏览器在接收到所述授权指令时,调用预置JavaScript脚本对所述浏览器本地的数据传输接口进行参数设定,以使所述浏览器通过参数设定后的数据传输接口发送的请求中携带本地数据;
所述浏览器通过重设后的数据传输接口将所述资源访问请求发送至所述预设中间件。
优选地,所述预设中间件根据所述资源访问请求中包含的本地数据将所述资源访问请求发送至对应的接口服务器的步骤,包括:
所述预设中间件读取所述资源访问请求中包含的本地数据,从所述本地数据中提取出所述资源访问请求对应的会话标识;
所述预设中间件根据所述会话标识将所述资源访问请求发送至对应的接口服务器。
优选地,所述预设中间件根据所述会话标识将所述资源访问请求发送至对应的接口服务器步骤,包括:
所述预设中间件在预先构建的映射关系中查找所述会话标识对应的服务器标识,所述映射关系中存放有会话标识和服务器标识之间的对应关系;
所述预设中间件根据所述服务器标识确定所述资源访问请求对应的接口服务器,并将所述资源访问请求发送至所述接口服务器。
此外,为实现上述目的,本发明还提出一种浏览器,所述浏览器包括:请求响应模块和中间件模块;
其中,所述请求响应模块,用于对接收到的资源访问请求进行跨域访问检测,在检测到所述资源访问请求属于跨域访问请求时向所述中间件模块发送预检请求;
所述中间件模块,用于在接收到所述预检请求时,检测所述请求响应模块是否满足预设跨域访问条件,若满足则向所述请求响应模块反馈授权指令;
所述请求响应模块,用于在接收到所述授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将所述资源访问请求发送至所述中间件模块;
所述中间件模块,用于根据所述资源访问请求中包含的本地数据将所述资源访问请求发送至对应的接口服务器。
此外,为实现上述目的,本发明还提出一种请求处理设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的请求处理程序,所述请求处理程序配置为实现如上文所述的请求处理方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有请求处理程序,所述请求处理程序被处理器执行时实现如上文所述的请求处理方法的步骤。
本发明浏览器通过对接收到的资源访问请求进行跨域访问检测,在检测到资源访问请求属于跨域访问请求时向预设中间件发送预检请求;预设中间件响应于接收到的预检请求,检测浏览器是否满足预设跨域访问条件,若满足则反馈授权指令;浏览器在接收到授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将资源访问请求发送至预设中间件;预设中间件根据资源访问请求中包含的本地数据将资源访问请求发送至对应的接口服务器,由于是通过预先设置的中间件来将浏览器接收到的资源访问请求转发至接口服务器,从而使得用户可以通过浏览器直接跨域访问接口服务器,通过客户端/服务器架构低成本地实现了对功能接口的跨域集成。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的请求处理设备的结构示意图;
图2为本发明请求处理方法第一实施例的流程示意图;
图3为本发明请求处理方法第二实施例的流程示意图;
图4为本发明请求处理方法第三实施例的流程示意图;
图5为本发明请求处理方法第四实施例的流程示意图;
图6为本发明浏览器第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的请求处理设备结构示意图。
如图1所示,该请求处理设备可以包括:处理器1001,例如中央处理器 (CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口 1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004 可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity, WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对请求处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作***、数据存储模块、网络通信模块、用户接口模块以及请求处理程序。
在图1所示的请求处理设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明请求处理设备中的处理器1001、存储器1005可以设置在请求处理设备中,所述请求处理设备通过处理器1001调用存储器1005中存储的请求处理程序,并执行本发明实施例提供的请求处理方法。
本发明实施例提供了一种请求处理方法,参照图2,图2为本发明请求处理方法第一实施例的流程示意图。
本实施例中,所述请求处理方法包括以下步骤:
步骤S10:浏览器对接收到的资源访问请求进行跨域访问检测,在检测到所述资源访问请求属于跨域访问请求时向预设中间件发送预检请求;
需要说明的是,在本实施例中,所述浏览器可以是能够为用户提供网页浏览功能的客户端程序,所述预设中间件可以是预先装设在所述浏览器中的***软件或服务程序,在本实施例及下述各实施例中,所述预设中间件优选为nginx(一种高性能的超文本传输协议和反向代理服务器)中间件(以下简称nginx中间件)。
在执行本步骤之前,用户可在浏览器的搜索框内输入需要访问的统一资源定位符(Uniform Resource Locator,URL)地址(如“http://aaa.com.cn”)来访问相应的业务***服务器,若用户同时想访问呼叫中心接口服务器,则可在浏览器上点击对应的访问按钮,以使浏览器根据该点击事件生成对呼叫中心接口服务器的资源访问请求(“http://other.com.cn”),并将该资源访问请求发送至对应接口服务器。但出于信息安全方面的考虑,浏览器在将资源访问请求发送给对应的接口服务器之前会进行跨域访问检测,以检测所述资源访问请求是否属于跨域访问请求。
在具体实现中,浏览器在检测到所述资源访问请求属于跨域访问请求时向nginx中间件发送预检请求。
步骤S20:所述预设中间件响应于接收到的所述预检请求,检测所述浏览器是否满足预设跨域访问条件,若满足则向所述浏览器反馈授权指令;
需要说明的是,所述预设跨域访问条件可以是预先设定的用于判断发起所述预检请求的浏览器是否具有跨域访问权限的评判标准,例如用户通过该浏览器发送的资源访问请求中,请求的超文本传输协议(HyperText Transfer Protocol,HTTP)方法是否为浏览器的后端服务器(即本实施例中的预设中间件)允许的HTTP方法,又或是该浏览器或浏览器所在的终端是否属于后端服务器已授权的浏览器或终端,所述预设跨域访问条件的具体设定可根据实际情况设置,本实施例对比不加以限制。
可以理解的是,超文本传输协议的设计目的是保证客户机与服务器之间的通信。HTTP的工作方式是客户机与服务器之间的请求-应答协议。web浏览器可以是客户端,而计算机上的网络应用程序也可能作为服务器端,例如客户端(浏览器)向服务器提交HTTP请求;服务器向客户端返回响应,响应包含关于请求的状态信息以及可能被请求的内容。在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET和POST。GET用于从指定的资源请求数据,POST用于向指定的资源提交要被处理的数据。
因此,本实施例中所述检测所述浏览器是否满足预设跨域访问条件的步骤也包括nginx中间件对用户通过所述浏览器发起的资源访问请求进行检测。具体的,当浏览器接收到用户发送的资源访问请求时,先向nginx中间件发送预检请求,以使nginx中间件检测所述资源访问请求对应的请求方法是否为被允许的方法。
在具体实现中,nginx中间件响应于接收到的所述预检请求,检测所述浏览器是否满足预设跨域访问条件,在检测到所述浏览器满足预设跨域访问条件时,则向所述浏览器反馈授权指令,允许所述浏览器进行跨域访问。
步骤S30:所述浏览器在接收到所述授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将所述资源访问请求发送至所述预设中间件;
应理解的是,后端服务器(即nginx中间件)通常通过设置响应头“Acce ss-Control-Allow-Credentials:true|false”来允许/拒绝浏览器在发送访问请求时携带本地数据(Cookies),同时在后端服务器允许浏览器发送的访问请求携带cookies时,浏览器也需要对数据传输接口“XMLHttpRequest”(一种应用程序编程接口,为客户端提供了在客户端和服务器之间传输数据的功能)进行w ithCredentials参数重设,以实现携带Cookie的目的。
在具体实现中,浏览器在接收到所述授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口再次将所述资源访问请求发送至nginx中间件。
步骤S40:所述预设中间件根据所述资源访问请求中包含的本地数据将所述资源访问请求发送至对应的接口服务器。
在具体实现中,nginx中间件接收浏览器通过重设后的数据传输接口再次发送的资源访问请求,提取资源访问请求中包含的本地数据,然后根据本地数据将所述资源访问请求发送至对应的接口服务器。
进一步地,为了实现接口服务器的集群功能,本实施例中nginx中间件可以根据cookies把包含有相同会话(session)对象的资源访问请求发送到同一台接口服务器以保持会话状态持续不中断。具体的,所述预设中间件可读取所述资源访问请求中包含的本地数据,从所述本地数据中提取出所述资源访问请求对应的会话标识,然后根据所述会话标识将所述资源访问请求发送至对应的接口服务器。
当然,为了进一步地提高请求处理效率,可预先在浏览器侧或nginx中间件中构建一个映射关系,以便于nginx中间件在提取到会话标识时,根据预先构建的映射关系快速准确地查找出目标接口服务器对应的服务器标识,然后再根据查找到的服务器标识确定出本次资源访问请求对应的接口服务器,并将该资源访问请求发送至所述接口服务器。其中,所述映射关系中存放有会话标识和服务器标识之间的对应关系。
本实施例浏览器通过对接收到的资源访问请求进行跨域访问检测,在检测到资源访问请求属于跨域访问请求时向预设中间件发送预检请求;预设中间件响应于接收到的预检请求,检测浏览器是否满足预设跨域访问条件,若满足则反馈授权指令;浏览器在接收到授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将资源访问请求发送至预设中间件;预设中间件根据资源访问请求中包含的本地数据将资源访问请求发送至对应的接口服务器,由于是通过预先设置的中间件来将浏览器接收到的资源访问请求转发至接口服务器,从而使得用户可以通过浏览器直接跨域访问接口服务器,通过客户端/服务器架构低成本地实现了对功能接口的跨域集成。
参考图3,图3为本发明请求处理方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10包括:
步骤S101:浏览器获取接收到的资源访问请求对应的目标统一资源定位符地址;
可理解的是,所述目标统一资源定位符地址即所述资源访问请求对应的 URL地址(以下简称目标URL地址),一般URL地址中包括协议、域名、端口、虚拟目录、文件名、锚和参数几个部分。其中,端口、虚拟目录、文件名和锚这几部分并非是一个URL的必须部分,例如,如果端口部分被省略将采用默认端口,如果文件名部分被省略,则使用默认的文件名。
在具体实现中,浏览器在接收到用户发送的资源访问请求时,对所述资源访问请求进行解析,获取所述资源访问请求对应的目标URL地址。
步骤S102:所述浏览器读取当前页面中包含的本地统一资源定位符地址,将所述目标统一资源定位符地址与所述本地统一资源定位符地址进行匹配;
应理解的是,所述本地统一资源定位符地址(以下简称本地URL地址) 可以是浏览器当前页面对应的网页地址。
在具体实现中,浏览器读取当前页面中包含的本地URL地址,将所述本地URL地址与所述目标URL地址进行匹配,并根据配置结果来判断用户发送的资源访问请求是否为跨域访问请求。
步骤S103:所述浏览器在匹配失败时判定所述资源访问请求属于跨域访问请求,并向预设中间件发送预检请求。
可理解的是,所谓跨域访问是指从一个域名的网页去请求另一个域名的资源,比如从www.***.com页面去请求www.***.com的资源。而跨域访问的严格一点的定义是:只要协议,域名或端口中有任何一个的不同,就被当作是跨域。
在本步骤中,所述浏览器在检测到所述目标统一资源定位符地址对应的域名与所述本地统一资源定位符地址对应的域名不相同;和/或所述目标统一资源定位符地址对应的端口与所述本地统一资源定位符地址对应的端口不相同;和/或所述浏览器在检测到所述目标统一资源定位符地址对应的协议类型与所述本地统一资源定位符地址对应的协议类型不相同时,判定所述资源访问请求属于跨域访问请求,并向预设中间件发送预检请求时,则判定所述资源访问请求属于跨域访问请求,并向预设中间件发送预检请求。
此处结合具体例子对本实施例进行具体说明:用户通过浏览器访问网址A“study.cn/json/jsonp/jsonp.html,”浏览器为用户展示网址A对应的当前页面,若用户想要通过当前页面去访问网址B“http://study.cn/test/a.html,”此时浏览器则会对网址B进行跨域检测,经检测后浏览器获知网址B的对应文件名与网址 A的文件名不同但域名、协议以及端口均相同,因而判定用户发起的对网站B 的访问请求不属于跨域访问请求;但若用户想要通过当前页面去访问网址C“h ttp://a.study.cn/json/jsonp/jsonp.html,”经检测浏览器获知网址C的对应文件路径与网址A的文件路径相同但域名不同,此时即可判定用户发起的对网站C 的访问请求属于跨域访问请求。
本实施例浏览器接收用户发送的资源访问请求,获取资源访问请求对应的目标统一资源定位符地址,读取当前页面中包含的本地统一资源定位符地址,将目标统一资源定位符地址与本地统一资源定位符地址进行匹配;在匹配失败时判定资源访问请求属于跨域访问请求,并向预设中间件发送预检请求,实现了对跨域访问的精准检测。
参考图4,图4为本发明请求处理方法第三实施例的流程示意图。
基于上述各实施例,在本实施例中,所述步骤S30具体包括:
步骤S301:所述浏览器在接收到所述授权指令时,调用预置JavaScript 脚本对所述浏览器本地的数据传输接口进行参数设定,以使所述浏览器通过参数设定后的数据传输接口发送的请求中携带本地数据;
应理解的是,通常情况下对于跨域访问,浏览器一般不会发送cookies到对应的后端服务器,如果要发送cookies则需要设置浏览器本地的数据传输接口XMLHttpRequest对象中的“withCredentials”参数,即将XMLHttpRequest 对象中的withCredentials标志设置为true,以实现向后端服务器发送Cookie s的功能。
本实施例中,工作人员可预先编写一段JavaScript脚本来实现对浏览器本地的数据传输接口XMLHttpRequest对应的“withCredentials”参数进行重新设定,以使所述浏览器通过参数设定后的数据传输接口发送的请求中能够携带 Cookies。
步骤S302:所述浏览器通过重设后的数据传输接口将所述资源访问请求发送至所述预设中间件。
在具体实现中,浏览器通过预置JavaScript脚本对本地的数据传输接口进行参数设定后,再通过重设后的数据传输接口将所述资源访问请求发送至 nginx中间件。
本实施例浏览器在接收到授权指令时,调用预置JavaScript脚本对浏览器本地的数据传输接口进行参数设定,以使浏览器通过参数设定后的数据传输接口发送的请求中携带本地数据,通过重设后的数据传输接口将资源访问请求发送至预设中间件,从而实现了资源访问请求对浏览器本地数据的携带,便于后续预设中间件根据浏览器本地数据将资源访问请求发送至对应的接口服务器,进而保证会话状态的持续不中断。
参考图5,图5为本发明请求处理方法第四实施例的流程示意图。
基于上述各实施例,在本实施例中,所述步骤S20可具体包括:
步骤S201:所述预设中间件响应于接收到的所述预检请求,检测所述资源访问请求对应的请求方法是否属于预设请求方法,以及所述浏览器对应的终端是否属于授权终端;
应理解的是,根据HTTP标准,HTTP请求可以使用多种请求方法:简单方法(如HEAD、GET、POST)和复杂方法(如OPTIONS、PUT、DELETE、 TRACE和CONNECT)。本步骤中,所述预设请求方法所包括的HTTP方法的具体类型可自行设定,所述浏览器对应的终端即承载所述浏览器的移动终端或设备,如手机、平板电脑、个人电脑等。
需要说明的是,为了保证客户端正常平稳的运行,后端服务器往往会对客户端发送的请求进行权限控制,以使用户只能通过客户端向来源网站发送请求,但后端服务器可通过设置一定的访问条件在保证信息安全的情况下,满足用户的跨域访问需求,例如,限制访问请求对应的请求方法类型以及对浏览器所在终端进行授权,使其可以进行跨域访问。
在具体实现中,nginx中间件响应于接收到的所述预检请求,检测所述资源访问请求对应的请求方法是否属于预设请求方法,以及所述浏览器对应的终端是否属于授权终端。
进一步地,本步骤中nginx中间件在检测浏览器对应的终端是否属于授权终端时,可先获取终端对应的终端标识(例如,出厂序列号、硬件识别码等),然后在存放有被授权终端标识的数据库中,对获取到的终端标识进行匹配,若匹配成功,则判定该浏览器对应的终端设备为授权终端。
步骤S202:所述预设中间件在检测到所述资源访问请求对应的请求方法属于预设请求方法,且所述浏览器对应的终端属于授权终端时,向所述浏览器反馈跨域访问的授权指令。
在具体实现中,当nginx中间件检测到资源访问请求对应的请求方法属于预设请求方法,且浏览器对应的终端属于授权终端时,则判定浏览器具有跨域访问的权限,并向其反馈跨域访问的授权指令,同意该浏览器进行跨域访问。
本实施例预设中间件响应于接收到的预检请求,检测资源访问请求对应的请求方法是否属于预设请求方法,以及浏览器对应的终端是否属于授权终端;在检测到资源访问请求对应的请求方法属于预设请求方法,且浏览器对应的终端属于授权终端时,向浏览器反馈跨域访问的授权指令,在保证浏览器安全运行的同时,满足了用户的跨域访问需求。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有请求处理程序,所述请求处理程序被处理器执行时实现如上文所述的请求处理方法的步骤。
参照图6 ,图6 为本发明浏览器第一实施例的结构框图。
如图6 所示,本发明实施例提出的浏览器包括:请求响应模块501和中间件模块502;
其中,所述请求响应模块501,用于对接收到的资源访问请求进行跨域访问检测,在检测到所述资源访问请求属于跨域访问请求时向所述中间件模块 502发送预检请求;
需要说明的是,本实施例提供的浏览器可以是能够为用户提供网页浏览功能的客户端程序,所述预设中间件可以是预先装设在所述浏览器中的***软件或服务程序,在本实施例及下述各实施例中,所述预设中间件优选为nginx (一种高性能的超文本传输协议和反向代理服务器)中间件(以下简称nginx 中间件)。
在具体实现中,浏览器中的请求响应模块501在检测到所述资源访问请求属于跨域访问请求时向中间件模块502发送预检请求。
所述中间件模块502,用于在接收到所述预检请求时,检测所述请求响应模块501是否满足预设跨域访问条件,若满足则向所述请求响应模块501反馈授权指令;
需要说明的是,所述预设跨域访问条件可以是预先设定的用于判断发起所述预检请求的请求响应模块501是否具有跨域访问权限的评判标准。
在具体实现中,中间件模块502响应于接收到的所述预检请求,检测所述请求响应模块501是否满足预设跨域访问条件,在检测到所述请求响应模块501满足预设跨域访问条件时,则向所述请求响应模块501反馈授权指令,允许所述请求响应模块501进行跨域访问。
所述请求响应模块501,用于在接收到所述授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将所述资源访问请求发送至所述中间件模块502;
在具体实现中,请求响应模块501在接收到所述授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口再次将所述资源访问请求发送至中间件模块502。
所述中间件模块502,用于根据所述资源访问请求中包含的本地数据将所述资源访问请求发送至对应的接口服务器。
在具体实现中,中间件模块502接收请求响应模块501通过重设后的数据传输接口再次发送的资源访问请求,提取资源访问请求中包含的本地数据,然后根据本地数据将所述资源访问请求发送至对应的接口服务器。
进一步地,为了实现接口服务器的集群功能,本实施例中间件模块502 可以根据cookies把包含有相同会话(session)对象的资源访问请求发送到同一台接口服务器以保持会话状态持续不中断。具体的,所述中间件模块502,还用于读取所述资源访问请求中包含的本地数据,从所述本地数据中提取出所述资源访问请求对应的会话标识,然后根据所述会话标识将所述资源访问请求发送至对应的接口服务器。
当然,为了进一步地提高请求处理效率,可预先在浏览器中构建一个映射关系,以便于中间件模块502在提取到会话标识时,根据预先构建的映射关系快速准确地查找出目标接口服务器对应的服务器标识,然后再根据查找到的服务器标识确定出本次资源访问请求对应的接口服务器,并将该资源访问请求发送至所述接口服务器。其中,所述映射关系中存放有会话标识和服务器标识之间的对应关系。
本实施例浏览器通过对接收到的资源访问请求进行跨域访问检测,在检测到资源访问请求属于跨域访问请求时向预设中间件发送预检请求;预设中间件响应于接收到的预检请求,检测浏览器是否满足预设跨域访问条件,若满足则反馈授权指令;浏览器在接收到授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将资源访问请求发送至预设中间件;预设中间件根据资源访问请求中包含的本地数据将资源访问请求发送至对应的接口服务器,由于是通过预先设置的中间件来将浏览器接收到的资源访问请求转发至接口服务器,从而使得用户可以通过浏览器直接跨域访问接口服务器,通过客户端/服务器架构低成本地实现了对功能接口的跨域集成。
基于本发明上述浏览器第一实施例,提出本发明浏览器的第二实施例。
在本实施例中,所述请求响应模块501,还用于接收用户发送的资源访问请求,获取所述资源访问请求对应的目标统一资源定位符地址;读取当前页面中包含的本地统一资源定位符地址,将所述目标统一资源定位符地址与所述本地统一资源定位符地址进行匹配;在匹配失败时判定所述资源访问请求属于跨域访问请求,并向中间件模块502发送预检请求。
进一步地,所述请求响应模块501,还用于在检测到所述目标统一资源定位符地址对应的域名、端口和/或协议与所述本地统一资源定位符地址对应的域名、端口和/或协议不相同时,判定所述资源访问请求属于跨域访问请求,并向中间件模块502发送预检请求。
进一步地,所述中间件模块502,还用于响应于接收到的所述预检请求,检测所述资源访问请求对应的请求方法是否属于预设请求方法,以及所述请求响应模块501对应的终端是否属于授权终端;在检测到所述资源访问请求对应的请求方法属于预设请求方法,且所述请求响应模块501对应的终端属于授权终端时,向所述请求响应模块501反馈跨域访问的授权指令。
进一步地,所述请求响应模块501,还用于在接收到所述授权指令时,调用预置JavaScript脚本对所述请求响应模块501本地的数据传输接口进行参数设定,以使所述请求响应模块501通过参数设定后的数据传输接口发送的请求中携带本地数据;通过重设后的数据传输接口将所述资源访问请求发送至所述中间件模块502。
本发明浏览器的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种请求处理方法,其特征在于,所述方法包括:
浏览器对接收到的资源访问请求进行跨域访问检测,在检测到所述资源访问请求属于跨域访问请求时,向预设中间件发送预检请求,所述预设中间件为预先装设在所述浏览器中的nginx中间件;
所述预设中间件响应于接收到的所述预检请求,检测所述浏览器是否满足预设跨域访问条件,若满足则向所述浏览器反馈授权指令,所述预设跨域访问条件包括:所述资源访问请求对应的HTTP方法为所述预设中间件允许的HTTP方法,或所述浏览器所在的终端为已授权的终端;
所述浏览器在接收到所述授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将所述资源访问请求发送至所述预设中间件;
所述预设中间件根据所述资源访问请求中包含的本地数据将所述资源访问请求发送至对应的接口服务器。
2.如权利要求1所述的方法,其特征在于,所述浏览器对接收到的资源访问请求进行跨域访问检测,在检测到所述资源访问请求属于跨域访问请求时向预设中间件发送预检请求的步骤,包括:
浏览器获取接收到的资源访问请求对应的目标统一资源定位符地址;
所述浏览器读取当前页面中包含的本地统一资源定位符地址,将所述目标统一资源定位符地址与所述本地统一资源定位符地址进行匹配;
所述浏览器在匹配失败时判定所述资源访问请求属于跨域访问请求,并向预设中间件发送预检请求。
3.如权利要求2所述的方法,其特征在于,所述浏览器在匹配失败时判定所述资源访问请求属于跨域访问请求,并向预设中间件发送预检请求的步骤,包括:
所述浏览器在检测到所述目标统一资源定位符地址对应的域名与所述本地统一资源定位符地址对应的域名不相同;和/或所述目标统一资源定位符地址对应的端口与所述本地统一资源定位符地址对应的端口不相同;和/或所述浏览器在检测到所述目标统一资源定位符地址对应的协议类型与所述本地统一资源定位符地址对应的协议类型不相同时,判定所述资源访问请求属于跨域访问请求,并向预设中间件发送预检请求。
4.如权利要求3所述的方法,其特征在于,所述预设中间件响应于接收到的所述预检请求,检测所述浏览器是否满足预设跨域访问条件,若满足则向所述浏览器反馈授权指令的步骤,包括:
所述预设中间件响应于接收到的所述预检请求,检测所述资源访问请求对应的请求方法是否属于预设请求方法,以及所述浏览器对应的终端是否属于授权终端;
所述预设中间件在检测到所述资源访问请求对应的请求方法属于预设请求方法,且所述浏览器对应的终端属于授权终端时,向所述浏览器反馈跨域访问的授权指令。
5.如权利要求4所述的方法,其特征在于,所述浏览器在接收到所述授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将所述资源访问请求发送至所述预设中间件的步骤,包括:
所述浏览器在接收到所述授权指令时,调用预置JavaScript脚本对所述浏览器本地的数据传输接口进行参数设定,以使所述浏览器通过参数设定后的数据传输接口发送的请求中携带本地数据;
所述浏览器通过重设后的数据传输接口将所述资源访问请求发送至所述预设中间件。
6.如权利要求5所述的方法,其特征在于,所述预设中间件根据所述资源访问请求中包含的本地数据将所述资源访问请求发送至对应的接口服务器的步骤,包括:
所述预设中间件读取所述资源访问请求中包含的本地数据,从所述本地数据中提取出所述资源访问请求对应的会话标识;
所述预设中间件根据所述会话标识将所述资源访问请求发送至对应的接口服务器。
7.如权利要求6所述的方法,其特征在于,所述预设中间件根据所述会话标识将所述资源访问请求发送至对应的接口服务器步骤,包括:
所述预设中间件在预先构建的映射关系中查找所述会话标识对应的服务器标识,所述映射关系中存放有会话标识和服务器标识之间的对应关系;
所述预设中间件根据所述服务器标识确定所述资源访问请求对应的接口服务器,并将所述资源访问请求发送至所述接口服务器。
8.一种浏览器,其特征在于,所述浏览器包括:请求响应模块和中间件模块;
其中,所述请求响应模块,用于对接收到的资源访问请求进行跨域访问检测,在检测到所述资源访问请求属于跨域访问请求时向所述中间件模块发送预检请求,所述中间件模块为预先装设在所述浏览器中的nginx中间件;
所述中间件模块,用于在接收到所述预检请求时,检测所述请求响应模块是否满足预设跨域访问条件,若满足则向所述请求响应模块反馈授权指令,所述预设跨域访问条件包括:所述资源访问请求对应的HTTP方法为所述中间件模块允许的HTTP方法,或所述浏览器所在的终端为已授权的终端;
所述请求响应模块,用于在接收到所述授权指令时,调用预置脚本对本地数据传输接口进行重设,并通过重设后的数据传输接口将所述资源访问请求发送至所述中间件模块;
所述中间件模块,用于根据所述资源访问请求中包含的本地数据将所述资源访问请求发送至对应的接口服务器。
9.一种请求处理设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的请求处理程序,所述请求处理程序配置为实现如权利要求1至7中任一项所述的请求处理方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有请求处理程序,所述请求处理程序被处理器执行时实现如权利要求1至7任一项所述的请求处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810957286.0A CN109688280B (zh) | 2018-08-21 | 2018-08-21 | 请求处理方法、请求处理设备、浏览器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810957286.0A CN109688280B (zh) | 2018-08-21 | 2018-08-21 | 请求处理方法、请求处理设备、浏览器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109688280A CN109688280A (zh) | 2019-04-26 |
CN109688280B true CN109688280B (zh) | 2021-06-04 |
Family
ID=66185669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810957286.0A Active CN109688280B (zh) | 2018-08-21 | 2018-08-21 | 请求处理方法、请求处理设备、浏览器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109688280B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188294A (zh) * | 2019-05-05 | 2019-08-30 | 平安科技(深圳)有限公司 | Url拦截转换方法、装置以及计算机设备 |
CN112243013A (zh) * | 2019-07-16 | 2021-01-19 | ***通信集团浙江有限公司 | 一种实现跨域资源缓存的方法、***、服务器和存储介质 |
CN110730208A (zh) * | 2019-09-16 | 2020-01-24 | 深圳市国信合成科技有限公司 | 一种本地设备调用方法、装置、存储介质及设备 |
CN110912903B (zh) * | 2019-11-27 | 2022-01-04 | 支付宝实验室(新加坡)有限公司 | 跨域访问方法及装置 |
CN110830509B (zh) * | 2019-12-03 | 2021-12-24 | 中国建设银行股份有限公司 | 自动支持跨域访问的方法及装置 |
CN112261111A (zh) * | 2020-10-16 | 2021-01-22 | 蜂助手股份有限公司 | 一种应用程序内浏览器跨域访问实现方法及*** |
CN112104753B (zh) * | 2020-11-18 | 2021-03-19 | 统信软件技术有限公司 | 一种服务请求处理***、方法及计算设备 |
CN113411332B (zh) * | 2021-06-18 | 2022-10-04 | 杭州安恒信息技术股份有限公司 | 一种cors漏洞检测方法、装置、设备及介质 |
CN114640718B (zh) * | 2022-03-18 | 2023-06-23 | 阿里云计算有限公司 | 一种基于数据处理***的数据处理方法及装置 |
CN115086393B (zh) * | 2022-06-13 | 2024-07-19 | 卫宁健康科技集团股份有限公司 | 一种接口调用方法、装置、设备及存储介质 |
CN115022387B (zh) * | 2022-06-27 | 2024-07-02 | 平安付科技服务有限公司 | 跨域预检请求的处理方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410711A (zh) * | 2014-12-15 | 2015-03-11 | 北京国双科技有限公司 | 客户端跨域请求网络资源的方法和装置 |
CN105812323A (zh) * | 2014-12-30 | 2016-07-27 | Tcl集团股份有限公司 | 一种网络跨域访问数据的方法和装置 |
CN107734053A (zh) * | 2017-11-03 | 2018-02-23 | 山东浪潮通软信息科技有限公司 | 一种支持WbApi同时实现推送和跨域的解决方法 |
CN108256069A (zh) * | 2018-01-17 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 一种页面跨域访问的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9503501B2 (en) * | 2012-09-17 | 2016-11-22 | Salesforce.Com, Inc. | Cross domain in-browser proxy |
CN104468226B (zh) * | 2014-12-18 | 2018-04-17 | 山东中创软件工程股份有限公司 | 基于Nginx的配置方法及装置 |
US10791087B2 (en) * | 2016-09-16 | 2020-09-29 | Oracle International Corporation | SCIM to LDAP mapping using subtype attributes |
CN106878408A (zh) * | 2017-02-08 | 2017-06-20 | 福建天泉教育科技有限公司 | 跨域请求数据的方法及*** |
CN107995259A (zh) * | 2017-11-14 | 2018-05-04 | 北京思特奇信息技术股份有限公司 | 一种对跨域请求进行处理的方法及装置 |
-
2018
- 2018-08-21 CN CN201810957286.0A patent/CN109688280B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410711A (zh) * | 2014-12-15 | 2015-03-11 | 北京国双科技有限公司 | 客户端跨域请求网络资源的方法和装置 |
CN105812323A (zh) * | 2014-12-30 | 2016-07-27 | Tcl集团股份有限公司 | 一种网络跨域访问数据的方法和装置 |
CN107734053A (zh) * | 2017-11-03 | 2018-02-23 | 山东浪潮通软信息科技有限公司 | 一种支持WbApi同时实现推送和跨域的解决方法 |
CN108256069A (zh) * | 2018-01-17 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 一种页面跨域访问的方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于CORS的AJAX跨域访问研究与应用;叶文全;《湖北第二师范学院学报》;20180228;第35卷(第2期);49-51 * |
Also Published As
Publication number | Publication date |
---|---|
CN109688280A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109688280B (zh) | 请求处理方法、请求处理设备、浏览器及存储介质 | |
US10402066B2 (en) | Information processing terminal and control method | |
CN104584011B (zh) | 用于web内容和web服务的安全网络内***的方法和*** | |
US8738711B2 (en) | System and method for redirecting client-side storage operations | |
JP2018536232A (ja) | ウェブアプリケーションへのサインオンを制御するためのシステムおよび方法 | |
CN108200132B (zh) | 资源获取方法、装置、设备及计算机可读存储介质 | |
EP3073408B1 (en) | Mashup method, mashup program, and terminal | |
WO2014176895A1 (en) | Method, terminal, server and system for page jump | |
CN109672658B (zh) | Json劫持漏洞的检测方法、装置、设备及存储介质 | |
US20160335370A1 (en) | Data processing method and apparatus | |
US20140325089A1 (en) | Method, terminal, server and system for page jump | |
KR20170101905A (ko) | 피싱 웹 페이지 검출 방법 및 시스템 | |
WO2017181801A1 (zh) | 一种超文本传输协议请求识别***及方法 | |
JP4508118B2 (ja) | Webコンテンツ共有システム、サーバ装置、情報処理端末装置、操作制限方法及びプログラム | |
CN109510799B (zh) | 页面展示方法、浏览器客户端、设备及存储介质 | |
CN115695012A (zh) | 一种登录请求的处理方法、装置、电子设备及存储介质 | |
JP2011043924A (ja) | Web行動履歴取得システム、Web行動履歴取得方法、ゲートウェイ装置、及びプログラム | |
US11222100B2 (en) | Client server system | |
CN110674435A (zh) | 页面访问方法、服务器、终端、电子设备及可读存储介质 | |
CN109951549B (zh) | 网络页面的访问方法、装置及计算机可读存储介质 | |
US20130198364A1 (en) | Method of determining http process information | |
CN108509229B (zh) | 窗口跨域控制的方法、终端设备及计算机可读存储介质 | |
EP2860938B1 (en) | Communication terminal, communication processing method, and communication processing program | |
US20200314190A1 (en) | De termining that multiple requests are received from a particular user device | |
CN111737629B (zh) | 一种数据探测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |