Gin 框架是怎么使用 net http 包的(gin.go)

gin,net,http,go · 浏览次数 : 0

小编点评

**Gin框架的构建基于 Go 语言的标准库 net/http** Gin 框架是一个基于 Go 语言的标准库 `net/http` 构建的 Web 应用框架。它使用 `net/http` 提供的基础功能来构建高效的 Web 应用。 **主要功能:** - **HandlerFunc:**用于定义 HTTP 处理程序的函数类型。 - **Server:**创建和使用 `net/http.Server` 对象监听 HTTP 请求。 - **Middleware:**通过包装 `net/http.Handler` 接口实现中间件机制。 - **Routing:**提供更高级路由系统,支持简洁的语法定义路由。 - **Error handling:**捕获错误并返回适当的 HTTP 状态码。 - **Request and Response:**扩展的 API,提供便捷的请求和响应操作。 - **Custom error handling:**注册自定义错误处理程序。

正文

 

Gin 框架是基于 Go 语言的标准库 net/http 构建的,它使用 net/http 提供的基础功能来构建自己的高性能 Web 应用框架。

具体来说,Gin 使用 net/http 的以下方面:

 

1,HandlerFunc: Gin 使用 net/http 的 HandlerFunc 类型,这是一个可以作为 HTTP 处理程序的函数类型。Gin 自己的路由系统允许注册这些函数,并在匹配到相应的路由时调用它们。

 

2,Server: Gin 创建并使用 net/http.Server 对象来监听和处理 HTTP 请求。http.Server 是实际负责启动 HTTP 服务并管理请求处理的结构。

  Run() 函数正是体现了它如何使用 net/http.Server 对象来监听和处理 HTTP 请求的。

  engine 是 Gin 的核心结构,(ServeHTTP方法)它实现了 http.Handler 接口,这意味着它可以作为 http.ListenAndServe 的处理器 (Handler)。

  当 Run() 中调用 ListenAndServe 方法时,服务器开始监听指定地址上的 HTTP 请求,并且每当有请求到达时,它就会通过 Gin Engine 来处理这个请求,执行与请求 URL 匹配的路由处理函数。

  因此,通过 Run 函数,Gin 实际上是创建了一个 http.Server 实例,并配置了必要的参数(如监听地址、读写超时时间、最大头部大小等),然后启动服务器来监听和处理 HTTP 请求。

 

3,Middleware: Gin 的中间件机制是通过包装 net/http.Handler 接口实现的。

中间件函数接收一个 Handler 并返回一个新的 Handler,这样就可以形成一个处理链。当请求到达时,中间件会依次调用下一个处理程序,直到链结束。

 

4,Routing: Gin 提供了一套更高级的路由系统,它允许通过简洁的语法定义路由,并支持参数和路由组。

尽管如此,底层的路由匹配和请求处理还是委托给 net/http 的 ServeMux。

 

5,Error handling: Gin 在处理请求时,可以捕获错误并通过 ResponseWriter 返回适当的 HTTP 状态码。

这通常涉及到对 net/http.ResponseWriter 的包装,以便添加额外的功能,如追踪错误或自定义响应。

 

6,Request and Response: Gin 继承了 net/http 中的 Request 和 ResponseWriter 接口,提供了扩展的 API,使操作请求和响应更加方便,例如解析请求体、获取查询参数和设置响应头等。

 

7,Custom error handling: Gin 可以注册自定义的错误处理器,这些处理器会在发生错误时被调用,这在 net/http 中不是直接支持的。

 

总之,Gin 利用了 net/http 包提供的基础架构,通过在其上添加额外的抽象和便利功能,构建了一个功能丰富的Web框架。

 

Link:https://www.cnblogs.com/farwish/p/18207001

与Gin 框架是怎么使用 net http 包的(gin.go)相似的内容:

Gin 框架是怎么使用 net http 包的(gin.go)

Gin 框架是基于 Go 语言的标准库 net/http 构建的,它使用 net/http 提供的基础功能来构建自己的高性能 Web 应用框架。 具体来说,Gin 使用 net/http 的以下方面: 1,HandlerFunc: Gin 使用 net/http 的 HandlerFunc 类型,这

Gin 框架的执行流程

Gin框架是一个用Go语言编写的高性能Web框架,它基于httprouter实现,具有快速、简洁和高效的特性。 以下是Gin框架处理HTTP请求的大致执行流程: 1 初始化Gin引擎: 用户创建一个新的gin.Engine实例,这通常是应用程序的主路由器。 用户定义路由,这些路由是通过engine.

Gin中间件开发

Gin是一个用Go语言编写的Web框架,它提供了一种简单的方式来创建HTTP路由和处理HTTP请求。中间件是Gin框架中的一个重要概念,它可以用来处理HTTP请求和响应,或者在处理请求之前和之后执行一些操作。 以下是关于Gin中间件开发的一些基本信息: - **中间件的定义**:在Gin中,中间件是

[golang]在Gin框架中使用JWT鉴权

什么是JWT JWT,全称 JSON Web Token,是一种开放标准(RFC 7519),用于安全地在双方之间传递信息。尤其适用于身份验证和授权场景。JWT 的设计允许信息在各方之间安全地、 compactly(紧凑地)传输,因为其自身包含了所有需要的认证信息,从而减少了需要查询数据库或会话存储

Gin 中间件

中间件 在Gin框架中,中间件(Middleware)指的是可以拦截http请求-响应生命周期的特殊函数,在请求-响应生命周期中可以注册多个中间件,每个中间件执行不同的功能,一个中间执行完再轮到下一个中间件执行。 中间件的常见应用场景如下: 请求限速 api接口签名处理 权限校验 统一错误处理 Gi

摸鱼快报:golang net/http中的雕虫小技

以后会开一个板块,摸鱼快报,快速记录这几周开发中雕虫小技。 1. 向开发环境localhost:3000种植cookie 前端使用Create React App脚手架,默认以localhost:3000端口启动; 后端使用golang-gin框架,使用8034端口启动。 登录模块走的是sso,前后

验证来自微信服务器的消息

内容来自微信官方文档。 接入微信公众平台开发,开发者需要按照如下步骤完成: 填写服务器配置 验证服务器地址的有效性 依据接口文档实现业务逻辑 微信官方的文档已经写得很详细,官方给出的例子是基于php的,这里给出go实现的消息验证,http框架使用的是gin。 type WeChatVerify st

gin启动https支持

gin是一个使用Go语言开发的Web框架,具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,支持中间件等。 在工作中有时候需要支持https服务,gin可以通过中间件的方式来提供对https的支持,这里使用的是secure来提供https服务支持。这里给出一个简单的使用示例: 示例代码 pac

Gin 获取请求参数

1、获取URL?后的参数(不区分请求方式) // 获取请求url ? 后的参数(url:8080/add?name=kelvin) func GetUrlParam(ctx *gin.Context) { name := ctx.Query("name") defaultName := ctx.De

Gin 响应方式

响应 1. 字符串方式 r.GET("/user/save", func(ctx *gin.Context) { ctx.String(http.StatusOK, "this is a %s", "ms string response") }) 2. JSON方式 r.GET("/user/sav