当前位置:   article > 正文

介绍C++ 微型web框架Crow_crow c++

crow c++

介绍C++ 微型web框架Crow

在现代软件开发中,Web开发已经成为一项极为重要的技能。为了简化Web应用程序的开发过程,许多开发者转向使用Web框架。Crow是一个基于C++的微型Web框架,它提供了简洁的API和高性能的特性,使得开发者能够轻松地构建高效的Web应用程序。本文将深入介绍Crow框架的底层原理、逻辑、关键技术以及使用方法。

Crow框架的底层原理

Crow框架的底层原理主要基于C++的模板元编程和异步编程技术。它采用了基于事件驱动的设计模式,通过事件循环和回调函数来处理HTTP请求和响应。Crow利用了C++11及以上版本的新特性,如lambda表达式和异步IO,以提供高效的并发处理能力。

Crow框架的逻辑

Crow框架的逻辑可以分为以下几个主要步骤:

  1. 接收HTTP请求:Crow使用底层的套接字(Socket)来监听HTTP请求,并将其分派给相应的处理器。
  2. 路由处理:Crow框架通过路由系统将接收到的HTTP请求映射到相应的处理函数。这些处理函数可以是用户定义的,用于处理特定的URL请求。
  3. 处理请求:一旦请求被路由到相应的处理函数,Crow框架会调用该函数来处理请求,并生成相应的HTTP响应。
  4. 发送响应:Crow框架将生成的HTTP响应发送回客户端,并在必要时关闭连接。

Crow框架的关键技术

Crow框架的关键技术包括:

  • 模板元编程(Template Metaprogramming):Crow利用模板元编程技术来实现高效的HTTP路由系统和请求处理器。
  • 异步IO(Asynchronous IO):Crow使用异步IO技术来实现非阻塞的HTTP请求处理,以提高性能和并发能力。
  • Lambda表达式(Lambda Expressions):Crow利用C++11的Lambda表达式来定义简洁的HTTP请求处理函数,使得代码更易读和维护。

Crow框架的使用方法详解

下面是一个简单的示例代码,演示了如何使用Crow框架来创建一个简单的HTTP服务器:

#include <crow.h>

int main() {
    crow::SimpleApp app;

    CROW_ROUTE(app, "/")
    ([](){
        return "Hello, World!";
    });

    app.port(8080).multithreaded().run();
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这个示例中,我们首先包含了Crow框架的头文件,然后创建了一个SimpleApp对象。接着,我们使用CROW_ROUTE宏定义了一个路由,将根路径(/)映射到一个处理函数,该函数返回"Hello, World!"。最后,我们指定了服务器监听的端口号为8080,并调用run()函数来启动服务器。

通过以上介绍,我们可以看到Crow框架提供了简洁而强大的API,使得开发者能够轻松地构建高性能的Web应用程序

结论

Crow框架是一个优秀的C++微型Web框架,它采用了先进的技术和设计理念,为开发者提供了高效、简洁的Web开发解决方案。通过本文的介绍,相信读者已经对Crow框架有了更深入的理解,并能够开始使用它来构建自己的Web应用程序。

参考:Crow

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/612779
推荐阅读
  • 百... <!-- <a title="百度首页代码(HTML+CSS+jQuery)" href="/article/detail/12247" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="Git 命令拉取分支、忽略已经提交的文件_git 拉取分支" href="/w/我家自动化/article/detail/613591" target="_blank"><em>Git</em> 命令拉取<em>分支</em>、<em>忽略</em>已经<em>提交</em>的<em>文件</em>_<em>git</em> 拉取<em>分支</em>...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="Git 命令拉取分支、忽略已经提交的文件_git 拉取分支" href="/w/我家自动化/article/detail/613591" target="_blank"><em>文件</em>,下次<em>提交</em>也是不会被<em>忽略</em>的,这个<em>文件</em>只针对尚未被<em>提交</em>的<em>文件</em>进行<em>忽略</em>起作用。注意,已经<em>提交</em>到<em>Git</em>服务器的<em>文件</em>,即便你... <!-- <a title="Git 命令拉取分支、忽略已经提交的文件_git 拉取分支" href="/article/detail/13591" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="matplotlib综合练习一_matploblib 题目" href="/w/知新_RL/article/detail/612758" target="_blank"><em>matplotlib</em>综合练习一<em>_</em><em>matploblib</em> <em>题目</em>...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="matplotlib综合练习一_matploblib 题目" href="/w/知新_RL/article/detail/612758" target="_blank">【代码】<em>matplotlib</em>综合练习一。<em>_</em><em>matploblib</em> <em>题目</em><em>matploblib</em> <em>题目</em> ... <!-- <a title="matplotlib综合练习一_matploblib 题目" href="/article/detail/12758" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="【Java在线问卷调查】Java ssm框架在线问卷调查系统的设计与实现_java后台模块调查问卷" href="/w/我家小花儿/article/detail/613350" target="_blank">【<em>Java</em>在线<em><em>问卷</em><em>调查</em></em>】<em>Java</em> ssm框架在线<em><em>问卷</em><em>调查</em></em>系统的设计与实现_<em>java</em>后台<em>模块</em><em>调查</em><em>问卷</em>...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="【Java在线问卷调查】Java ssm框架在线问卷调查系统的设计与实现_java后台模块调查问卷" href="/w/我家小花儿/article/detail/613350" target="_blank">Jsp是服务端技术,与微软的ASP一样,是一种动态网页的技术,不过jsp是使用<em>Java</em>语言技术开发的技术,jsp使用的时... <!-- <a title="【Java在线问卷调查】Java ssm框架在线问卷调查系统的设计与实现_java后台模块调查问卷" href="/article/detail/13350" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="git中使用.gitignore文件 忽略git不必要提交的文件" href="/w/IT小白/article/detail/613648" target="_blank"><em>git</em>中使用.<em>git</em>ignore<em>文件</em> <em>忽略</em><em>git</em>不必要提交<em>的</em><em>文件</em>...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="git中使用.gitignore文件 忽略git不必要提交的文件" href="/w/IT小白/article/detail/613648" target="_blank">在进行协作开发代码管理<em>的</em>过程中,常常会遇到某些临时<em>文件</em>、配置<em>文件</em>、或者生成<em>文件</em>等,这些<em>文件</em>由于不同<em>的</em>开发端会不一样,如果... <!-- <a title="git中使用.gitignore文件 忽略git不必要提交的文件" href="/article/detail/13648" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="Flask-SQLAlchemy、Flask-migrate、flask-script、flask-" href="/w/凡人多烦事01/article/detail/613269" target="_blank"><em>Flask</em>-<em>SQLAlchemy</em>、<em>Flask</em>-<em>migrate</em>、<em>flask</em>-script、<em>flask</em>-...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="Flask-SQLAlchemy、Flask-migrate、flask-script、flask-" href="/w/凡人多烦事01/article/detail/613269" target="_blank"><em>Flask</em>-<em>SQLAlchemy</em>、<em>Flask</em>-<em>migrate</em>、<em>flask</em>-script、<em>flask</em>-upload_sql... <!-- <a title="Flask-SQLAlchemy、Flask-migrate、flask-script、flask-" href="/article/detail/13269" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="小程序动态绑定样式,最强技术实现_微信小程序动态绑定样式" href="/w/Monodyee/article/detail/613423" target="_blank"><em>小</em><em>程序</em>动态<em>绑定</em><em>样式</em><em>,</em>最强<em>技术</em>实现_微信<em>小</em><em>程序</em>动态<em>绑定</em><em>样式</em>...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="小程序动态绑定样式,最强技术实现_微信小程序动态绑定样式" href="/w/Monodyee/article/detail/613423" target="_blank">中年危机是真实存在的<em>,</em>即便有<em>技术</em>傍身<em>,</em>还是难免对自己的生存能力产生质疑和焦虑<em>,</em>这些年职业发展<em>,</em>一直在寻求消除焦虑的依靠。... <!-- <a title="小程序动态绑定样式,最强技术实现_微信小程序动态绑定样式" href="/article/detail/13423" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="安卓APP开发简单实例 结对编程心得" href="/w/我家小花儿/article/detail/613671" target="_blank">安卓<em>APP</em><em>开发</em>简单实例 <em>结对</em><em>编程</em>心得...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="安卓APP开发简单实例 结对编程心得" href="/w/我家小花儿/article/detail/613671" target="_blank">开始说起搞<em>APP</em><em>开发</em>,自己和小伙伴的<em>编程</em>水平真的很低,无从下手,只有在网上找点案列,学习着怎样<em>开发</em>,<em>结对</em><em>编程</em>还是面临着许... <!-- <a title="安卓APP开发简单实例 结对编程心得" href="/article/detail/13671" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="AWS-IOT-SDK-embedded-C 调试_ota-for-aws-iot-embedded" href="/w/花生_TL007/article/detail/612967" target="_blank"><em>AWS</em>-<em>IOT</em>-SDK-<em>embedded</em>-C 调试_ota-for-<em>aws</em>-<em>iot</em>-<em>embedded</em>...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="AWS-IOT-SDK-embedded-C 调试_ota-for-aws-iot-embedded" href="/w/花生_TL007/article/detail/612967" target="_blank">1.接收数据量大的消息出现异常首先看下buf的长度是否设置足够,<em>AWS</em>_<em>IOT</em>_MQTT_RX_BUF_LEN然后看下接... <!-- <a title="AWS-IOT-SDK-embedded-C 调试_ota-for-aws-iot-embedded" href="/article/detail/12967" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="AWS:获取所有 IoT 事物 ->Java 获取 aws-iot 所有事物_nodejs 使用aw" href="/w/我家自动化/article/detail/612965" target="_blank"><em>AWS</em>:获取所有 IoT 事物 -><em>Java</em> 获取 <em>aws</em>-<em>iot</em> 所有事物_<em>nodejs</em> 使用aw...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="AWS:获取所有 IoT 事物 ->Java 获取 aws-iot 所有事物_nodejs 使用aw" href="/w/我家自动化/article/detail/612965" target="_blank">python 版本的可以参考:https://blog.csdn.net/qq_33811662/article/det... <!-- <a title="AWS:获取所有 IoT 事物 ->Java 获取 aws-iot 所有事物_nodejs 使用aw" href="/article/detail/12965" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="git 查看/修改提交用户名,邮箱_查看git 提交的名字" href="/w/繁依Fanyi0/article/detail/612861" target="_blank"><em>git</em> <em>查看</em>/<em>修改</em><em>提交</em><em>用户名</em>,邮箱_<em>查看</em><em>git</em> <em>提交</em>的名字...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="git 查看/修改提交用户名,邮箱_查看git 提交的名字" href="/w/繁依Fanyi0/article/detail/612861" target="_blank"><em>git</em> <em>查看</em>/<em>修改</em><em>用户名</em>,密码 使用<em>git</em> 客户端 <em>查看</em>/ <em>修改</em> <em>用户名</em>,密码 1.1<em>查看</em> <em>用户名</em>,密码$ <em>git</em> co... <!-- <a title="git 查看/修改提交用户名,邮箱_查看git 提交的名字" href="/article/detail/12861" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li><li><div class="NewTitle"><a title="article" class="cat" href="/article/list/1" target="_blank">article<i></i></a><a title="sqlalchemy的增删,插入更新_sqlalchemy更新行" href="/w/小丑西瓜9/article/detail/613240" target="_blank"><em>sqlalchemy</em>的增删,插入<em>更新</em><em>_</em><em>sqlalchemy</em><em>更新</em><em>行</em>...</a></div><div class="NewsInfo"><div class="NewsDesc" style=""><a title="sqlalchemy的增删,插入更新_sqlalchemy更新行" href="/w/小丑西瓜9/article/detail/613240" target="_blank">1.连接数据库pymysqlusernamepasswordlocalhostdbname。<em>_</em><em>sqlalchemy</em><em>更新</em><em>行</em>... <!-- <a title="sqlalchemy的增删,插入更新_sqlalchemy更新行" href="/article/detail/13240" target="_blank">[详细]</a> --></a><div class="article_click rice1" style="width: 240px;float: left;"><p class="operation-b-img operation-b-img-active"><i class="img-up txclick" attc="upclick" attn="0"></i><span class="num"> 赞</span></p><p class="operation-b-img operation-b-img-active"><i class="img-down txclick" attc="downclick" attn="0"></i><span class="num">踩</span></p></div></div><div style="clear: both;"></div></div></li></ul><div class="list_tools_top">相关标签</div><div class="list_tools_box"><ul><li><a title="windows" rel="nofollow" href="/s?w=windows" target="_self">windows</a></li><li><a title="语言模型" rel="nofollow" href="/s?w=语言模型" target="_self">语言模型</a></li><li><a title="前端" rel="nofollow" href="/s?w=前端" target="_self">前端</a></li><li><a title="自然语言处理" rel="nofollow" href="/s?w=自然语言处理" target="_self">自然语言处理</a></li><li><a title="人工智能" rel="nofollow" href="/s?w=人工智能" target="_self">人工智能</a></li><li><a title="Hibernate" rel="nofollow" href="/s?w=Hibernate" target="_self">Hibernate</a></li><li><a title="sql" rel="nofollow" href="/s?w=sql" target="_self">sql</a></li><li><a title="后端" rel="nofollow" href="/s?w=后端" target="_self">后端</a></li><li><a title="物联网" rel="nofollow" href="/s?w=物联网" target="_self">物联网</a></li><li><a title="iot" rel="nofollow" href="/s?w=iot" target="_self">iot</a></li><li><a title="分布式" rel="nofollow" href="/s?w=分布式" target="_self">分布式</a></li><li><a title="OpenHarmony" rel="nofollow" href="/s?w=OpenHarmony" target="_self">OpenHarmony</a></li><li><a title="git" rel="nofollow" href="/s?w=git" target="_self">git</a></li><li><a title="取消忽略" rel="nofollow" href="/s?w=取消忽略" target="_self">取消忽略</a></li><li><a title="leetcode" rel="nofollow" href="/s?w=leetcode" target="_self">leetcode</a></li><li><a title="算法" rel="nofollow" href="/s?w=算法" target="_self">算法</a></li><li><a title="java" rel="nofollow" href="/s?w=java" target="_self">java</a></li><li><a title="学习" rel="nofollow" href="/s?w=学习" target="_self">学习</a></li><li><a title="intellij-idea" rel="nofollow" href="/s?w=intellij-idea" target="_self">intellij-idea</a></li><li><a title="tensorflow" rel="nofollow" href="/s?w=tensorflow" target="_self">tensorflow</a></li><li><a title="CSS" rel="nofollow" href="/s?w=CSS" target="_self">CSS</a></li><li><a title="HTML" rel="nofollow" href="/s?w=HTML" target="_self">HTML</a></li><li><a title="jQuery" rel="nofollow" href="/s?w=jQuery" target="_self">jQuery</a></li><li><a title="gitlab" rel="nofollow" href="/s?w=gitlab" target="_self">gitlab</a></li><div style="clear: both;"></div></ul></div><div class="list_tools_top"></div></div></div></div><style type="text/css"></style><link rel="stylesheet" href="https://cdn.wpsshop.cn/public/blog/css/phone.css?v=17352890" type="text/css"><script type="text/javascript"></script></div></div></div></div></div><!--row_1_b100_1695--></div><style type="text/css"> /* footer css */ .index006-cover-page-foot { background-color: #F7F7F7; } </style><div class="cppui-row-1_100 cppui-row-view-1 row_1_100 ui-draggable" style="display: block;"><div class="cppui-column-1_100-0-1 column-view-com cppui-column-1_100-0-view-1 ui-sortable"><div class="drag-item-show-view-1 footermsg_view_pic ui-draggable" style="display: block;"><!--组件最外层要添加 drag-item-hide-view-1 --><div class="index006-cover-page-foot drag-item-hide-view-1"><p class="copyright">Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。 </p><div style="background-color:#F7F7F7; text-align:center; height:20px;padding-top:5px;"><a target="_blank" href="#" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><img src="https://cdnimages.wpsshop.cn/57public/skin/index/default/ui/images/beian_ghs.png" style="float:left;">  <p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">闽ICP备14008679号</p></a>  <a href="https://www.wpsshop.cn/xml/w/%E4%BB%8E%E5%89%8D%E6%85%A2%E7%8E%B0%E5%9C%A8%E4%B9%9F%E6%85%A2/article/detail/612779.xml" target="_blank" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><img src="https://cdn.wpsshop.cn/public/blog/images/site.png" style="float:left;"></a>   <a href="/xml/w/g007/article/detail/new.xml" target="_blank" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><img src="https://cdn.wpsshop.cn/public/blog/images/site.png" style="float:left;"></a>   <a href="/site.xml" target="_blank" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><img src="https://cdn.wpsshop.cn/public/blog/images/site.png" style="float:left;"></a></div></div></div></div><!--row_1_b100_hcsoft_1693--></div><!--tjcode0088--><script type="text/javascript">var domain = document.domain;var hr=encodeURIComponent(window.location.href+'=='+document.referrer); document.write('<script src="https://ad.wpsshop.cn/admin.appflux?s=ad_flu_ind&fluxuserauto=yes&hr='+hr+'&p57weburl='+domain+'&p57usercode1='+domain+'&u=Vy1RJQhqAXUEMQNnAm0HaVVu&i='+p57ref("id")+'&r='+escape(document.referrer)+'" language="JavaScript"><\/script>');function p57ref(id){var reg=new RegExp("(^|&)"+id+"=([^&]*)(&|$)");var ref=window.location.search.substr(1).match(reg);if(ref!=null)return unescape(ref[2]);return null;} </script><!--tjcode0088--></body></html>