Go 关键字 defer 的一些坑

什么是defer?如何理解defer关键字?Go中使用defer的一些坑。defer意为延迟,在golang中用于延迟执行一个函数。它可以帮助我们处理容易忽略的问题,如资源释放、连接关闭等。但在实际使用过程中,有一些需要注意的地方(坑),下面我们一一道来。[...]

继续阅读 »

浅谈 Golang sync 包的相关使用方法

尽管Golang推荐通过channel进行通信和同步,但在实际开发中sync包用得也非常的多。另外sync下还有一个atomic包,提供了一些底层的原子操作(这里不做介绍)。本篇文章主要介绍该包下的锁的一些概念及使用方法。[...]

继续阅读 »

什么是 cron?利用 cron 定时执行任务

cron是什么?这是一个unix系统内置的定时执行任务的工具,最小精确到一分钟。它的实现有很多版本,不同版本间有些许的功能差异。与它相关的有两个工具:crond和crontab。crond就是cron在系统内的宿主程序,crontab是管理cron任务的管理工具。下面介绍cron相关的使用。[...]

继续阅读 »

SSH 那些你所知道和不知道的事

SSH(SecureShell)是什么?是一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。也是专为远程登录会话和其他网络服务提供安全性的协议。它能够有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。[...]

继续阅读 »

基于 OpenSSL 自建 CA 和颁发 SSL 证书

自建CA颁发证书不仅可以用来鉴权,而且使你的通信更加的安全(请保护好你的证书)。在实际的软件开发中,越来越多的服务用到HTTPS,证书的需求随之增加。那么对于我们开发者,通过自签名证书来进行测试必将非常的方便。so,有一个自己的CA是不是非常的库呢!下面我们一步步操作,创建我们自己的CA。[...]

继续阅读 »

Golang 博主走过的有关 error 的一些坑

本片文章用来记录我在Golang开发学习过程中遇到的有关error的一些坑。或许你也遇到,或许你能在这里找到答案。当然通过error的例子,你也应该联想到其它场景。err!=nil第一个问题是:为什么值为nil的error却不等于nil?[...]

继续阅读 »

DNS 一站到家之 DNS 消息协议

本篇文章让我们来分析下DNS消息协议的组成,当然我们也可以查看RFC1035。文章中所用的byte而不是octetsequence,我认为更助于理解。好,首先我需要了解一些有关DNS相关的知识。相关术语相关的记录类型都已经收录在DNS一站到家之记录类型。[...]

继续阅读 »