呵呵,新手总是会问一些低级的问题,望大家帮忙,谢谢!
    我弄不明白:cookie具体是如何交互的??
    首先,我原先以为,只要在httpwebRequst(请求)对象中设置了一个全局的CookieContainer。以后每次发送数据使用这个CookieContainer就可以。然后再客户端和服务器在请求-应答的过程中自己接受和发送cookie。这样的话,如果不考虑到部分cookie在客户端需要修改的话,cookie传递没有问题。
    但是我看到很多解释: httpwebRequst有个CookieContainer。如果设置为null的话,表示不接受服务器cookie。如果不为null。那么,HttpWebResponse对象的cookie就包含了从服务器端传回的cookie。 如果是这样。我们还需不需要把HttpWebResponse对象的cookie读出来,然后放在httpwebRequst对象的CookieContainer中去,然后再访问新的页面,是这样吗?
    还或者,不管是怎么样。我们从HttpWebResponse对象的header中取出cookie。然后放入httpwebRequst对象的CookieContainer中。
    到最后,我都不知道,httpwebRequst对象的CookieContainer对象到底是用于发送cookie给服务器呢,还是用于接收服务器传回来的cookie。或者是他既用于发送cookie,也用于接收cookie。
    实在是太迷惑了,不知道在C/S交互过程中,cookie是如何交互的。

解决方案 »

  1.   

    呵呵,首先感谢sp1234!非常感谢。我来CSDN,今天下午开始发贴。两个帖子都只有你一个人回复。真的很感谢。
    我遇到这些问题,其实查了很多网上的资料,可惜由于是初学,确实不怎么明白。你上面打的那个比方我都不是太明白,可以将具体一点吗?谢谢!
      

  2.   

    cookie就是对一个数据集的暂存功能
      

  3.   

    恩,我明白cookie是对一个数据集的暂存。这个数据集会伴随浏览器访问服务器接受和发送。我需要写个软件模拟浏览器与http服务器交互,因此需要在程序中自己接受和发送服务器传递给我的cookie。
    因此想知道这中间的一些细节。
      

  4.   

    httpwebRequst的CookieContainer当然是用于发送的Cooke,它包含对应域的Cookie,当向对应域发送数据时,就会把对应域的cookie放到http头中,而HttpWebResponse,故明思意就是反回数据,它也包含一个cookie的容器,它表示当前返回的cookie,如果它返回的cookie跟httpwebRequst的CookieContainer中有重复就会修改httpwebRequst的CookieContainer的cookie,这样说应该明白了吧,所以如果你要读写cookie,就要对httpwebRequst的CookieContainer下手,因为读HttpWebResponse是不太可靠的,因为HttpWebResponse只是当前页的返回cookie并不一定是完整的,还有服务器可以利用502等返回代码跳转去隐藏一个跳转期间返回的Cookie(除非你设置httpwebRequst不自动中转而你写代码手动跳转),但httpwebRequst的CookieContainer就绝对包含了对某个域要发送的Cookie的所有值,但它不能直接读出所有的值,要靠函数传一个域进去读出来,如果你懂得去控制修改Cookie,HTTP协议是非常不安全的!
      

  5.   

    你应该去看 http协议cookie的值在协议部分