C套接字,代理GET请求返回为404

时间:2019-03-30 02:15:16

标签: c sockets proxy

我正在创建一个简单的代理服务器,但是遇到了从网站获取响应的问题。

我已经将服务器设置为接受通过浏览器代理配置连接到的指定端口上的连接。服务器能够接收请求,连接到指定的网站,发送请求并接收回复。

我正在将请求从浏览器转发到网站,而没有进行修改,但是我收到的回复始终是404错误。

这是我向网站提出的请求,每行之后都有一个\ r \ n,最后一行之后是\ r \ n \ r \ n。

GET http://www.mywebpage.com/ HTTP/1.1
Host: www.mywebpage.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cookie: __utma=1.35811746.1525489860.1537250282.1539467023.3; __utmz=1.1537250282.2.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); _fbp=fb.1.1553849756364.1600689742
Upgrade-Insecure-Requests: 1

我的发送接收代码如下所示。

sendError  = send(serverSock, requestString , strlen(requestString) , 0 );  
returnedSize = recv(serverSock, buffer, sizeof(buffer), 0);

1 个答案:

答案 0 :(得分:0)

  

我正在将请求从浏览器转发到网站,而无需进行修改   ...

GET http://www.mywebpage.com/ HTTP/1.1

您在absolute URL中使用的request target仅应用于代理。普通服务器需要origin form,即仅路径和可选查询,而不是完整URL。因此,应该剥离方法,主机和端口:

 GET / HTTP/1.1