1、页面为中文时如果使用ASCII对返回数据转码在客户端就会出现乱码
2、页面中使用Cookie时如何让代理服务器取到并传给客户端?

解决方案 »

  1.   

    解决这两个问题需要了解http协议
    1.socket接收到的数据未转换之前位2进制,一般http协议头以两个连续的回车换行结束,后面可能为数据长度和html内容,因此html编码方式可能在http协议头中已经设置,例如utf-8,gb2312,可以自己写程序判断
    2.客户端浏览器访问网站服务器时,在http数据包中有一个Cookie头,后面就是cookie值GET /dilingling/images/center.gif HTTP/1.1
    Accept: */*
    If-Modified-Since: Thu, 10 May 2007 02:20:40 GMT; length=198
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
    Host: www230.clickeye.cn
    Connection: Keep-Alive
    Cookie: key=123X103X29X245XX6923CC23FE051C88F0F45A857A793630331087
    如果网站服务器需要设置客户端的cookie,则在返回客户端浏览器的http数据包中会包含这样的头:set-cookie:aspsessionid=fdsfsdfgndsfgeedsnfd4
    代理服务器可以取到这个cookie值
    多抓几个http包就明白了
      

  2.   

    抓回的包中没有包含Cookie信息,但发出去的包里确实是包含的。
      

  3.   

    如果服务器要设置cookie那在http的头部就肯定能够看到这个cookie.
    你的代理服务器不需要处理这些之需要转发就可以了