golang的http库的坑

238 阅读1分钟

情况

golang的http库如果url中有host,则header中设置的host不生效果

为了方便抓包观察,把https换成http,基于ip发送http请求,然后设置host image.png

可以看到,抓包结果中的host是ip,也就是url中的,不是header里设置的 image.png

源码分析

标准库里直接写死的逻辑,完全不给开后门的机会 image.png

场景

httpDns场景下,需要通过ip直接发https请求,golang的标准库就无法支持,如果想支持,可以自己写一个http库或者用非官方的http库