通过实例理解Go Web身份认证的几种方式
本文永久链接 – https://tonybai.com/2023/10/23/understand-go-web-authn-by-example 在2023年Q1 Go官方用户调查报告中,API/RPC services、Websites/web services都位于使用Go开发的应用类别的头部(如下图): ...
本文永久链接 – https://tonybai.com/2023/10/23/understand-go-web-authn-by-example 在2023年Q1 Go官方用户调查报告中,API/RPC services、Websites/web services都位于使用Go开发的应用类别的头部(如下图): ...
本文永久链接 – https://tonybai.com/2023/10/13/multiple-ways-to-bind-certificates-on-go-tls-server-side 随着互联网的发展,网站提供的服务类型和规模不断扩大,同时也对Web服务的安全性提出了更高的要求。TLS(Transport Layer Security)已然成为Web服务最重要的安全基础设施之一。默认情况下,一个TLS服务器通常只绑定一个证书,但当服务复杂度增加时,单一证书已然难以满足需求。这时,服务端绑定多个TLS证书就成为一个非常实用的功能。 ...
本文永久链接 – https://tonybai.com/2021/07/28/classic-blocking-network-tcp-stream-protocol-parsing-practice-in-go 1. Go经典阻塞I/O的TCP网络编程模型 Go语言诞生十多年来取得了飞速发展,并得到了全世界开发者的广泛接纳和应用,其应用领域广泛,包括:Web服务、数据库、网络编程、系统编程、DevOps、安全检测与管控、数据科学以及人工智能等。下面是2020年Go官方开发者调查的部分结果: 图:2020年Go官方开发者调查之Go语言的应用领域(对比2019) 我们看到**“Web编程”和“网络编程”**分别位列第一名和第四名,这个应用领域数据分布与Go语言最初的面向大规模分布式网络服务的设计目标十分契合。网络通信这块是服务端程序必不可少也是至关重要的一部分。Go标准库的net包是在Go中进行网络编程的基础。即便您没有直接使用到net包中有关TCP Socket方面的函数/方法或接口,但net/http包想必大家总是用过的,http包实现的是HTTP这个应用层协议,其在传输层使用的依旧是TCP Socket。 ...
在屡次的Go用户调查中,使用Go语言进行Web服务/API开发都占据了Go语言用途调查结果的头部位置。下面是知名Go IDE goland的母公司JetBrains最新发布的Go当前状态报告(2021.2.3)中的截图: 开发Web或API服务,难免会与数据库打交道。如今创建数据库实例并访库的技术已经是很成熟了,于是就有了下面这样的程序结构: ...
Go语言自开源至今已经11个年头了!截至本文发稿时,目前最新的Go版本为1.15,Go核心开发团队正紧锣密鼓的进行着Go 1.16版本的开发(现阶段主要是修复bug),该版本将在2021年2月份正式发布。 Go以“自带电池(battery included)”而为人所知,除了Go标准库的全面和强大之外,Go工具链的丰富和易用在主流编程语言中也是位列“执牛耳者”之列的,而Go文档查看工具就在Go工具链之列中。 ...
本文翻译自Go官方博客上Russ Cox代表Go核心团队发表的“Go Turns 10″一文。 生日快乐,Go! 这个周末,我们庆祝Go正式对外发布10周年,即Go作为开源编程语言和构建现代网络软件生态系统的10周年诞辰。 为了纪念这一时刻,Go gopher的创建者Renee French(用下面的新作)描绘了这个令人愉快的场景: ...
在REST和RPC大行其道的今天,支持SOAP(简答对象访问协议)作为Web服务消息交换协议的情况是越来越少了。但在一些遗留系统中,尤其是采用微软技术栈的服务系统中,SOAP依然占有一席之地,比如在一些医院院内的IT系统中。 Go语言诞生后,主流的Web Service设计已经开始过渡到REST和RPC,Go相关开源项目也以对REST和RPC的支持为主。而对SOAP的支持则少而零散,社区里也没有对SOAP支持的重量级开源项目,在awesome go的各种list中也难觅有关SOAP的推荐项目的身影。 但Gopher世界还是有以client身份与SOAP service交互或是实现SOAP server的需求的。在这篇文章中,我就和大家一起来探索一下如何基于一些开源项目,使用Go实现SOAP client和SOAP Server的。 ...
近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对HTTPS做一些深度挖掘。主要途 径:翻阅网上资料、书籍,并利用golang编写一些实验examples。 ...
这两周来业余时间都在用Golang写代码,现在处于这样一个状态:除了脚本,就是Golang了。反正能用golang实现的,都用golang写。 Golang语言相对成熟了,但真正写起来,还是要注意一些“坑”的,下面是这周遇到的三个问题,这里分享出来,希望能对遇到同样问题的童鞋有所帮助。 一、误用定时器,狂占CPU golang中有一个通过channel实现timeout或tick timer的非常idiomatic的方法,代码如下: ...
刚刚过去的这一周搞得我十分疲惫,起因是岳母生病了。 果果自出生以来一直是岳母照顾,这个五一岳母将果果带回老家待了一周,也许是太过操劳导致旧病复发(腰椎肩盘轻微突出),无法坚持照顾果果了。可这段时间 又恰逢我和我LP都很忙碌,但无奈身边没有亲戚,只能我请假待果果(LP那里集团领导检查,实在无法脱身),还要照顾生病的岳母。本以为病两三天就能好 转,但观察两天后仍不见好转,于是我只能将母亲大人请来照顾果果,好抽身上班。万没想到,我母亲刚来一天多,居然也生病了,估计是上火所致(母亲大人十分 易上火,尤其是出远门)。于是乎又将母亲送回家里,这一顿折腾啊,转眼间5天过去了,终于盼到了周末,老婆也休息了,疲惫的我也可以缓缓了。 ...