Golang六款优秀Web框架对比
类Sinatra气魄威风凛凛API 可以在运行时中注入代码来处理赏罚特定的 HTTP 要领(以及路径参数)
处事器措施: 自动启用HTTPS 框架的处事器支持注册及自动更新SSL证书来打点新传入的SSL/TLS毗连(https) 处事器措施: 优雅封锁 当按下CTRL+C封锁终端应用措施时,处事器将守候(特定的超时时刻)其他的毗连完成相干使命或触发一个自界说变乱来做整理事变(好比: 封锁数据库),最后优雅的终止处事 处事器措施: 多重监听 框架的处事器支持自界说的net.Listener或行使多个http处事器和地点为web应用措施提供处事 完全支持HTTP/2 框架可以很好的处理赏罚https哀求的http/2协议,并支持处事器push成果子域名 可以直接在Web应用中注入子域名的路径
会话(Sessions) 支持HTTP Sessions,且可以在自界说的handlers中行使sessions
Websockets 支持websocket通讯协议,差异框架有差异的实现方法,个中Iris实现了websocket最多成果并提供了相对更轻易行使的API 措施内嵌对视图(模版)的支持 凡是环境下,你必需按照 Web 应用的可执行文件逐一对应地转换模版文件。内嵌到应用中意味着这个框架集成了 go-bindata ,因此在最终的可执行文件中可以以 []byte 的情势将模版包括进来 视图引擎 框架支持模版加载、自界说及内建模版成果,节减开拓时刻 视图引擎: STD 框架支持通过尺度的 html/template 理会器加载模版 视图引擎: Pug 框架支持通过 Pug 理会器加载模版 视图引擎: Django 框架支持通过 Django 理会器加载模版 视图引擎: Handlebars 框架支持通过 Handlebars 理会器加载模版 视图引擎: Amber 框架支持通过 Amber 理会器加载模版 渲染: Markdown, JSON, JSONP, XML... 框架提供一个简朴的要领来发送和自界说各类内容范例的相应 MVC Model-view-controller(MVC)模子是一种用于在计较机上实现用户界面的软件架构模式,它将一个应用措施分为相互关联的三部门。这样做的目标是为了:将信息的内部处理赏罚逻辑、信息泛起给用户以及从用户获守信息三者疏散。MVC 计划模式将这三个组件解耦合,从而实现高效的代码复用和并行开拓
缓存 Web 缓存是一种用于姑且存储(缓存)网页文档,如 HTML 页面和图像,来减缓处事器延时。一个 Web 缓存体系缓存网页文档,使得后续的哀求假如满意特定前提就可以直接获得缓存的文档。Web 缓存体系既可以指装备,也可以指软件措施 文件处事器 可以注册一个(物理的)目次到一个路径,使得这个路径下的文件可以自动地提供应客户端 文件处事器: 内嵌入应用 凡是环境下,必需将全部的静态文件(好比assets: CSS, JavaScript 文件等)与应用措施的可执行文件一路传输。支持此项成果的框架为你提供了在应用中,以 []byte 的情势,内嵌全部这些数据的机遇。因为处事器可以直接行使这些数据而无需在物理位置查找文件,它们的相应速率也将更快 相应在发送前可以在整个生命周期中修改多次 当框架支持此成果时,可以在返回给客户端之前检索、重置或修改状态码、body及headers。默认环境下,在基于 net/http 的 Web 框架中这是不行能的,由于正文和状态码一经写定就不能被检索或修改。今朝只有 Iris 通过 http_context 中内建的的相应写入器(response writer)支持这个成果 Gzip 在一个路由的handler中,而且可以改变相应写入器(response writer)来发送一个用 gzip 压缩的相应时,框架会认真相应的头部。假如产生任何错误,框架应该把相应重置为正常,框架也应该可以或许搜查客户端是否支持 gzip 压缩gzip 是用于压缩息争压缩的文件名目和软件措施 测试框架 可以行使框架特定的库,来辅佐你轻松地编写更好的测试代码来测试你的 HTTP,如下示例(今朝只有Iris支持该成果)
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |