CN102075572B - 一种嵌入式web服务器 - Google Patents
一种嵌入式web服务器 Download PDFInfo
- Publication number
- CN102075572B CN102075572B CN2010106227716A CN201010622771A CN102075572B CN 102075572 B CN102075572 B CN 102075572B CN 2010106227716 A CN2010106227716 A CN 2010106227716A CN 201010622771 A CN201010622771 A CN 201010622771A CN 102075572 B CN102075572 B CN 102075572B
- Authority
- CN
- China
- Prior art keywords
- file
- module
- client
- script
- protocol analysis
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种嵌入式web服务器,包括:接口模块、存储模块、协议解析模块、文件检索模块和脚本处理模块。采用本发明减少了web服务器对软硬件资源的过多需求,并降低了对操作系统的依赖性等缺点,更加符合嵌入式设备低功耗、低成本的要求。
Description
技术领域
本发明涉及一种嵌入式web服务器,属于嵌入式技术领域。
背景技术
随着互联网的快速发展,web技术广泛地应用于我们的生活中,我们每天浏览互联网,每一次点击页面,都是web服务器在幕后为我们提供相应的服务。
当前市场上比较常用的web服务器软件有微软的iis,tomcat的apach,jetty等,但都是针对桌面系统,特点是功能强大,支持标准的脚本语言,相应的对软硬件的资源要求也比较高,启动速度慢。近年来,随着嵌入式系统的快速发展,以及web技术的广泛应用,对嵌入式web服务器的需求越来越多,现有的嵌入式web服务技术主要是CGI,这种技术也广泛应用于桌面系统,其优点是接口控制灵活,技术规范;但其不足之处是对系统软硬件的资源要求高,需要文件系统的支持,对操作系统及处理器等硬件的依赖性强,不支持简易的操作系统,应用开发也比较复杂,与嵌入式系统设备追求的低功耗、低成本目标相悖。由于嵌入式设备的web应用主要是设备监控,交互的内容比较简单,不需要强大的功能,因此需要一种简易的嵌入式web服务器以满足其具体的特定的需求。
发明内容
本发明的技术解决问题的目的在于:提供一种嵌入式web服务器。采用本发明减少了web服务器对软硬件资源的过多需求,并降低了对操作系统的依赖性等缺点,更加符合嵌入式设备低功耗、低成本的要求。
本发明的技术解决方案是:
一种嵌入式web服务器,包括:接口模块、存储模块、协议解析模块、文件检索模块和脚本处理模块;
存储模块,用于存储客户端请求的页面文件及页面文件的附属文件;
接口模块,用于与客户端进行tcp/ip协议通信,接收时,将客户端发送的http数据包转发给协议解析模块;发送时,将由协议解析模块传入的http数据包,通过tcp/ip协议发送给客户端;
协议解析模块,接收时,将从接口模块传入的http数据包进行http协议解析,获得客户端要请求的文件,并将客户端要请求的文件发送给文件检索模块;发送时,将由文件检索模块或者脚本处理模块传入的http数据文件,以数据包的形式发送给接口模块;
文件检索模块,接收协议解析模块传入的客户端要请求的文件,并根据客户端要请求的文件的文件名对存储模块中的文件进行检索;检索到客户端要请求的文件后,判断客户端要请求的文件中是否包含自定义脚本数据,如果不包含脚本数据,则将客户端要请求的文件直接返回给协议解析模块,否则将客户端要请求的文件传送给脚本处理模块;
脚本处理模块,对传入的客户端要请求的文件中的脚本数据按照脚本映射表进行脚本解析,将解析后的客户端要请求的文件返回给协议解析模块。
存储模块按照目录区、数据区的格式进行存储;
在数据区中每一个文件都是一条记录,记录格式包括文件头标记、文件最后修改时间、文件大小、文件名、扩展名、文件数据;在目录区中每一条记录对应于数据区中的一条数据,记录格式包括目录文件头标记、文件最后修改时间、文件大小、文件名长度、扩展名长度、文件属性、文件名、扩展名、文件内容索引;所有文件在一个连续的地址空间中存储。
所述文件检索模块按照存储模块存储的文件格式进行检索,先检索目录区,然后根据目录区的文件内容索引到文件数据区中读取文件内容。
本发明与现有技术相比具有如下优点:
(1)插入到html文件中的脚本格式为自定义,根据脚本内容定义脚本映射表,实现简单,不需要开发者去学习复杂的html脚本编程语言。
(2)所有页面文件及其附属文件(图片,css文件等)的封装格式类似于磁盘文件系统的格式,但要比磁盘文件系统格式简单,文件检索效率高。
(3)外部存储器可支持Flash,EPCS等常用的存储芯片,在内存中进行文件检索及解析,处理速度非常快。
(4)脚本映射表为根据脚本内容自定义的映射表,映射表检索采用折半查找法,脚本解析效率高。
(5)系统仅仅对客户端请求的页面文件及其附属文件(图片,css文件等)进行存储及检索,仅仅对html文件中定义的脚本标识进行解析,没有任何多余的处理,所以系统资源占用少,效率高,启动速度快。
(6)系统使用自己定义的文件存储格式进行文件打包存储,并按照自定义格式实现文件检索,所以系统运行不需要文件系统的支持,不依赖于操作系统,可以运行在一些简易操作系统上如uc/OS等。
(7)本发明在具体实现时,资源占用少,效率高,启动速度快,对硬件的依赖性小;系统兼容性好,不需要移植即可适用于各种软硬件平台;动态分配软硬件资源,依据实现动态页面的复杂度来分配软硬件资源。
(8)本发明有效地提高了嵌入式系统的软硬件资源利用率,对嵌入式设备的监控提供了一种方便快捷的方式,大大节省了设备的软硬件资源,降低了成本。
附图说明
图1为本发明结构示意图;
图2为本发明实施例图。
具体实施方式
如图1所示,本发明包括接口模块、存储模块、协议解析模块、文件检索模块和脚本处理模块。
使用前,首先构造使用的html文件及其附属文件,例如css文件,图片文件等;然后在需要动态显示的html文件中出入自定义脚本标识,自定义脚本标识以%为起始标识,以%为结束标识,例如实时显示设备接收点频,则脚本标识可以定义如下:
%recv_freq%
脚本标识定义完成以后,再根据自定义脚本的内容构造脚本映射表,用于对脚本的含义进行解析。脚本映射表包含脚本标识和脚本内容(初始内容为空),脚本解析处理模块根据脚本映射表定义的脚本标识动态生成脚本内容,在进行脚本解析时检索脚本映射表,用脚本内容替换脚本标识,动态生成html文件。
在使用时,将使用的http文件及其附属文件(css文件,图片文件等),按照一定的格式重新打包成一个文件,通过存储模块将重新打包的文件写入EPCS芯片的某一个连续的地址空间,作为web服务器的文件系统(以下简称文件系统)。文件重新打包按照“目录区+数据区”的格式进行存储,在数据区中每一个文件都是一条记录,记录格式如下:
组成 长度
文件头标记 4bytes
文件最后修改日期 2bytes
文件最后修改时间 2bytes
文件大小 4bytes
文件名长度 2bytes
扩展名长度 2bytes
文件名 不定长度
扩展名 不定长度
文件数据 不定长度
在目录区中每一条记录对应于数据区中的一条数据,记录格式如下:
组成 长度
目录文件头标记 4bytes
文件最后修改日期 2bytes
文件最后修改时间 2bytes
文件大小 4bytes
文件名长度 2bytes
扩展名长度 2bytes
文件名 不定长度
扩展名 不定长度
文件内容索引 4bytes
如图1、2所示,存储器包括由EPCS芯片实现的外部存储器,和由DDR芯片实现的内部存储器,在系统启动时,将存储在外部存储器上的文件及其附属文件读到内部存储器中,这样可大大提高文件的解析和检索速度。
接口模块在接收时,将客户端发送的tcp/ip数据包转发给http协议解析模块;在发送时,将协议解析模块传入的http数据包,通过tcp/ip协议发送给客户端。
协议解析模块在接收时,对由接口模块传入的数据包进行http协议解析,获得客户端的请求文件,并将客户端的请求文件发送给文件检索模块;发送时,将由文件检索模块或者脚本处理模块传入的http数据文件,以数据包的形式发送给接口模块。
文件检索模块在接收协议解析模块传入的客户端请求文件后,根据文件名对存储在内部存储器中的文件按照存储格式进行文件检索,检索到客户端的请求文件后,判断文件中是否包含自定义脚本数据,如果不包含脚本数据,则将文件直接返回给协议解析模块,否则将文件传送给脚本处理模块。
脚本处理模块对传入的用户请求文件按照脚本映射表进行脚本解析,脚本解析处理模块根据脚本映射表定义的脚本标识动态生成脚本内容,在进行脚本解析时检索脚本映射表,用脚本内容替换脚本标识,动态生成html文件,将解析后的文件返回给协议解析模块。
如图1所示,本发明采用的硬件平台主要包括FPGA芯片,EPCS芯片,LAN接口芯片及DDR芯片组成,系统不需要专门处理器芯片的支持,通在使用FPGA内置软核实现处理芯片的功能。
本发明未详细说明部分属本领域技术人员公知常识。
Claims (3)
1.一种嵌入式web服务器,其特征在于包括:接口模块、存储模块、协议解析模块、文件检索模块和脚本处理模块;
存储模块,用于存储客户端请求的页面文件及页面文件的附属文件;
接口模块,用于与客户端进行tcp/ip协议通信,接收时,将客户端发送的http数据包转发给协议解析模块;发送时,将由协议解析模块传入的http数据包,通过tcp/ip协议发送给客户端;
协议解析模块,接收时,将从接口模块传入的http数据包进行http协议解析,获得客户端要请求的文件,并将客户端要请求的文件发送给文件检索模块;发送时,将由文件检索模块或者脚本处理模块传入的http数据文件,以数据包的形式发送给接口模块;
文件检索模块,接收协议解析模块传入的客户端要请求的文件,并根据客户端要请求的文件的文件名对存储模块中的文件进行检索;检索到客户端要请求的文件后,判断客户端要请求的文件中是否包含自定义脚本标识,如果不包含脚本标识,则将客户端要请求的文件直接返回给协议解析模块,否则将客户端要请求的文件传送给脚本处理模块;
脚本处理模块,对传入的客户端要请求的文件中的脚本标识按照脚本映射表替换为脚本内容后,将解析后的客户端要请求的文件返回给协议解析模块。
2.根据权利要求1所述的一种嵌入式web服务器,其特征在于:存储模块按照目录区、数据区的格式进行存储;
在数据区中每一个文件都是一条记录,记录格式包括文件头标记、文件最后修改时间、文件大小、文件名、扩展名、文件数据;在目录区中每一条记录对应于数据区中的一条数据,记录格式包括目录文件头标记、文件最后修改时间、文件大小、文件名长度、扩展名长度、文件属性、文件名、扩展名、文件内容索引;所有文件在一个连续的地址空间中存储。
3.根据权利要求1或2所述的一种嵌入式web服务器,其特征在于:所述文件检索模块按照存储模块存储的文件格式进行检索,先检索目录区,然后根据目录区的文件内容索引到文件数据区中读取文件内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106227716A CN102075572B (zh) | 2010-12-29 | 2010-12-29 | 一种嵌入式web服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106227716A CN102075572B (zh) | 2010-12-29 | 2010-12-29 | 一种嵌入式web服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102075572A CN102075572A (zh) | 2011-05-25 |
CN102075572B true CN102075572B (zh) | 2013-05-01 |
Family
ID=44033913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106227716A Active CN102075572B (zh) | 2010-12-29 | 2010-12-29 | 一种嵌入式web服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102075572B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103929486B (zh) * | 2014-04-22 | 2017-12-08 | 福建三元达科技有限公司 | 基于单片机实时监控系统及其实现web服务器的方法 |
CN104636464B (zh) * | 2015-02-09 | 2019-02-01 | 腾讯科技(深圳)有限公司 | 访问文件的方法和装置 |
CN105516337B (zh) * | 2015-12-28 | 2018-07-13 | 南京大学金陵学院 | 基于动态加载机制的web站点对接解析方法 |
CN105447198A (zh) * | 2015-12-30 | 2016-03-30 | 深圳市瑞铭无限科技有限公司 | 页面脚本便捷导入的方法及装置 |
CN106570134A (zh) * | 2016-10-27 | 2017-04-19 | 西安合众思壮导航技术有限公司 | 一种文件组织方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1987850A (zh) * | 2005-12-20 | 2007-06-27 | 腾讯科技(深圳)有限公司 | 一种实现ajax网页的方法 |
CN101147145A (zh) * | 2005-03-24 | 2008-03-19 | 惠普开发有限公司 | 基于嵌入式web的管理方法 |
-
2010
- 2010-12-29 CN CN2010106227716A patent/CN102075572B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101147145A (zh) * | 2005-03-24 | 2008-03-19 | 惠普开发有限公司 | 基于嵌入式web的管理方法 |
CN1987850A (zh) * | 2005-12-20 | 2007-06-27 | 腾讯科技(深圳)有限公司 | 一种实现ajax网页的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102075572A (zh) | 2011-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102075572B (zh) | 一种嵌入式web服务器 | |
WO2020253389A1 (zh) | 页面转译方法、装置、介质及电子设备 | |
US8090790B2 (en) | Method and system for splicing remote direct memory access (RDMA) transactions in an RDMA-aware system | |
US10043220B2 (en) | Method, device and storage medium for data processing | |
RU2011136691A (ru) | Преобразование контента на компьютере | |
CN102184177A (zh) | 一种预览文件的方法与系统 | |
CN102436513A (zh) | 分布式检索方法和系统 | |
CN109561117B (zh) | 数据采集方法及装置 | |
JP2008512933A (ja) | カメラ付き電話で画像に場所名注釈を付加する方法 | |
TW201222283A (en) | On-demand translation of application text | |
CN103279474A (zh) | 一种视频文件索引方法及系统 | |
CN114385091B (zh) | 网盘盘符的实现方法、装置、网盘及存储介质 | |
WO2016000507A1 (zh) | 省流量模式搜索服务的方法、服务器、客户端和系统 | |
CN109284252B (zh) | 一种通信设备中轻量级文件系统管理方法 | |
CN102073633A (zh) | 资源文件的存储访问方法及装置 | |
US20230306010A1 (en) | Optimizing Storage System Performance Using Data Characteristics | |
CN104917786A (zh) | 一种节省客户端和服务器交互时的传输流量的方法和模块 | |
CN102122282A (zh) | 存储社会性网络服务内容的方法、装置和系统 | |
CN105447016B (zh) | 一种组件的快速搜索及重用的办法 | |
CN106528667B (zh) | 读写分离的低功耗海量数据全文检索系统框架 | |
CN114327302B (zh) | 处理对象存储访问的方法、装置及系统 | |
US9069821B2 (en) | Method of processing files in storage system and data server using the method | |
CN114363304B (zh) | Rtp视频流存储、播放方法及装置 | |
CN112615973B (zh) | 一种图片显示方法、装置、服务器和计算机可读存储介质 | |
WO2021012723A1 (zh) | 多媒体文件存储、读取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |