CN109347914A - 一种基于Python Flask及装饰器的处理浏览器请求的方法及装置 - Google Patents
一种基于Python Flask及装饰器的处理浏览器请求的方法及装置 Download PDFInfo
- Publication number
- CN109347914A CN109347914A CN201811069244.XA CN201811069244A CN109347914A CN 109347914 A CN109347914 A CN 109347914A CN 201811069244 A CN201811069244 A CN 201811069244A CN 109347914 A CN109347914 A CN 109347914A
- Authority
- CN
- China
- Prior art keywords
- decorator
- request
- function
- verification
- server
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于PythonFlask及装饰器的处理网页请求的方法,创新将Python装饰器应用于浏览器请求判断校验中,利用装饰器函数对视图函数进行装饰,动态增加视图函数判断校验的功能,实现了判断校验的简洁高效,而且本发明还提供了一种基于PythonFlask及装饰器的处理网页请求的装置,不仅可以避免因为恶意信息以及未知信息发向服务器时,服务器不能正确处理,造成服务器被攻击,信息泄露的严重问题,而且可以减少因为校验判断的大量冗余代码,节省人力成本,而且提高了工作效率。
Description
技术领域
本发明涉及处理浏览器请求的方法及装置,尤其是涉及一种基于PythonFlask及装饰器的处理浏览器安全请求的方法及装置。
背景技术
Http Referrer(消息来路)是Http Request(请求)消息的header (头文件)的一部分,浏览器系统对应的每一步操作,在后端都是一个视图函数,当浏览器向web服务器发送请求的时候,请求中携带referrer(网站来路,消息来源)信息,用于告诉服务器该消息是从哪个页面链接过来的,服务器从此可以获取一些有用信息。现在浏览器(Web)产品大多存在着安全漏洞问题,当恶意信息以及未知信息发向服务器时,服务器不能正确处理,造成服务器被攻击,信息泄露等严重问题,现有技术中处理浏览器请求一般都会用到判断校验,但是当浏览器多次发送请求时,就会造成大量判断代码的冗余,增加了人力成本,降低了工作效率。
发明内容
本发明为了解决处理浏览器安全请求现有技术中存在的问题,创新将图Python装饰器(一种高级python语法,可以对一个函数方法和类进行加工,从而给函数方法动态地增加某些功能,装饰器的优点是能够抽离出大量函数中与函数本身功能无关的代码并且继续使用,即简洁高效地给函数添加功能)应用于浏览器请求判断校验中,利用装饰器函数对视图函数进行装饰,动态增加视图函数判断校验的功能,不仅可以避免因为恶意信息以及未知信息发向服务器时,服务器不能正确处理,造成服务器被攻击,信息泄露的严重问题,而且可以减少因为校验判断的大量冗余代码,节省人力成本,而且提高了工作效率。
本发明第一方面提供了一种基于Python Flask及装饰器的处理浏览器请求的方法,包括:
浏览器向服务器发送请求;
服务器通过从Flask(一个使用Python语言编写的轻量级Web 应用框架)的框架获取浏览器发送的请求,服务器的视图函数与所述浏览器发送的请求相对应,调用函数request从请求中获取referrer 信息;
通过字符串切片的方法获取referrer信息中的第一host(包含IP 地址和主机名的映射关系)信息;
编写装饰器函数,判断referrer信息是否存在,并对referrer信息中的第一host信息与配置文件中的第二host信息进行校验,如果校验一致,则正常响应请求,校验不一致,则阻止响应请求,返回页面,将判断校验过程封装在装饰器函数中;
定义请求次数为N,N为正整数,并对当前请求次数N是否为1 进行判定;当请求次数N=1时,用装饰器函数装饰视图函数,利用经过装饰器函数装饰的视图函数执行判断校验;当请求次数N>1时,直接调用装饰器函数,被装饰器函数装饰的视图函数执行判断校验校验。
结合第一方面,在第一方面第一种可能的实现方式中,所述服务器通过从Flask的框架获取浏览器发来的请求具体是:服务器的视图函数根据前端路由与后端路由的对应关系获取浏览器发送的请求。
结合第一方面,在第一方面第二种可能的实现方式中,所述通过字符串切片的方法获取referrer信息中的第一host信息具体是:将字符串进行切片处理,获取referrer中路由链接双斜杠分隔符以后、单斜杠分隔符之前的内容,即为第一host信息。
结合第一方面,在第一方面第三种可能的实现方式中,所述编写装饰器函数具体是:
定义装饰器函数,把视图函数对象作为输入参数传入;
设置内置warps装饰器;
定义装饰器内函数;
执行判断校验过程。
本发明第二方面提供了一种基于Python Flask及装饰器的处理浏览器请求的装置,包括:
发送模块,浏览器向服务器发送请求;
第一获取模块,服务器通过从Flask的框架获取浏览器发送的请求,服务器的视图函数与所述浏览器发送的请求相对应,调用函数 request从请求中获取referrer信息;
第二获取模块,通过字符串切片的方法获取referrer信息中的第一host信息;
编写封装模块,编写装饰器函数,判断referrer信息是否存在,并对referrer信息中的第一host信息与配置文件中的第二host信息进行校验,如果校验一致,则正常响应请求,校验不一致,则阻止响应请求,返回页面,将判断校验过程封装在装饰器函数中;
判定模块,定义请求次数为N,N为正整数,并对当前请求次数N是否为1进行判定;当请求次数N=1时,用装饰器函数装饰视图函数,利用经过装饰器函数装饰的视图函数执行判断校验;当请求次数 N>1时,直接调用装饰器函数,被装饰器函数装饰的视图函数执行判断校验校验。
结合第二方面,在第二方面第一种可能的实现方式中,所述基于 Python Flask及装饰器的处理浏览器请求的装置还包括:
获取请求模块,服务器的视图函数根据前端路由与后端路由的对应关系获取浏览器发送的请求。
结合第二方面,在第二方面第二种可能的实现方式中,所述基于 Python Flask及装饰器的处理浏览器请求的装置还包括:
第一host信息获取模块,将字符串进行切片处理,获取referrer 中路由链接双斜杠分隔符以后、单斜杠分隔符之前的内容,即为第一 host信息。
结合第二方面,在第二方面第三种可能的实现方式中,所述编写封装模块具体包括:
第一定义模块,定义装饰器函数,把视图函数对象作为输入参数传入;
设置模块,设置内置warps装饰器;
第二定义模块,定义装饰器内函数;
判断校验模块,执行判断校验过程。
本发明采用的技术方案包括以下技术效果:
本发明提供了一种基于Python Flask及装饰器的处理浏览器请求的方法,创新将Python装饰器应用于浏览器请求判断校验中,利用装饰器函数对视图函数进行装饰,动态增加视图函数判断校验的功能,实现了判断校验的简洁高效,而且本发明还提供了一种基于 Python Flask及装饰器的处理浏览器请求的装置,不仅可以避免因为恶意信息以及未知信息发向服务器时,服务器不能正确处理,造成服务器被攻击,信息泄露的严重问题,而且可以减少因为校验判断的大量冗余代码,节省人力成本,而且提高了工作效率。
应当理解的是以上的一般描述以及后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1本发明方案中方法实施例的流程示意图;
图2本发明方案中步骤S4的方法流程示意图;
图3本发明方案中装置实施例的结构示意图;
图4本发明方案中编写封装模块的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明技术方案中一种基于Python Flask及装饰器的处理浏览器请求的方法,包括:
S1,浏览器向服务器发送请求。
S2,服务器通过从Flask的框架获取浏览器发送的请求,服务器的视图函数与所述浏览器发送的请求相对应,调用函数request从请求中获取referrer信息。
S3,通过字符串切片的方法获取referrer信息中的第一host信息。
S4,编写装饰器函数,将判断校验过程封装在装饰器函数中。
S5,定义请求次数为N,N为正整数,并对当前请求次数N是否为1进行判定。如果判断结果为“是”,则执行步骤S6;如果判断结果为“否”,则执行步骤S7。
S6,用装饰器函数装饰视图函数,利用经过装饰器函数装饰的视图函数执行判断校验。
S7,直接调用装饰器函数,被装饰器函数装饰的视图函数执行判断校验。
S8,判断referrer信息中的第一host信息与配置文件中的第二 host信息是否一致。如果判断结果为“是”,执行步骤S9;如果判断结果为“否”,则执行步骤S10。
S9,正常响应请求。
S10,阻止响应请求,返回页面。
在步骤S2中,所述服务器通过从Flask的框架获取浏览器发来的请求具体是:服务器的视图函数根据前端路由与后端路由的对应关系获取浏览器发送的请求。
其中Flask框架是python语言的web开发框架,视图函数通过路由接受http请求,根据系统需求做出对应处理,并且返回给前端界面,request为flask模块的内置函数。其中前端路由即为URL中 /后的地址,后端路由即为视图函数@app.route()中的地址,前端路由与后端路由是一一对应的关系。
在步骤S3中,通过字符串切片的方法获取referrer信息中的第一host信息具体是:将字符串进行切片处理,获取referrer中路由链接双斜杠分隔符以后、单斜杠分隔符之前的内容,即为第一host 信息。
下面以浏览器发送添加用户的操作请求(其中请求次数N>1)为例简单介绍一下,添加用户每次只添加一个。
第一步引用装饰器函数装饰视图函数,指定路由为/adduser,以及指定请求的方法get/post,即指定支持http请求语句的类型;
第二步从request的form表单中获取账号;
第三步从request的form表单中获取密码;
第四步从request的form表单中获取邮箱;
第五步被装饰器函数装饰的视图函数校验用户名格式,不合法则返回用户名格式错误;
第六步被装饰器函数装饰的视图函数依次校验密码等信息,如果合法,信息插入数据库,返回成功。
函数执行过程,浏览器发送添加用户的请求,发向路由/adduser,视图函数通过路由@app.route('/adduser)接受到浏览器发来的请求,因为该视图函数被装饰器函数修饰,所以在执行添加用户操作之前,会做referrer信息中第一host信息与配置文件中的第二host 信息进行校验的校验,校验成功,则继续执行,校验失败,则返回错误。
如图2所示,在本发明技术方案的方法步骤S4中,编写装饰器函数具体为:
S41,定义装饰器函数,把视图函数对象作为输入参数传入。
S42,设置内置warps装饰器。
S43,定义装饰器内函数。
S44,执行判断校验过程。
在步骤S42中,内置warps装饰器在编写装饰器时,在实现前设置内置warps装饰器可以保证装饰器不会对被装饰函数造成影响。
在步骤S43中,装饰器内函数用于内部数据的传输处理。
如图3所示,本发明技术方案中一种基于Python Flask及装饰器的处理浏览器请求的装置,包括:
发送模块11,浏览器向服务器发送请求;
第一获取模块12,服务器通过从Flask的框架获取浏览器发送的请求,服务器的视图函数与所述浏览器发送的请求相对应,调用函数request从请求中获取referrer信息;
第二获取模块13,通过字符串切片的方法获取referrer信息中的第一host信息;
编写封装模块14,编写装饰器函数,判断referrer信息是否存在,并对referrer信息中的第一host信息与配置文件中的第二host 信息进行校验,如果校验一致,则正常响应请求,校验不一致,则阻止响应请求,返回页面,将判断校验过程封装在装饰器函数中;
判定模块15,定义请求次数为N,N为正整数,并对当前请求次数N是否为1进行判定;当请求次数N=1时,用装饰器函数装饰视图函数,利用经过装饰器函数装饰的视图函数执行判断校验;当请求次数N>1时,直接调用装饰器函数,被装饰器函数装饰的视图函数执行判断校验校验。
基于Python Flask及装饰器的处理浏览器请求的装置还包括:
获取请求模块,服务器的视图函数根据前端路由与后端路由的对应关系获取浏览器发送的请求。
基于Python Flask及装饰器的处理浏览器请求的装置还包括:
第一host信息获取模块,将字符串进行切片处理,获取referrer 中路由链接双斜杠分隔符以后、单斜杠分隔符之前的内容,即为第一 host信息。
如图4所示,在本发明技术方案中的编写封装模块具体包括:
第一定义模块141,定义装饰器函数,把视图函数对象作为输入参数传入;
设置模块142,设置内置warps装饰器;
第二定义模块143,定义装饰器内函数;
判断校验模块144,执行判断校验过程。
本发明属于Python Flask项目的创新与扩展,主要涉及领域包括python开发语言,Flask web框架,Http协议消息,python装饰器,同时适用于所有基于Python Flask web项目。同时本发明采用的装饰器函数基本原理为公知的现有技术。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (8)
1.一种基于Python Flask及装饰器的处理浏览器请求的方法,其特征是,包括:
浏览器向服务器发送请求;
服务器通过从Flask的框架获取浏览器发送的请求,服务器的视图函数与所述浏览器发送的请求相对应,调用函数request从请求中获取referrer信息;
通过字符串切片的方法获取referrer信息中的第一host信息;
编写装饰器函数,判断referrer信息是否存在,并对referrer信息中的第一host信息与配置文件中的第二host信息进行校验,如果校验一致,则正常响应请求,校验不一致,则阻止响应请求,返回页面,将判断校验过程封装在装饰器函数中;
定义请求次数为N,N为正整数,并对当前请求次数N是否为1进行判定;当请求次数N=1时,用装饰器函数装饰视图函数,利用经过装饰器函数装饰的视图函数执行判断校验;当请求次数N>1时,直接调用装饰器函数,被装饰器函数装饰的视图函数执行判断校验校验。
2.根据权利要求1所述的基于Python Flask及装饰器的处理浏览器请求的方法,其特征是,所述服务器通过从Flask的框架获取浏览器发来的请求具体是:服务器的视图函数根据前端路由与后端路由的对应关系获取浏览器发送的请求。
3.根据权利要求1所述的基于Python Flask及装饰器的处理浏览器请求的方法,其特征是,所述通过字符串切片的方法获取referrer信息中的第一host信息具体是:将字符串进行切片处理,获取referrer中路由链接双斜杠分隔符以后、单斜杠分隔符之前的内容,即为第一host信息。
4.根据权利要求1所述的基于Python Flask及装饰器的处理浏览器请求的方法,其特征是,所述编写装饰器函数具体是:
定义装饰器函数,把视图函数对象作为输入参数传入;
设置内置warps装饰器;
定义装饰器内函数;
执行判断校验过程。
5.一种基于Python Flask及装饰器的处理浏览器请求的装置,其特征是,包括:
发送模块,浏览器向服务器发送请求;
第一获取模块,服务器通过从Flask的框架获取浏览器发送的请求,服务器的视图函数与所述浏览器发送的请求相对应,调用函数request从请求中获取referrer信息;
第二获取模块,通过字符串切片的方法获取referrer信息中的第一host信息;
编写封装模块,编写装饰器函数,判断referrer信息是否存在,并对referrer信息中的第一host信息与配置文件中的第二host信息进行校验,如果校验一致,则正常响应请求,校验不一致,则阻止响应请求,返回页面,将判断校验过程封装在装饰器函数中,;
判定模块,定义请求次数为N,N为正整数,并对当前请求次数N是否为1进行判定;当请求次数N=1时,用装饰器函数装饰视图函数,利用经过装饰器函数装饰的视图函数执行判断校验;当请求次数N>1时,直接调用装饰器函数,被装饰器函数装饰的视图函数执行判断校验校验。
6.根据权利要求5所述的基于Python Flask及装饰器的处理浏览器请求的装置,其特征是,还包括:
获取请求模块,服务器的视图函数根据前端路由与后端路由的对应关系获取浏览器发送的请求。
7.根据权利要求5所述的基于Python Flask及装饰器的处理浏览器请求的装置,其特征是,还包括:第一host信息获取模块,将字符串进行切片处理,获取referrer中路由链接双斜杠分隔符以后、单斜杠分隔符之前的内容,即为第一host信息。
8.根据权利要求5所述的基于Python Flask及装饰器的处理浏览器请求的装置,其特征是,所述编写封装模块具体包括:
第一定义模块,定义装饰器函数,把视图函数对象作为输入参数传入;
设置模块,设置内置warps装饰器;
第二定义模块,定义装饰器内函数;
判断校验模块,执行判断校验过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811069244.XA CN109347914A (zh) | 2018-09-13 | 2018-09-13 | 一种基于Python Flask及装饰器的处理浏览器请求的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811069244.XA CN109347914A (zh) | 2018-09-13 | 2018-09-13 | 一种基于Python Flask及装饰器的处理浏览器请求的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109347914A true CN109347914A (zh) | 2019-02-15 |
Family
ID=65305040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811069244.XA Pending CN109347914A (zh) | 2018-09-13 | 2018-09-13 | 一种基于Python Flask及装饰器的处理浏览器请求的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109347914A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581578A (zh) * | 2020-05-09 | 2020-08-25 | 郑州悉知信息科技股份有限公司 | 接口请求处理方法和装置 |
CN112395138A (zh) * | 2020-11-20 | 2021-02-23 | 北京华胜天成科技股份有限公司 | 一种校验参数的方法和装置 |
CN113411234A (zh) * | 2021-06-17 | 2021-09-17 | 杭州遥望网络科技有限公司 | 一种接口测试方法、系统及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080163043A1 (en) * | 2007-01-03 | 2008-07-03 | Blue Reference, Inc. | Method and Apparatus for Data Analysis in a Word Processor Application |
CN107315784A (zh) * | 2017-06-07 | 2017-11-03 | 北京奇艺世纪科技有限公司 | 一种数据访问方法和浏览器 |
-
2018
- 2018-09-13 CN CN201811069244.XA patent/CN109347914A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080163043A1 (en) * | 2007-01-03 | 2008-07-03 | Blue Reference, Inc. | Method and Apparatus for Data Analysis in a Word Processor Application |
CN107315784A (zh) * | 2017-06-07 | 2017-11-03 | 北京奇艺世纪科技有限公司 | 一种数据访问方法和浏览器 |
Non-Patent Citations (1)
Title |
---|
铠甲巨人: "Flask框架实现给视图函数增加装饰器操作示例", 《HTTPS://WWW.JB51.NET/ARTICLE/143867.HTM》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581578A (zh) * | 2020-05-09 | 2020-08-25 | 郑州悉知信息科技股份有限公司 | 接口请求处理方法和装置 |
CN111581578B (zh) * | 2020-05-09 | 2022-11-29 | 郑州悉知信息科技股份有限公司 | 接口请求处理方法和装置 |
CN112395138A (zh) * | 2020-11-20 | 2021-02-23 | 北京华胜天成科技股份有限公司 | 一种校验参数的方法和装置 |
CN112395138B (zh) * | 2020-11-20 | 2024-04-02 | 北京华胜天成科技股份有限公司 | 一种校验参数的方法和装置 |
CN113411234A (zh) * | 2021-06-17 | 2021-09-17 | 杭州遥望网络科技有限公司 | 一种接口测试方法、系统及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103856446B (zh) | 一种登录方法、装置及开放平台系统 | |
US9645910B1 (en) | Cross platform mobile HTML debugging | |
CN108650149A (zh) | 服务器的测试方法、装置、设备及计算机可读存储介质 | |
US9652364B1 (en) | Cloud service for mobile testing and debugging | |
CN109525461B (zh) | 一种网络设备的测试方法、装置、设备及存储介质 | |
CN109347914A (zh) | 一种基于Python Flask及装饰器的处理浏览器请求的方法及装置 | |
US20020052937A1 (en) | Method and apparatus for verifying the contents of a global configuration file | |
US20050021736A1 (en) | Method and system for monitoring performance of distributed applications | |
CN103856493B (zh) | 跨域登录系统及方法 | |
CN103516785A (zh) | 网页代理系统及其通信方法 | |
CN102946334B (zh) | 一种获取有效图像验证码的方法和系统 | |
CN104579822A (zh) | 基于Http协议的移动应用自动化性能测试系统及方法 | |
WO2013163926A1 (zh) | 处理用户访问网页的请求的方法及系统 | |
CN109981664A (zh) | 网页端的网站登录方法、装置及实现装置 | |
CN103220167B (zh) | 一种分布式监控系统及其数据存储方法 | |
US9971636B2 (en) | Methods for implementing web services and devices thereof | |
CN106919511B (zh) | 应用的模拟方法、模拟应用及其运作方法以及模拟系统 | |
CN111200523B (zh) | 中台系统配置方法、装置、设备及存储介质 | |
CN110602056A (zh) | 一种业务参数传递方法及装置 | |
CN110099129A (zh) | 一种数据传输方法以及设备 | |
CN106503111A (zh) | 网页转码方法、装置及客户终端 | |
CN106681734A (zh) | 功能接口调用响应方法、装置 | |
CN106878260B (zh) | 单点登录实现方法及装置 | |
CN111143532A (zh) | 对话单元的访问方法、装置、设备及存储介质 | |
CN109218402A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190215 |