用Go构建你专属的JA3指纹

2022-04-13
阅读 8 分钟
5k
来自公众号:Gopher指北在这篇文章中将会简单回顾https的握手流程,并基于读者的提问题解释什么是JA3指纹以及如何用Go定制专属的JA3指纹。本文大纲如下,请各位读者跟着老许的思路逐步构建自己专属的JA3指纹。回顾HTTPS握手流程在正式开始了解什么是JA3指纹之前,我们先回顾一下HTTPS的握手流程,这将有助于对后文的理解...

URL中的空格、加号究竟应该使用何种方式编码

2021-11-06
阅读 2 分钟
9.3k
来自公众号:Gopher指北URL中不能显示地包含空格这已经是一个共识,而空格以何种形式存在,在不同的标准中又不完全一致,以致于不同的语言也有了不同的实现。rfc2396中明确表示空格应该被编码为%20。而W3C的标准中却又说空格可以被替换为+或者%20。老许当场懵逼,空格被替换为+,那+本身只能被编码。既然如此,为什么不...

有趣!一行代码居然无法获取请求的完整URL

2021-03-31
阅读 4 分钟
2.2k
做Web服务的时候,可能会有这样一个业务场景,获取一个HTTP请求的完整URL。很巧,老许就碰到了这样的业务场景。面对如此简单的需求,CV大法根本没有展示才能的机会。啪啪啪,获取请求的完整URL代码就出来了。

码了2000多行代码就是为了讲清楚TLS握手流程

2020-11-28
阅读 18 分钟
3.9k
呼,这篇文章的准备周期可谓是相当的长了!原本是想直接通过源码进行分析的,但是发现TLS握手流程调试起来非常不方便,笔者怒了,于是实现了一个极简的net.Conn接口以方便调试。码着码着,笔者哭了,因为现在这个调试Demo已经达到2000多行代码了!

Go发起HTTP2.0请求流程分析(前篇)

2020-10-12
阅读 15 分钟
7k
HTTP2.0在建立TCP连接和安全的TLS传输通道与HTTP1.1的流程基本一致。所以笔者建议没有看过Go中的HTTP请求之——HTTP1.1请求流程分析这篇文章的先去补一下课,本文会基于前一篇文章仅介绍和HTTP2.0相关的逻辑。

Go中的HTTP请求之——HTTP1.1请求流程分析

2020-09-25
阅读 23 分钟
5.5k
http是目前应用最为广泛, 也是程序员接触最多的协议之一。今天笔者站在GoPher的角度对http1.1的请求流程进行全面的分析。希望读者读完此文后, 能够有以下几个收获: