加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 移动 > 正文

Golang六款优秀Web框架对比

发布时间:2019-10-16 21:17:03 所属栏目:移动 来源:云时代的运维开发
导读:副标题#e# Golang是一门快速增长的语言,专为构建简单、快速且可靠的软件而设计。它提供的net/http库对于HTTP协议实现非常好,基于此再构造框架会更容易,因此生态中出现了很多框架。本文将从流行度、社区支持及内建功能等角度对六款知名Go语言Web框架做对

MVC Model-view-controller(MVC)模型是一种用于在计算机上实现用户界面的软件架构模式,它将一个应用程序分为互相关联的三部分。这样做的目的是为了:将信息的内部处理逻辑、信息呈现给用户以及从用户获取信息三者分离。MVC 设计模式将这三个组件解耦合,从而实现高效的代码复用和并行开发

  • Iris 支持完备的 MVC 功能, 可以在运行时中注入
  • Beego 仅支持方法和数据模型的匹配,可以在运行时中注入
  • Revel 支持方法,路径和数据模型的匹配,只可以通过生成器注入(生成器是另外一个不同的软件用于构建你的 Web 应用)

缓存 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支持该功能)

  1. func TestAPI(t *testing.T) { 
  2.  app := myIrisApp()  
  3.  tt := httptest.New(t, app) 
  4.  tt.GET("/admin").WithBasicAuth("name", "pass").Expect(). 
  5.  Status(httptest.StatusOK).Body().Equal("welcome") 
  6.  } 

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读