当前位置: 首页 > 知识库问答 >
问题:

用C语言将请求头从HTTP代理服务器重新生成到远程服务器

羿季
2023-03-14

我需要开发一个HTTP代理服务器。我的代理服务器能够从web Brownser检索HTTP请求。我也能连接到服务器。我无法理解如何进一步移动:如何将请求从代理服务器发送到远程服务器。
我有以下查询:

  1. 要从HTTP代理服务器发送到远程服务器的请求头格式
  2. 它是否与我从web brownser收到的GET、HEAD和POST方法的头相同。

我已尝试发送整个标头:
获取http://www.gmail.com/http/1.1
接受:text/html,application/xhtml+xml,/
接受-语言:en-us
用户-代理:Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)
接受-编码:gzip,deflate
代理-连接:Keep-alive
主机:www.gmail.com

或:GET/http/1.1
主机:www.gmail.com:80

共有1个答案

傅穆冉
2023-03-14

从代理请求到HTTP服务器请求的基本转换是更改第一行:

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

GET / HTTP/1.1

当浏览器向代理发送请求时,需要完整的URL,以便代理可以进一步连接到真实的服务器。但是,对服务器的HTTP请求不能包含get行上的协议和主机名部分。

然而,这可能不是你唯一需要做的事情。HTTP代理是一个相当复杂的应用程序,这是由于浏览器-代理连接和代理-服务器连接上的协议版本号和连接选项不同。

RFC2616包含大量关于HTTP代理应用程序的正确行为的信息。

 类似资料:
  • 在终端上,我得到了这个错误:$./asadmin start-domain domain1 找不到默认的域目录。此系统属性没有值:com.sun.aas.domainsroot命令启动-域失败。 在Eclipse上,我得到了这个运行时异常:在Felix平台上启动GlassFish 玻璃鱼4 拜托,你知道怎么解决这个问题吗?

  • 名为charles的工具中有一个功能,允许您映射远程请求: http://www.charlesproxy.com/documentation/tools/map-remote/ 基本上,它可以将任何请求发送到服务器(即使不是运行它的人),然后向另一台服务器发出新请求,保留路径和查询字符串。然后,来自第二台服务器的响应将覆盖来自第一台服务器的响应。 我只是想知道是否有一个节点模块可以做到这一点。我

  • 我正在尝试使用HTTP请求/响应用Java编写一个简单的客户机-服务器应用程序。我想客户端是一个桌面程序发送(张贴)请求到服务器。该服务器是一个网页,将被托管在Apache Tomcat服务器上。服务器必须能够读取信息并将其显示在浏览器上,并且必须能够用状态代码200响应客户端。我正在使用eclipse和Apache tomcat服务器。到目前为止,我已经尝试了各种资源,但我所能找到的是一个可以从

  • 这个错误的原因是什么?我如何修复它或设置我想要的代理?

  • 线程“main”io.netty.channel.abstractchannel$AnnotatedConnectException:连接被拒绝:无进一步信息:/127.0.0.1:8888在sun.nio.channel.checkConnect(本机方法)在sun.nio.channel.socketchannel.finishConnect(未知源)在io.netty.channel.soc

  • 问题内容: 我可以在JavaScript中使用XMLHttpRequests来在与发出请求的服务器不同的服务器上请求文件吗? 谢谢。 问题答案: 您需要使用一种称为JSONP的方法。 最好的方法之一是使用jQuery来减少页面和服务器之间的代码和后顾之忧,而您所需要做的就是: