繁体   English   中英

在C中的代理服务器中转发GET请求

[英]Forward GET Request in Proxy Server in C

我正在编写C代码,尝试仅通过一些网络实践就可以构建非常基本的代理服务器。 我的目标是,仅使用我的代理从浏览器获取“ GET”请求,然后将其转发到适当的服务器,从服务器获取信息,然后将所有数据发送回浏览器。 到目前为止,我已经开始工作了,即得到了GET命令的内容。 现在,我真的停留在“转发”部分。 我应该如何将GET的内容转发到应该去的地方(例如www.example.com),然后将该信息取回? 我显然不能使用相同的套接字描述符并尝试使用send命令,因为那样我将把GET命令发送回试图发送出去的浏览器。 我一直在使用Beej的指南和在线随机提示。 这不是我的第一个网络程序,但我肯定会停留在这里。 我以为我必须对HOST(在GET中)进行DNS查找,获取IP,然后使用getaddrinfor + connect,但是connect给出了一个错误,即拒绝连接。 任何提示或提示对我都会非常有帮助。

编辑:我在堆栈上遵循另一个答案,详细说明了所涉及的步骤。 基本上,我要负责“重建/发送新请求部分”

Open port
Listen on port
Get all request sent from the client to that port (maybe make the whole thing multithreaded to be able to handle more than 1 request at a time)
Determine if it is a valid HTTP 1.0 request
Extract the request components
Rebuild the request according to what type of proxy you are
Send the new request
Get the response
Send response to client

edit2:HTTP 1.1代理

您在HTTP代理中要做的就是实现,即识别并执行CONNECT命令。 一旦完成工作,其他所有操作都只是来回复制字节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM