随笔分类 -  go web

摘要:学习与交流:Go语言技术微信群 商务合作加微信:LetsFeng goland 全家桶激活码,支持所有版本,支持所有系统 链接:http://web.52shizhan.cn/activity/s2abxc 提取码:GJF9B1DK 现在就开始你的Go语言学习之旅吧!人生苦短,let’s Go. 代 阅读全文
posted @ 2022-11-04 11:05 技术颜良 阅读(785) 评论(0) 推荐(0)
摘要:今天给大家推荐的是web应用安全防护方面的一个包:csrf。该包为Go web应用中常见的跨站请求伪造(CSRF)攻击提供预防功能。 csrf小档案 「csrf小档案」 star 837 used by - contributors 25 作者 Gorilla 功能简介 为Go web应用程序和服务 阅读全文
posted @ 2022-10-28 13:10 技术颜良 阅读(254) 评论(0) 推荐(0)
摘要:Go Gin框架请求自动验证和数据绑定,看完这篇就会用了 原创 卡尔文_ 网管叨bi叨 2022-10-17 08:45 发表于北京 收录于合集#Go语言实战技巧48个 之前做项目基本上公司是用 gRPC 和 echo 这两个框架的组合,后来 Gin 框架在Go圈越来越流行,陆续我在公司接触到的项目 阅读全文
posted @ 2022-10-17 10:43 技术颜良 阅读(666) 评论(0) 推荐(0)
摘要:本文使用的go的源码1.17.3 前言 写这一篇文章的原因是最近在工作中有位小伙伴在写代码的时候直接用 Go 关键字起了一个 Goroutine,然后发生了空指针的问题,由于没有 recover 导致了整个程序宕掉的问题。代码类似这样: func main() { defer func() { if 阅读全文
posted @ 2022-10-09 13:14 技术颜良 阅读(210) 评论(0) 推荐(0)
摘要:WebSocket 是做什么的,应用上有什么坑?本文详细介绍了WebSocket技术和Go实现。 拉模式和推模式区别 拉模式(定时轮询访问接口获取数据) 数据更新频率低,则大多数的数据请求时无效的 在线用户数量多,则服务端的查询负载很高 定时轮询拉取,无法满足时效性要求 推模式(向客户端进行数据的推 阅读全文
posted @ 2022-07-12 08:38 技术颜良 阅读(132) 评论(0) 推荐(0)
摘要:日志无论对于程序还是程序员都非常重要,有多重要呢,想要长期在公司健健康康的干下去就得学会阶段性划水,阶段性划水的一大关键的就是干活快过预期但是装作。。。不对,这个开头不对劲,下面重来。日志无论对于程序还是程序员都非常重要,程序员解决问题的快慢除了经验外,就是看日志能不能有效地记录问题发生的现场以及上 阅读全文
posted @ 2022-06-06 14:08 技术颜良 阅读(299) 评论(0) 推荐(0)
摘要:https://juejin.cn/post/6879767341941882887 sessionSorage的使用 存储对象的方法有很多,sessionStorage属性算是其中一个,用的较多。sessionStorage 属性允许在浏览器中存储 key/value 对的数据。 保存数据 //1 阅读全文
posted @ 2022-05-12 09:30 技术颜良 阅读(49) 评论(0) 推荐(0)
摘要:什么是protobuf# protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。 阅读全文
posted @ 2022-04-29 10:21 技术颜良 阅读(1168) 评论(2) 推荐(0)
摘要:概要 在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP 429(Too Many Requests) 然后就会有一段时间的禁止访问. 为了应对这种限速的情况, 通过一个简单的请求队列来控制访问的速度, 之后基 阅读全文
posted @ 2022-04-29 07:33 技术颜良 阅读(661) 评论(0) 推荐(0)
摘要:最近接触到微服务框架go-zero,翻看了整个框架代码,发现结构清晰、代码简洁,所以决定阅读源码学习下,本次阅读的源码位于core/syncx/singleflight.go。 在go-zero中SingleFlight的作用是:将并发请求合并成一个请求,以减少对下层服务的压力。 应用场景 查询缓存 阅读全文
posted @ 2022-04-27 09:36 技术颜良 阅读(109) 评论(0) 推荐(0)
摘要:应用情景: multipart/form-data类型主要是上传文件时用到;application/x-www-form-urlencoded类型主要是提交k-v时用到,当然这种方法也可以将json设置在v中提交json数据;application/json类型主要是传递json数据用到,层次比较深 阅读全文
posted @ 2022-04-11 14:08 技术颜良 阅读(4156) 评论(0) 推荐(0)
摘要:1)application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 <form> 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。 <form a 阅读全文
posted @ 2022-04-10 20:48 技术颜良 阅读(1548) 评论(0) 推荐(0)
摘要:文章目录 一、数据绑定: 1. 数据绑定介绍: 2. 数据绑定--Should bind: 2.1 ShouldBind: 2.2 ShouldBindWith 2.3 ShouldBindQuery等 2.4 ShouldBindUri:绑定 Uri: 3. 数据绑定--Must bind 3.1 阅读全文
posted @ 2022-04-10 15:58 技术颜良 阅读(1667) 评论(0) 推荐(0)
摘要:(一)form-data: 对应于http请求中的multipart/form-data。 它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。 既可以上传键值对,也可以上传文件。 Content-disposition,用来说明字段的一些信息。 当上传的 key 是文件时: Content 阅读全文
posted @ 2022-04-10 14:17 技术颜良 阅读(925) 评论(0) 推荐(0)
摘要:https://github.com/cookieY/Yearning/blob/ad6c04b2904bb4cdcb64f732ce088d072751074e/src/lib/toolbox.go#L237 package soar import ( "errors" "fmt" "github 阅读全文
posted @ 2022-04-08 15:48 技术颜良 阅读(183) 评论(0) 推荐(0)
摘要:r:=gin.New() r.GET("/", func(c *gin.Context) { var cc SSHconfig if err:=c.BindJSON(&cc);err!=nil{ log.Println(err) } var ( //u model.CoreAccount p mod 阅读全文
posted @ 2022-04-07 15:51 技术颜良 阅读(795) 评论(0) 推荐(0)
摘要:要研究 Go 的定时器,那么肯定要从 time.Ticker 这个结构体入手。 先看一个官网的例子: func main() { ticker := time.NewTicker(time.Second) defer ticker.Stop() done := make(chan bool) go 阅读全文
posted @ 2022-04-04 10:31 技术颜良 阅读(45) 评论(0) 推荐(0)
摘要:掌握了Go语言的朋友们应该都知道,在Go的结构体类型声明里面,字段声明后可以跟一个可选的字符串标签。 type User struct { Name string `json:"name"`} 上面是一个标准的例子,Name字段声明中指定了标签json:"name" xml:"name" ,这个标签 阅读全文
posted @ 2022-04-02 15:46 技术颜良 阅读(128) 评论(0) 推荐(0)
摘要:https://n9e.gitee.io/api/ 这种方式,页面上JavaScript可以调用的所有接口,你都可以用程序调用,打开chrome的开发者工具,扒拉这些接口,还是非常容易的。当然,要先登录,登录调用webapi模块的/api/n9e/auth/login接口,系统使用jwt认证,如果登 阅读全文
posted @ 2022-03-30 11:15 技术颜良 阅读(120) 评论(0) 推荐(0)
摘要:func CORSMiddleware() gin.HandlerFunc { return func(c *gin.Context) { c.Writer.Header().Set("Access-Control-Allow-Origin", "*") c.Writer.Header().Set( 阅读全文
posted @ 2022-03-29 17:23 技术颜良 阅读(453) 评论(0) 推荐(0)