smart-http v1.1.9 发布,一款开源 http 服务器
smart-http 是一款采用 smart-socket 研发的可编程式 http 应用微内核,用户可以在此基础上很轻松的开展 Http 或者 WebSocket 相关的服务端/客户端程序开发。
smart-http 自发布以来获得了很多用户的青睐,通过长期紧密的互动交流,促使该项目从易用性、稳定性和运行性能等方面都得到了显著的进步。
本次发布的两项新特性:Gzip压缩传输和异步响应式服务,皆来自用户的实际需求,我也在第一时间连夜爆肝予以支持。
Gzip压缩传输
通过启用压缩技术可以大大减少网络传输的数据量,提高网页的加载、渲染速度。当然,启用压缩模式会增加些许服务器的性能开销,如果是静态文件可以采用缓存技术消除该影响。
为了检验压缩传输的效果,我们针对同一份文件分别启用压缩模式和非压缩模式的执行http请求(见下图)。可以看到在没有进行的压缩的时候,传输的字节数高达 8541 个字节,而启用压缩后则骤降至 1557 字节,这样的压缩比还是非常可观的。
异步响应式
因为 smart-http 使用的是 AIO 模型,无需额外的 IO 线程组,所以一般推荐直接在 smart-http 线程组中处理你的业务逻辑,即同步响应模式。
但是,假如当前存在与 smart-http 线程组同等数量的客户端都发起大文件上传请求时,会耗尽 smart-http 线程组的全部线程资源,此时再来一个普通的 http 请求将得不到及时响应。针对该场景,可以将请求分发至另外一组线程组(专门处理长耗时任务),待其执行完毕再通过异步响应方式往客户端输出结果。
启用 smart-http 的异步响应式功能只需重写 HttpServerHandler 的 handle 方法,并于异步线程组中适当的时候调用 future.complete 方法即可(如下图示例)。
更新内容
-
smart-socket 升级至1.5.13
-
修复 Http/1.0 keep-alive 设置不生效的 bug。
-
支持 Gzip 压缩传输。
-
支持 Server Name 配置化。
-
支持异步响应式服务。
-
支持启用debug模式打印 HTTP 请求&响应码流(生产环境慎用,可能存在信息安全隐患)。
-
其他代码优化及示例的补充。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
GoEdge CDN v0.3.3 发布,支持 Arm64、Gif 转 WebP、PROXY 协议
GoEdge是一款可以帮你快速构建 CDN & WAF 平台的工具,支持HTTP、HTTPS、TCP、TLS、UDP、IPv6、WAF等特性。 v0.3.3 支持ARM64、Gif转WebP、PROXY Protocol协议、优化WAF。 EdgeAdmin 功能 WebP压缩支持.ico和.gif文件 各个网络协议支持使用PROXY Protocol访问源站,可以在”反向代理”–“更多设置”–“更多选项”–“PROXY Protocol”中启用 可以在集群中指定节点时区 选择线路的时候关键词可以搜索域名 运行日志显示未读的错误日志数量,可以查看未读的错误日志 支持任意域名通过CNAME访问服务(开启选项后),可以重新生成服务CNAME 增加使用Purge方法清除某个URL缓存的功能 默认的内容压缩算法从gzip改为brotli 内容压缩支持对已压缩内容重新压缩 WAF阻止动作增加封锁范围选项 WAF增加防盗链规则参数 WAF模板增加空Agent和随机URL规则集 健康检查支持UserAgent和是否基础请求设置 可以在IP名单中搜索IP IP名单列表可以搜索关键词 创建网站服...
- 下一篇
xmake v2.5.9 发布,改进 C++20 模块, 支持 Nim, Unity Build
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 这个版本,我们增加了大量重量级的新特性,例如:Nim 语言项目的构建支持,Keil MDK,Circle 和 Wasi 工具链支持。 另外,我们对 C++20 Modules 进行了大改进,不仅支持最新 gcc-11, clang 和 msvc 编译器,而且还得模块间依赖做了自动分析,实现最大程度的并行化编译支持。 最后,还有一个比较有用的特性就是 Unity Build 支持,通过它我们可以对 C++ 代码的编译速度做到很大程度的提升。 项目源码 官方文档 入门课程 新特性介绍 Nimlang 项目构建 最近,我们新增了对 Nimlang 项目的构建支持,相关 issues 见:#1756 创建空工程 我们可以使用 xmake create 命令创建空工程。 xmake create -l nim -t console tes...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- 2048小游戏-低调大师作品