![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
七. Go http标准库原理相关
文章平均质量分 96
http标准库相关
苹果香蕉西红柿
这个作者很懒,什么都没留下…
展开
-
go 进阶 http标准库相关: 七. 高性能可扩展 HTTP 路由 httprouter
在ServeHTTP(),中会调用一个getValue()方法。原创 2023-05-06 09:28:57 · 129 阅读 · 0 评论 -
go 进阶 https与http2
优点: 算法公开,加密和解密使用不同的钥匙,私钥不需要通过网络进行传输,安全性很高。缺点: 计算量比较大,加密和解密速度相比对称加密慢很多。原创 2023-05-12 09:10:23 · 239 阅读 · 0 评论 -
go 进阶 多路复用支持: 二. Accept/Read/Write
【代码】go 进阶 多路复用支持: 二. Accept/Read/Write。原创 2023-05-06 09:18:36 · 404 阅读 · 0 评论 -
go 进阶 多路复用支持: 一. netpoller 初始化
首先golang在net/http下对多路复用进行了支持,提供了五个函数,针对不同平台进行了指定实现,例如linux环境下epoll封装的文件在src/runtime/netpoll_epoll.go中,windows环境下多路复用模型实现在src/runtime/netpoll_windows.go。原创 2023-05-06 09:18:04 · 713 阅读 · 0 评论 -
go 进阶 webSocket
WebSocket是HTML5下基于tcp实现的一种全双工通信持久化协议,并不代表一定要用在 HTML 中才能使用,不同语言针对webSocket都提供了支持(此处说的持久化是相对于HTTP这种非持久的协议来说)HTTP的生命周期通过Request来界定,一个请求中存在一个Request,一个Response在HTTP1.1中进行了改进,加入了keep-alive,在一个HTTP连接中,可以发送多个Request,接收多个Response。原创 2023-05-05 09:27:13 · 150 阅读 · 0 评论 -
go 进阶 http标准库相关: 六. HttpClient 发送请求底层执行流程
我们写了一个封装httpClient,发送get或post请求的示例,大概流程为创建http.Transport连接池,设置连接数,请求时间限制等等创建http.Client客户端通过httpClient客户端调用Get()或Post()方法发送请求源码的具体逻辑就在Get()或Post()方法内httpClient发送请求底层大概分为以下步骤:通过httpClient调用Get或Post方法后,原创 2023-05-05 09:23:23 · 667 阅读 · 0 评论 -
go 进阶 http标准库相关: 五. HttpServer 接收请求路由发现原理
如果在浏览器上访问 http://localhost:8080/tree 浏览器会自动给你加上"/" 向后台真正请求的路径为http://localhost:8080/tree/所以无法debug该逻辑处理。原创 2023-05-05 09:23:07 · 279 阅读 · 0 评论 -
go 进阶 http标准库相关: 四. HttpServer 服务启动接到连接后的处理逻辑
1.函数处理完成之后通过finishRequest()进行最后处理工作,异常处理,资源回收,状态更新等// 自己写的handler结束了 设置为true w . handlerDone . setTrue() // wroteHeader表示是否已经将响应头写入,没有则写入 if!原创 2023-05-05 09:22:50 · 595 阅读 · 0 评论 -
go 进阶 http标准库相关: 三. HttpServer 服务启动到Accept等待接收连接
在上面我们了解到了一个基础http服务的搭建,多路复用器内部结构以及路由注册原理通过"http.ListenAndServe(“:8080”, nil)"启动服务并监听指定端口,查看源码://1.创建Server server := & Server {Addr : addr , Handler : handler } //2.调用server下的ListenAndServe() return server . ListenAndServe() }原创 2023-05-05 09:21:47 · 578 阅读 · 0 评论 -
go 进阶 http标准库相关: 二. HttpServer 多路复用器及路由注册原理
在我们编写原生http服务端时,首先要编写处理器也就是对外的业务接口,然后通过http内置的HandleFunc(“/test”,处理器函数)进行路由注册,查看用来注册陆游的HandleFunc()函数源码,该函数内默认会调用DefaultServeMux的HandleFunc()方法,将请求的接口路径与处理器函数进行绑定, 此处的DefaultServeMux就是http默认使用的多路复用器。原创 2023-05-05 09:21:02 · 224 阅读 · 0 评论 -
go 进阶 http标准库相关: 一. HttpServer HttpClient 基础相关
1.Method : 表示客户端想要调⽤服务器的 HTTP 协议⽅法,例如GET/POST/PUT/DELETE 等。2. URL : 被称为统⼀资源标识符, 由两部分组成统⼀资源名称与统⼀资源定位符,在go中也是一个结构体。2. 请求接口,获取请求头中的数据。原创 2023-05-05 09:20:43 · 785 阅读 · 0 评论