smart-http 1.0.18 发布,轻量级的国产 HTTP 服务器

吃苹果的上帝 2020-11-18 09:51:52 ⋅ 1155 阅读

smart-http 是一款采用 Java 语言编写的 Http 服务器,有别于业界知名的 Web容器:Tomcat、Undertow,smart-http 并不支持 Servlet 规范,但对于 Http 服务器所需的各项能力,它都具备。

smart-http 天生就是异步非阻塞的 I/O 模型,因为其通信内核采用了 smart-socket。所以无论是性能还是稳定性,都是非常出色的。

更新内容

  1. Http 解码算法可读性优化,性能小幅优化。
  2. 开放抽象类 Handle,兼容Kotlin。
  3. Response 支持移除 header 值。
  4. 添加 smart-http 启动 banner,支持开关控制。
  5. 修复 websocket 粘包场景下的掩码解析 bug,感谢网友:岁月最磨人 反馈。
  6. WebSocketRequest 新增接口获取本地/远程地址:getRemoteAddress、getLocalAddress

快速体验

  1. 在您的Maven工程中引入smart-http依赖。
    <dependency>
        <groupId>org.smartboot.http</groupId>
        <artifactId>smart-http-server</artifactId>
        <version>1.0.18</version>
    </dependency>

     

  2. 拷贝以下代码并启动。
    public class SimpleSmartHttp {
        public static void main(String[] args) {
            HttpBootstrap bootstrap = new HttpBootstrap();
            //http消息
            bootstrap.pipeline().next(new HttpHandle() {
                public void doHandle(HttpRequest request, HttpResponse response) throws IOException {
                    response.write("hello world".getBytes());
                }
            });
            //websocket消息
            bootstrap.wsPipeline().next(new WebSocketHandle() {
                public void doHandle(WebSocketRequest request, WebSocketResponse response) throws IOException {
                    response.sendTextMessage("hello world");
                }
            });
            bootstrap.setPort(8080).start();
        }
    }

     

  3. 浏览器访问:http://localhost:8080/ 或采用ws客户端请求ws://127.0.0.1:8080

更多文档请访问:https://smartboot.gitee.io/book/smart-http/

福利时刻:基于 smart-http 实现的 Servlet 容器,也可能是国内首款自研的 Servlet 容器:smart-servlet  现已开源。该项目我们将尝试邀请社区中的开发者来参与共建,感兴趣的朋友欢迎加入我们,一起做一件牛逼的事。


全部评论: 0

    我有话说:

    开源 Servlet 服务器 smart-servlet v0.1.1 发布

    smart-servlet 是一款实现了 Servlet 3.1 规范,支持多应用隔离部署 Web 服务器smart-servlet 在 smart-http 基础之上,通过继承

    Puma 5.2.1 发布,关注高并发 Ruby HTTP 服务器

    Puma 5.2.1 发布了。Puma 是一个简单、快速、线程化并且关注高并发 HTTP 1.1 服务器,适用于开发和生产中 Ruby/Rack 应用。 本次更新内容包括: 修复 TCP

    通信框架 smart-socket,web 服务器 smart-http 日常更新

    更新内容 【smart-socket】VirtualBuffer 新增 wrap 接口,用于将 ByteBuffer 对象包装成 VirtualBuffer 。 【smart-socket

    HTTP/2.0 服务器推送实现

    HTTP/2允许服务器在请求之前先推送响应信息到客户端(之前客户端有过请求),如果实现了HTTP缓存,推送响应信息可以在客户端被缓存(可通过no-cache进行配置)。

    Nodejs 搭建https服务器

    第一部分 搭建https服务器 前奏首先需要理解几个概念 HTTPS HTTP是一个网络协议,是专门用来传输 Web 内容; SSL(Secure Sockets Layer)缩写

    国产自研 servlet 容器,smart-servlet 体验版发布

    smart-servlet 是一款实现了Servlet 3.1规范,支持多应用隔离部署 Web 容器。除此之外,smart-servlet 还是一款插件化容器,用户可以通过开发自定义插件扩展容器

    Apache Shiro 1.7.0 发布,支持 HTTP 严格传输安全 HSTS

    Shiro 1.7.0 发布,此版本包括自 1.6.0 版本以来解决 7 个问题,现在可以从 maven 中央仓库下载使用。 <dependency>   <

    2018 国产开源软件新秀Kooteam 0.1.2 发布,解决低配服务器性能问题

    KooTeam是一款轻量级在线团队协作工具,提供各类文档工具、在线思维导图、在线流程图、项目管理、任务分发,知识库管理等工具。

    Eclipse Jetty 9.4.38、10.0.111.0.1 发布

    Eclipse Jetty 9.4.38、10.0.111.0.1 已经发布。这三个版本都包含了大量 bug 修复和改进,建议所有用户尽快升级。重要是,这些版本涉及 CVE-2020

    浅谈httpCache-Control

    前言   我们用http访问时,会先发送一个请求,之后服务器返回一个应答,在Chrome开发者工具(按F12或右击选择检查)中展现了整个过程:     第一部分

    Nodejs 搭建https服务器

    HTTP是一个网络协议,是专门用来传输 Web 内容

    Gitea 1.13.0 发布,流行自托管 Git 服务

    Gitea 1.13.0发布,其团队表示在此版本开发周期里合并了 649 个 PR。 部分更新亮点: 从 1.13.0 开始,Gitea 最低要求 TLS 1.2 支持 (#12689

    LXQt 0.17 发布轻量级 Qt 桌面环境

    LXQt 0.17发布,LXQt 是资源开支相对较低开源桌面环境,由 LXDE 和 Razor-qt 项目合并而成。 ▲使用 LXQt 作为桌面环境 LUbuntu

    Spring Boot 2.4.0-RC1, 2.1.18, 2.2.11 和 2.3.5 发布

    Spring Boot 多个分支发布了新版本,分别是 2.4.0-RC1, 2.1.18, 2.2.11 和 2.3.5。 Spring Boot 2.4.0-RC1 此版本是 

    nginx 1.19.7 主线版发布

    nginx 1.19.7 主线版已发布,此版本带来了部分变更和新特性,以及 bugfix,具体如下: 变更:HTTP/2 中对连接处理经过修改可更好地匹配 HTTP/1.x;"http2

    【开源资讯】JWCloud 专业版 v1.0.0 发布,基于 SpringCloud 研发服务框架

    简介 JavaWeb_Cloud 微服务平台是一款基于 SpringCloud 框架研发分布式微服务框架,主要使用技术栈包括: SpringCloud、Vue、ElementUI

    Alpine Linux 3.13.2 发布,面向安全轻量级 Linux 发行

    Alpine Linux 是一个面向安全轻量级 Linux 发行版,该发行版以安全为理念,面向 x86 路由器、防火墙、虚拟专用网、IP 电话盒及服务器而设计。另外,不同于常见

    httpclient v1.2.11 已经发布

    httpclient v1.2.11 已经发布。本项目针对http协议定义了所有http实现之上接口来描述一个http请求,使用者只需要面对同一套语义化接口, 如果需要切换http