有代理时HTTP直连IP可能走不通

本文涉及的产品
.cn 域名,1个 12个月
简介: 考虑到域名劫持或DNS解析延迟,有时会直接指定IP地址来请求一个HTTP页面,但这种访问方式,在某些代理网络的环境中能走不通。

考虑到域名劫持或DNS解析延迟,有时会直接指定IP地址来请求一个HTTP页面。

比如要访问http://g.tbcdn.cn/s.gif,假设服务端IP为115.238.23.250,指定IP请求该页面时,通常需要做下面的操作:

  1. URL改为:http://115.238.23.250/s.gif
  2. 设置HTTP请求头部的Host字段为:g.tbcdn.cn

用curl命令来表示,上面的两步操作就是:

curl -H "Host: g.tbcdn.cn" http://115.238.23.250/s.gif

下面我们来看看,当采用直连IP访问时,在正常情况和有代理情况下,HTTP报文的具体内容。

正常情况

没有代理时,数据流是“client --> server”,采用直连IP访问,客户端发往服务端的HTTP报文内容为:

GET /s.gif HTTP/1.1
Host: g.tbcdn.cn

服务端收到的报文内容,和通过域名访问的请求没有区别,所以一切正常处理。

有代理情况

有代理时,数据流是“client --> proxy --> server”,采用直连IP访问,客户端发往proxy的HTTP报文内容为:

GET http://115.238.23.250/s.gif HTTP/1.1
Host: g.tbcdn.cn

proxy收到请求后,认为客户端想访问http://115.238.23.250/s.gif这个页面,按照HTTP代理的功能,重新构造一个HTTP请求发往服务端,报文内容为:

GET /s.gif HTTP/1.1
Host: 115.238.23.250

服务端收到的报文内容,Host已经变为IP,对于这种请求,响应什么内容就要看服务端的具体配置,通常会返回404或403,如果该服务端只服务单个域名,也可能不管Host的值,返回正确的页面。

总之,这时已经出现问题了,客户端本来是想访问http://g.tbcdn.cn/s.gif>,而服务端认为它想访问。

HTTP代理是否一定会修改请求原来的Host内容?这和具体代理软件的实现策略有关,有些做了修改,有些没有,在这种情况下,如果直连IP访问,就可能在某些有代理的网络环境中走不通。

解决办法

既然中间代理是这种行为,直连IP访问时,服务端可能会丢失Host信息,我们该如何规避由此产生的问题?

没有特别好的办法,一些想法如下:

  • 客户端需要做代理检测,有代理时,就不要使用直连IP,直接用原来的域名发标准的HTTP请求。
  • 客户端和服务端协商好,在HTTP请求头中增加一个特殊字段存放Host信息,服务端做必要的配置,当发现Host是IP时,查看是否有这个特殊字段。
  • 运营商的WAP代理支持用X-Online-Host请求头来保存域名信息,客户端发HTTP请求时,可以添加这个头部,在WAP网络下能避免丢Host的问题。
相关文章
|
6月前
|
安全 网络协议 网络安全
IP代理的三大协议:HTTP、HTTPS与SOCKS5的区别
**HTTP代理**适用于基本网页浏览,简单但不安全;**HTTPS代理**提供加密,适合保护隐私;**SOCKS5代理**灵活强大,支持TCP/UDP及认证,适用于绕过限制。选择代理协议应考虑安全、效率及匿名需求。
|
4月前
|
缓存 负载均衡 安全
|
4月前
|
安全 Java Shell
【内网—内网转发】——http协议代理转发_reGeorg代理转发
【内网—内网转发】——http协议代理转发_reGeorg代理转发
109 3
|
5月前
|
数据采集 缓存 安全
2024年最佳http 代理 IP选择及其价格分析
2024年,多家服务商如快代理、123Proxy、巨量代理、IPIDEA等提供不同类型的代理IP,以满足数据采集、跨境电商等多种需求。
2024年最佳http 代理 IP选择及其价格分析
|
4月前
|
机器学习/深度学习 Ubuntu Linux
在Linux中,如何按照该要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
在Linux中,如何按照该要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
|
3月前
|
网络协议
网络协议概览:HTTP、UDP、TCP与IP
理解这些基本的网络协议对于任何网络专业人员都是至关重要的,它们不仅是网络通信的基础,也是构建更复杂网络服务和应用的基石。网络技术的不断发展可能会带来新的协议和标准,但这些基本协议的核心概念和原理将继续是理解和创新网络技术的关键。
178 0
|
5月前
|
数据采集 缓存 负载均衡
实测 | 芝麻代理,快代理、熊猫代理、豌豆代理HTTP代理质量测试
哈喽大家,欢迎来到本期知识分享!我们将探讨HTTP代理的质量分析方法,无论新手还是资深用户都能从中受益。首先介绍了HTTP代理的基本概念及其重要性。接着,我们通过两个关键指标——响应时间和可用性来评估代理质量。响应时间可通过`curl`命令测试并计算平均值;可用性则需设置定时任务持续检测,比如使用Python脚本。最后,通过具体案例分析了几家知名代理供应商的表现,其中青果网络在各项指标上表现突出,是进行数据采集等活动的优质选择。记得选择最适合自己的代理服务哦!
实测 | 芝麻代理,快代理、熊猫代理、豌豆代理HTTP代理质量测试
|
5月前
|
缓存 网络协议 网络性能优化
网络协议详解:TCP/IP与HTTP
【7月更文挑战第24天】TCP/IP协议和HTTP协议是现代互联网通信的重要基石。TCP/IP协议提供了计算机之间数据传输和通信的底层支持,而HTTP协议则在此基础上实现了超文本数据的传输。随着互联网的不断发展,TCP/IP协议和HTTP协议将继续发挥重要作用,为各种网络应用提供稳定、高效的通信服务。
|
移动开发 JavaScript 数据安全/隐私保护
|
3月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性

热门文章

最新文章