为什么加了http代理后,HEAD请求都返回403,直接连接发送HEAD请求就会返回200呢?
期待高手出现。 问题点数:50、回复次数:7Top
1 楼jcmyname()回复于 2005-05-30 15:50:10 得分 10
那说明代理服务器没有访问远程服务器的权限呀Top
2 楼zxfvc(七品VC)回复于 2005-05-30 16:07:13 得分 0
我试了一下:
HEAD http://okbz.163888.net/1.mp3 http/1.1
Host:okbz.163888.net
我发送这个请求,返回403
但发送:
GET http://okbz.163888.net/1.mp3 http/1.1
Host:okbz.163888.net
...
可以返回200
这说明代理没问题的,只是得不到文件的大小。
不知道为什么,期待中...
Top
3 楼zxfvc(七品VC)回复于 2005-05-31 09:06:00 得分 0
upTop
4 楼kingzai(stevenzhu)回复于 2005-05-31 09:54:05 得分 20
//通过HTTP方式代理
if( !ClientSock.Connect( g_ProxyInfo.m_strProxyIP,g_ProxyInfo.m_nProxyPort) )
{
m_sError = _T("不能连接到代理服务器!");
ClientSock.Close();
return FALSE;
}
char buff[600];
sprintf( buff, "%s%s:%d%s","CONNECT ",GetServerHostName(),GetPort()," HTTP/1.0\r\nUser-Agent: MyApp/0.1\r\n\r\n");
ClientSock.Send(buff,strlen(buff)); //发送请求
memset(buff,0,600);
ClientSock.Receive(buff,600);
if(strstr(buff, "200 Connection established") == NULL) //连接不成功
{
m_sError = _T("通过代理连接主站不成功!");
ClientSock.Close();
return FALSE;
}
典型的反馈,仅供参考:
if( strstr(buff, "Error 403") )
{
return GoError(PROXYERROR_PROXYDISABLE); //代理服务器拒绝请求
}
if( strstr(buff, "407 Proxy authentication required") ) //需要身份验证
{
return GoError(PROXYERROR_USERNAMEORPASSWORD); //用户身份校检不成功
}
if( strstr(buff, "Connection refuesed") )
{
return GoError(PROXYERROR_CONNECTHOSTSERVER); //通过代理连接主站不成功
}
if( strstr(buff, "Access Denied") )
{
return GoError(PROXYERROR_USERNAMEORPASSWORD); //用户身份校检不成功
}
if(strstr(buff, "Connection refused by Remote Host") )
{
return GoError(PROXYERROR_CONNECTHOSTSERVER); //通过代理连接主站不成功
}
Top
5 楼veryfunny()回复于 2005-05-31 12:07:43 得分 20
这个与代理没有什么关系。
由于HEAD方法经常被机器人所使用,所以有的WEB服务器配置成不支持HEAD方法的,所以都会能403出现。
还是用GET吧,安全一些。Top
6 楼zxfvc(七品VC)回复于 2005-06-01 09:13:03 得分 0
楼上的朋友说的有道理,IIS在哪儿可以设置不支持HEAD命令呀?
我昨天在新闻组上也问了,他说可能是代理设置时禁止了HEAD命令,一般的代理程序都有那个设置,我用的是SuperProxy,但没发现那个设置,有人用过吗?在哪儿可以设置呀?
Alexander Nickolov(Microsoft MVP [VC], MCSD):
Your proxy most likely doesn't support the HEAD request,
or it has an explicit policy set somewhere to forbid it.
Top
7 楼zxfvc(七品VC)回复于 2005-06-02 09:09:16 得分 0
upTop




