首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于Node.js的HTTP请求头的无入侵透传方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:杭州笨马网络技术有限公司

摘要:本发明公开了一种基于Node.js的HTTP请求头的无入侵透传方法,在异步任务状态存储中,通过在多个异步任务之间建立关联关系,使关联的异步任务之间共享同一份状态数据;在服务创建切面注入中,监听客户端请求;在请求发起切面注入中,拦截服务端向下游发起的请求:使用原入参和上下文调用原请求函数,获取请求实例,同时获取异步任务状态存储读取数据,写入请求实例的请求头中;在内置模块方法劫持中,劫持原始的请求构造函数和服务创建函数,用包装过的函数进行替换,为整个业务系统注入透传能力。本发明可以无需对框架进行定制,不入侵业务代码,只用在应用启动时注入,即可实现请求头透传能力。

主权项:1.基于Node.js的HTTP请求头的无入侵透传方法,其特征在于:包括异步任务状态存储步骤、服务创建切面注入步骤、请求发起切面注入步骤和内置模块方法劫持步骤;在异步任务状态存储步骤中,通过在多个异步任务之间建立关联关系,使关联的异步任务之间共享同一份状态数据;在服务创建切面注入步骤中,监听客户端请求:从请求中获取到需要透传的请求头,写入异步任务状态存储中,使用原入参和上下文调用原监听函数;在请求发起切面注入步骤中,拦截服务端向下游发起的请求:使用原入参和上下文调用原请求函数,获取请求实例,同时从异步任务状态存储中读取数据,写入请求实例的请求头中;在内置模块方法劫持步骤中,劫持原始的请求构造函数和服务创建函数,用包装过的函数进行替换,为整个业务系统注入透传能力;所述异步任务状态存储步骤具体包括:a1、构造一个数据存储模块,负责初始化当前任务状态,并负责对当前任务状态进行读取和写入;a2、创建AsyncLocalStorage实例,基于实例的run函数实现当前任务状态初始化,基于实例的getStore函数实现当前任务状态读取和写入;a3、创建async_hooks实例,并创建一个全局任务状态对象;在实例的init生命周期中,用父级和当前异步任务的唯一标识,在不同任务间创建关联关系,以便使用同一份任务状态;用当前异步任务的唯一标识为键名,在全局任务状态中对当前任务状态,进行初始化和读取和写入;所述服务创建切面注入步骤具体包括:b1、在服务的请求监听函数中,获取所需请求头数据,存储至上述数据存储模块中;b2、调用异步任务状态存储步骤中的run函数,使用包装函数被调用时的入参和上下文,对原函数进行调用,接受请求连接,以此确保被接受的请求连接,和之后对其进行业务处理的异步任务,共享同一份任务状态;所述请求发起切面注入步骤具体包括:c1、使用包装函数被调用时的入参和上下文,对原函数进行调用,获取请求实例;c2、从异步任务状态存储步骤中读取所需请求头数据,写入请求对象的同名请求头中;所述内置模块方法劫持步骤具体包括:d1、对HTTP和HTTPS模块内置的createServer函数进行覆盖,替换为包装后的函数;d2、对HTTP和HTTPS模块内置的get和request函数进行覆盖,替换为包装后的函数。

全文数据:

权利要求:

百度查询: 杭州笨马网络技术有限公司 基于Node.js的HTTP请求头的无入侵透传方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。