Http踩坑
关键字
Web服务器、Https、宝塔、Host、Header
起因
构建两个站点,分别映射至两个节点,两个节点又分别映射至同一源站。以达到访问两个站点实则是通过两个节点代理进行访问,隐藏真实IP。
起先搭建完一号站点后,通过修改访问程序,伪造节点请求的数据进行发送。
无异常。
然而搭建二号站点后,通过修改后的访问程序进行访问,无论如何都会造成向一号站点请求的异常情况。可两者的域名并不相同,这令我认为是请求程序除了错误。因为通过浏览器直接访问二号网站,是没有异常的。但排查许久没有找出异常点。
处理
通过抓取浏览器的请求数据,找出Header中的Host请求不相同。
访问程序请求的数据中包含修改的Header,是由节点抓包得到,此Host为源站Host。因此,访问程序将此Host发送至服务器后,Web服务器无法识别程序欲访问哪一站点,故将此请求提交至默认站点(已配置Https/第一个搭建的站点),从而造成了此次异常。
坑点
实际也不是坑,究其原因是学艺不精。误以为Web服务由域名而非Host识别欲访问的站点名。唯一的坑点可能是浏览器自动匹配的Host,干扰了Debug方向。