CN116800838A - 一种涉及跨域的请求处理方法与系统 - Google Patents
一种涉及跨域的请求处理方法与系统 Download PDFInfo
- Publication number
- CN116800838A CN116800838A CN202310868304.9A CN202310868304A CN116800838A CN 116800838 A CN116800838 A CN 116800838A CN 202310868304 A CN202310868304 A CN 202310868304A CN 116800838 A CN116800838 A CN 116800838A
- Authority
- CN
- China
- Prior art keywords
- cross
- domain
- request
- business
- verification
- 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.)
- Pending
Links
Classifications
-
- 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/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种涉及跨域的请求处理方法与系统,由浏览器判断待生成的请求是否涉及跨域,若是则生成预设协议请求,否则根据旧有逻辑生成常规请求;所述预设协议请求中包括跨域数据和业务数据;浏览器向业务指定的业务服务端发送所述预设协议请求/所述常规请求;业务服务端接收请求,进行跨域校验,并在跨域校验通过后进行业务处理;本发明由浏览器在需要跨域请求时,直接向业务所指定的业务服务器发送包括跨域数据和业务数据的跨域请求,由业务服务器直接进行是否允许跨域的判断,并在判断允许跨域的情况下,直接进行后续的业务处理,相较于传统的跨域请求方式,能够减少一次网络请求,有效提高跨域场景下的系统性能,提高访问效率。
Description
技术领域
本发明涉及跨域请求技术领域,特别涉及一种涉及跨域的请求处理方法与系统。
背景技术
目前大部分的系统中都是进行前后端项目分离的,并且服务端实例为了满足高并发,高吞吐的场景,一般都会采用分布式部署的方式,因为此种架构方式下,服务端会存在多种应用,其分别也会采用多个域名,在这种前后端分离,服务端存在多域名场景下,前端项目会对接多个服务端项目,即会存在跨域的场景。
目前主要使用的一种跨域方式为,浏览器预先发送一个options的请求,当该请求到达服务端时,由服务端明确本服务端是否支持跨域请求,并返回跨域的一些基本信息,当浏览器接收到此信息时,根据服务端是否支持该请求,再次进行真正的数据请求,即每次的跨域都将存在至少2次的数据请求,此种跨域方式下,会导致每次请求都造成2倍的耗时。
因此,如何高请求的效率,是当前所要解决的问题。
发明内容
本发明所要解决的技术问题是:提供一种涉及跨域的请求处理方法与系统,有效提高请求效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种涉及跨域的请求处理方法,包括步骤:
S1、浏览器判断待生成的请求是否涉及跨域,若是则生成预设协议请求,否则根据旧有逻辑生成常规请求;
所述预设协议请求中包括跨域数据和业务数据;
S2、浏览器向业务指定的业务服务端发送所述预设协议请求/所述常规请求;
S3、业务服务端接收请求,进行跨域校验,并在跨域校验通过后进行业务处理。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种涉及跨域的请求处理系统,包括浏览器端、业务服务端,所述浏览器端包括第一处理器、第一存储器以及存储在所述第一存储器中并可在所述第一处理器上运行的第一计算机程序,所述业务服务端包括第二处理器、第二存储器以及存储在所述第二存储器中并可在所述第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、判断待生成的请求是否涉及跨域,若是则生成预设协议请求,否则根据旧有逻辑生成常规请求;
所述预设协议请求中包括跨域数据和业务数据;
S2、向业务指定的业务服务端发送所述预设协议请求/所述常规请求;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
S3、接收请求,进行跨域校验,并在跨域校验通过后进行业务处理。
本发明的有益效果在于:本发明的一种涉及跨域的请求处理方法与系统,浏览器在需要跨域请求时,直接向业务所指定的业务服务器发送包括跨域数据和业务数据的跨域请求,由业务服务器直接进行是否允许跨域的判断,并在判断允许跨域的情况下,直接进行后续的业务处理,相较于传统的跨域请求方式,能够减少一次网络请求,有效提高跨域场景下的系统性能,提高访问效率。
附图说明
图1为本发明实施例的一种涉及跨域的请求处理方法的流程图;
图2为本发明实施例的一种涉及跨域的请求处理系统的结构图;
标号说明:
1、一种涉及跨域的请求处理系统;2、浏览器端;3、第一处理器;4、第一存储器;5、业务服务端;6、第二处理器;7、第二存储器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,一种涉及跨域的请求处理方法,包括步骤:
S1、浏览器判断待生成的请求是否涉及跨域,若是则生成预设协议请求,否则根据旧有逻辑生成常规请求;
所述预设协议请求中包括跨域数据和业务数据;
S2、浏览器向业务指定的业务服务端发送所述预设协议请求/所述常规请求;
S3、业务服务端接收请求,进行跨域校验,并在跨域校验通过后进行业务处理。
从上述描述可知,本发明的有益效果在于:本发明的一种涉及跨域的请求处理方法与系统,浏览器在需要跨域请求时,直接向业务所指定的业务服务器发送包括跨域数据和业务数据的跨域请求,由业务服务器直接进行是否允许跨域的判断,并在判断允许跨域的情况下,直接进行后续的业务处理,相较于传统的跨域请求方式,能够减少一次网络请求,有效提高跨域场景下的系统性能,提高访问效率。
进一步的,所述预设协议请求基于预设协议生成,所述预设协议预先封装于浏览器中。
由上述描述可知,本发明新增了一种用于跨域的通信协议,该协议封装于浏览器中,浏览器在需要进行跨域请求时基于该协议进行请求生成,将跨域数据和业务数据一同封装于请求中。
进一步地,步骤S3具体为:
业务服务端接收请求,判断请求是否基于所述预设协议,若是则进行跨域校验,并在跨域校验通过后进行业务处理,否则无需进行跨域校验,直接进行业务处理。
由上述描述可知,业务服务端若是对所有请求均进行跨域校验,则可能浪费较多的计算资源,从而影响业务的正常进行,本发明在引入了预设协议的基础上,通过对请求协议的判断,从而筛选出存在跨域的请求,仅需对存在跨域的请求进行是否允许跨域的跨域判断即可,在直接由业务服务器进行是否允许跨域的判断的情况下,能够有效节约计算资源,保证业务处理的正常进行。
进一步地,所述跨域校验通过业务服务端上预设的校验器进行处理。
由上述描述可知,在服务端新增实现了一个校验器,与其他业务代码分割,专门用于是否允许跨域请求的逻辑判断,逻辑更加清晰。
进一步地,所述跨域校验具体为:
根据所述跨域数据进行是否允许跨域的逻辑判断,若允许跨域,则校验通过,转发所述业务数据至业务处理模块进行后续的业务处理,否则校验失败,直接向浏览器返回校验失败信息。
由上述描述可知,校验器进行是否允许跨域的判断,若允许跨域则请求数据中的业务数据转发至业务处理模块进行处理,无需对跨域数据进行转发,提高通讯效率和业务处理模块数据处理的效率。
请参照图2,一种涉及跨域的请求处理系统,包括浏览器端、业务服务端,所述浏览器端包括第一处理器、第一存储器以及存储在所述第一存储器中并可在所述第一处理器上运行的第一计算机程序,所述业务服务端包括第二处理器、第二存储器以及存储在所述第二存储器中并可在所述第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、判断待生成的请求是否涉及跨域,若是则生成预设协议请求,否则根据旧有逻辑生成常规请求;
所述预设协议请求中包括跨域数据和业务数据;
S2、向业务指定的业务服务端发送所述预设协议请求/所述常规请求;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
S3、接收请求,进行跨域校验,并在跨域校验通过后进行业务处理。
从上述描述可知,本发明的有益效果在于:本发明的一种涉及跨域的请求处理方法与系统,浏览器在需要跨域请求时,直接向业务所指定的业务服务器发送包括跨域数据和业务数据的跨域请求,由业务服务器直接进行是否允许跨域的判断,并在判断允许跨域的情况下,直接进行后续的业务处理,相较于传统的跨域请求方式,能够减少一次网络请求,有效提高跨域场景下的系统性能,提高访问效率。
进一步地,所述预设协议请求基于预设协议生成,所述预设协议预先封装于浏览器中。
由上述描述可知,本发明新增了一种用于跨域的通信协议,该协议封装于浏览器中,浏览器在需要进行跨域请求时基于该协议进行请求生成,将跨域数据和业务数据一同封装于请求中。
进一步地,步骤S3具体为:
接收请求,判断请求是否基于所述预设协议,若是则进行跨域校验,并在跨域校验通过后进行业务处理,否则无需进行跨域校验,直接进行业务处理。
由上述描述可知,业务服务端若是对所有请求均进行跨域校验,则可能浪费较多的计算资源,从而影响业务的正常进行,本发明在引入了预设协议的基础上,通过对请求协议的判断,从而筛选出存在跨域的请求,仅需对存在跨域的请求进行是否允许跨域的跨域判断即可,在直接由业务服务器进行是否允许跨域的判断的情况下,能够有效节约计算资源,保证业务处理的正常进行。
进一步地,所述跨域校验通过业务服务端上预设的校验器进行处理。
由上述描述可知,由上述描述可知,在服务端新增实现了一个校验器,与其他业务代码分割,专门用于是否允许跨域请求的逻辑判断,逻辑更加清晰。
进一步地,所述跨域校验具体为:
根据所述跨域数据进行是否允许跨域的逻辑判断,若允许跨域,则校验通过,转发所述业务数据至业务处理模块进行后续的业务处理,否则校验失败,直接向浏览器返回校验失败信息。
由上述描述可知,校验器进行是否允许跨域的判断,若允许跨域则请求数据中的业务数据转发至业务处理模块进行处理,无需对跨域数据进行转发,提高通讯效率和业务处理模块数据处理的效率。
本发明的一种涉及跨域的请求处理方法与系统,适用于互联网跨域访问场景。
请参照图1,本发明的实施例一为:
一种涉及跨域的请求处理方法,包括步骤:
S1、浏览器判断待生成的请求是否涉及跨域,若是则生成预设协议请求,否则根据旧有逻辑生成常规请求;
所述预设协议请求中包括跨域数据和业务数据;
所述预设协议请求基于预设协议生成,所述预设协议预先封装于浏览器中。
本实施例中,新增了一种optionPlus协议类型(即预设协议)。该协议类型可以写死在浏览器中。
针对浏览器功能需要进行一个简单的初步封装,当遇到跨域场景时,不再触发options请求(旧有方式下会直接设置options类型请求),而直接使用optionPlus协议请求(即预设协议请求)。在非跨域场景下,仍然按照旧有逻辑执行。
optionPlus协议请求把原先跨域请求和真正的业务请求进行组合后进行请求,即请求中包括了跨域数据和业务数据。
S2、浏览器向业务指定的业务服务端发送所述预设协议请求/所述常规请求;
S3、业务服务端接收请求,进行跨域校验,并在跨域校验通过后进行业务处理;
步骤S3具体为:
业务服务端接收请求,判断请求是否基于所述预设协议,若是则进行跨域校验,并在跨域校验通过后进行业务处理,否则无需进行跨域校验,直接进行业务处理。
本实施例中,业务服务端当接收到非optionPlus请求时,将直接跳过跨域校验,直接执行后续的业务逻辑。当服务端接收到optionPlus请求时,进行相关跨域校验。
本发明的实施例二为:
一种涉及跨域的请求处理方法,与实施例一的区别在于,所述跨域校验通过业务服务端上预设的校验器进行处理;
所述跨域校验具体为:
根据所述跨域数据进行是否允许跨域的逻辑判断,若允许跨域,则校验通过,转发所述业务数据至业务处理模块进行后续的业务处理,否则校验失败,直接向浏览器返回校验失败信息。
本实施例中,业务服务端新增了一个统一的校验器,当服务端接收到非optionPlus请求时,将直接跳过统一校验器,执行后续的业务逻辑。当服务端接收到optionPlus请求时,统一校验器将生效,进行相关跨域校验,通过请求中包含的跨域数据,例如域名以及请求头,进行跨域的判断。
当统一校验器进行跨域校验时,如果跨域校验不通过时,将会返回跨域不通过的信息,返回信息与旧有跨域失败的问题一致。如果跨域校验通过时,统一校验器将会转发请求至后续的业务逻辑部分,进行后续的业务请求。当后续逻辑执行完毕后,直接返回数据给客户端(浏览器端)。
请参照图2,本发明的实施例三为:
一种涉及跨域的请求处理系统1,包括浏览器端2、业务服务端5,所述浏览器端2包括第一处理器3、第一存储器4以及存储在所述第一存储器4中并可在所述第一处理器3上运行的第一计算机程序,所述业务服务端5包括第二处理器6、第二存储器7以及存储在所述第二存储器7中并可在所述第二处理器6上运行的第二计算机程序,所述第一处理器3执行所述第一计算机程序以及所述第二处理器6执行所述第二计算机程序时,共同实现以上实施例一或二中的步骤。
针对options跨域的2次请求问题,本发明采用一种新的协议变更方式。新增一种optionPlus协议,需要对浏览器的功能进行一个初步的封装,当遇到跨域场景时,不在触发options请求,而直接使用optionPlus协议请求,当服务端接收到此种协议请求时,采用统一的校验器进行跨域校验处理,当校验完毕之后,如果不支持跨域场景,校验器将直接返回给客户端不允许跨域的异常信息。当服务端支持跨域场景时,校验器校验通过后,将直接进行后续的业务流程处理,并返回结果数据给客户端。通过此种协议变更以及浏览器封装的功能,能够减少一次网络请求,有效提高跨域场景下的系统性能,提高访问效率。
综上所述,本发明提供的一种涉及跨域的请求处理方法与系统,浏览器在需要跨域请求时,直接向业务所指定的业务服务器发送包括跨域数据和业务数据的跨域请求,由业务服务器直接进行是否允许跨域的判断,并在判断允许跨域的情况下,直接进行后续的业务处理,相较于传统的跨域请求方式,能够减少一次网络请求,有效提高跨域场景下的系统性能,提高访问效率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种涉及跨域的请求处理方法,其特征在于,包括步骤:
S1、浏览器判断待生成的请求是否涉及跨域,若是则生成预设协议请求,否则根据旧有逻辑生成常规请求;
所述预设协议请求中包括跨域数据和业务数据;
S2、浏览器向业务指定的业务服务端发送所述预设协议请求/所述常规请求;
S3、业务服务端接收请求,进行跨域校验,并在跨域校验通过后进行业务处理。
2.根据权利要求1所述的一种涉及跨域的请求处理方法,其特征在于,所述预设协议请求基于预设协议生成,所述预设协议预先封装于浏览器中。
3.根据权利要求2所述的一种涉及跨域的请求处理方法,其特征在于,步骤S3具体为:
业务服务端接收请求,判断请求是否基于所述预设协议,若是则进行跨域校验,并在跨域校验通过后进行业务处理,否则无需进行跨域校验,直接进行业务处理。
4.根据权利要求1所述的一种涉及跨域的请求处理方法,其特征在于,所述跨域校验通过业务服务端上预设的校验器进行处理。
5.根据权利要求4所述的一种涉及跨域的请求处理方法,其特征在于,所述跨域校验具体为:
根据所述跨域数据进行是否允许跨域的逻辑判断,若允许跨域,则校验通过,转发所述业务数据至业务处理模块进行后续的业务处理,否则校验失败,直接向浏览器返回校验失败信息。
6.一种涉及跨域的请求处理系统,包括浏览器端、业务服务端,所述浏览器端包括第一处理器、第一存储器以及存储在所述第一存储器中并可在所述第一处理器上运行的第一计算机程序,所述业务服务端包括第二处理器、第二存储器以及存储在所述第二存储器中并可在所述第二处理器上运行的第二计算机程序,其特征在于,所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、判断待生成的请求是否涉及跨域,若是则生成预设协议请求,否则根据旧有逻辑生成常规请求;
所述预设协议请求中包括跨域数据和业务数据;
S2、向业务指定的业务服务端发送所述预设协议请求/所述常规请求;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
S3、接收请求,进行跨域校验,并在跨域校验通过后进行业务处理。
7.根据权利要求6所述的一种涉及跨域的请求处理系统,其特征在于,所述预设协议请求基于预设协议生成,所述预设协议预先封装于浏览器中。
8.根据权利要求7所述的一种涉及跨域的请求处理系统,其特征在于,步骤S3具体为:
接收请求,判断请求是否基于所述预设协议,若是则进行跨域校验,并在跨域校验通过后进行业务处理,否则无需进行跨域校验,直接进行业务处理。
9.根据权利要求6所述的一种涉及跨域的请求处理系统,其特征在于,所述跨域校验通过业务服务端上预设的校验器进行处理。
10.根据权利要求9所述的一种涉及跨域的请求处理系统,其特征在于,所述跨域校验具体为:
根据所述跨域数据进行是否允许跨域的逻辑判断,若允许跨域,则校验通过,转发所述业务数据至业务处理模块进行后续的业务处理,否则校验失败,直接向浏览器返回校验失败信息。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310868304.9A CN116800838A (zh) | 2023-07-14 | 2023-07-14 | 一种涉及跨域的请求处理方法与系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310868304.9A CN116800838A (zh) | 2023-07-14 | 2023-07-14 | 一种涉及跨域的请求处理方法与系统 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116800838A true CN116800838A (zh) | 2023-09-22 |
Family
ID=88036773
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310868304.9A Pending CN116800838A (zh) | 2023-07-14 | 2023-07-14 | 一种涉及跨域的请求处理方法与系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116800838A (zh) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103546432A (zh) * | 2012-07-12 | 2014-01-29 | 腾讯科技(深圳)有限公司 | 实现跨域跳转的方法和系统以及浏览器、域名服务器 |
| CN111327690A (zh) * | 2020-01-23 | 2020-06-23 | 湖南快乐阳光互动娱乐传媒有限公司 | 跨域文件下载方法及装置 |
| CN112243013A (zh) * | 2019-07-16 | 2021-01-19 | 中国移动通信集团浙江有限公司 | 一种实现跨域资源缓存的方法、系统、服务器和存储介质 |
| CN112261111A (zh) * | 2020-10-16 | 2021-01-22 | 蜂助手股份有限公司 | 一种应用程序内浏览器跨域访问实现方法及系统 |
| CN114866277A (zh) * | 2022-03-22 | 2022-08-05 | 恒生电子股份有限公司 | 一种应用访问方法、装置、设备及存储介质 |
| CN115022387A (zh) * | 2022-06-27 | 2022-09-06 | 平安付科技服务有限公司 | 跨域预检请求的处理方法、装置、设备及介质 |
-
2023
- 2023-07-14 CN CN202310868304.9A patent/CN116800838A/zh active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103546432A (zh) * | 2012-07-12 | 2014-01-29 | 腾讯科技(深圳)有限公司 | 实现跨域跳转的方法和系统以及浏览器、域名服务器 |
| CN112243013A (zh) * | 2019-07-16 | 2021-01-19 | 中国移动通信集团浙江有限公司 | 一种实现跨域资源缓存的方法、系统、服务器和存储介质 |
| CN111327690A (zh) * | 2020-01-23 | 2020-06-23 | 湖南快乐阳光互动娱乐传媒有限公司 | 跨域文件下载方法及装置 |
| CN112261111A (zh) * | 2020-10-16 | 2021-01-22 | 蜂助手股份有限公司 | 一种应用程序内浏览器跨域访问实现方法及系统 |
| CN114866277A (zh) * | 2022-03-22 | 2022-08-05 | 恒生电子股份有限公司 | 一种应用访问方法、装置、设备及存储介质 |
| CN115022387A (zh) * | 2022-06-27 | 2022-09-06 | 平安付科技服务有限公司 | 跨域预检请求的处理方法、装置、设备及介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN104252501B (zh) | 一种执行数据库操作命令的计算设备和方法 | |
| CN113242312B (zh) | 一种电力实时数据传输中间件及异步数据访问的方法 | |
| CN107517254B (zh) | 一种动态数据请求处理系统及方法 | |
| EP3425877A1 (en) | Service implementation method, apparatus and system based on fix protocol | |
| CN1717676A (zh) | 用于在客户机-服务器网络上通信的方法和系统 | |
| JP2008262541A (ja) | 式の処理を改良した方法、装置、およびコンピュータプログラム | |
| CN112738184B (zh) | 一种插件式动态注册分布式微服务网关系统 | |
| CN107257363B (zh) | 一种响应请求端请求的方法及系统 | |
| CN112866421B (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
| WO2020000720A1 (zh) | 服务器、报文处理方法、程序和计算机可读存储介质 | |
| CN104391868A (zh) | 动态页面静态化的装置和方法 | |
| CN115484045A (zh) | 一种基于api网关的统一身份认证方法及系统 | |
| JP5479709B2 (ja) | データを処理するためのサーバ‐プロセッサ・ハイブリッド・システムおよび方法 | |
| CN117632445B (zh) | 请求处理方法以及装置、任务执行方法以及装置 | |
| CN101277301A (zh) | 分布式系统的接口调用方法和装置 | |
| CN102955801B (zh) | 基于分布式数据库系统的数据控制方法及系统 | |
| CN116800838A (zh) | 一种涉及跨域的请求处理方法与系统 | |
| CN119629182B (zh) | 基于Nginx和Lua的会话保持方法、系统和存储介质 | |
| CN109151074B (zh) | 基于Redis的集中式缓存队列服务架构方法及网络结构 | |
| CN111310002A (zh) | 一种基于分发器和配置表组合的泛型爬虫系统 | |
| CN118193849A (zh) | 请求处理方法、装置、计算设备、存储介质及程序产品 | |
| CN114490690A (zh) | 事务管理方法、装置、电子设备及存储介质 | |
| CN112769828B (zh) | 一种基于sanic异步微服务方法 | |
| CN114416744A (zh) | 标识数据生成方法、装置、计算机设备及存储介质 | |
| CN116962479A (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 |