当前位置: 技术问答>linux和unix
有关http协议的问题
来源: 互联网 发布时间:2015-06-14
本文导语: 我要做一个代理服务器,从接收到的来自客户端的http数据包中解析出客户请求的远端服务器的主机名或ip地址。现在我是这样解析的。在http数据包中找到Host:后的字段,然后调用gethostbyname进行解析,这样做对吗? ...
我要做一个代理服务器,从接收到的来自客户端的http数据包中解析出客户请求的远端服务器的主机名或ip地址。现在我是这样解析的。在http数据包中找到Host:后的字段,然后调用gethostbyname进行解析,这样做对吗?
|
有的请求包没有Host:字段,最好的方法应该是http头中GET字段后面的值,如果是数字就不要转换,是字母就转换成IP地址。连接好后,向服务器发送的数据不能是客户端的http数据包,应该把url去掉,比如:
GET http://expert.csdn.net/Expert/topic/2902/2902683.xml?temp=.4043695 HTTP/1.1
应该换成:
GET /Expert/topic/2902/2902683.xml?temp=.4043695 HTTP/1.1
GET http://expert.csdn.net/Expert/topic/2902/2902683.xml?temp=.4043695 HTTP/1.1
应该换成:
GET /Expert/topic/2902/2902683.xml?temp=.4043695 HTTP/1.1
|
把数据交换的缓冲区加大一点试试呢?