PC上的Cookie是怎么创建起来的?需要服务端告知吗?现在用HttpClient做模拟IE登陆, 认为Cookie是从Sever端的报文头获得的, 但实际上不是这么回事。
想问一下Client端如果要创建Cookie,依据是什么?比如sina的登陆, 创建的Cookie是:SINAGLOBAL
121.77.131.181.303561228566931361
sina.com.cn/
1104
2654992128
30744557
3875976608
30010302
*我如何知道要创建这样一个Cookie呢! 

解决方案 »

  1.   

    response生成出来的。
    Js也可以生成。
      

  2.   

    cookie 你可以想做是一个文件存储一个字符串 在IE自己能够找到的地方存放。是存储在客户机上的一个文件。 你可以这样简单的理解。然后剩下的就是如何存储这个东西到客户机上,可以用response(对于java来说),也可以用js,按照他的格式。当你用URLConnection请求服务器的时候,其实这是一个新的请求是不附带cookie的,而服务器要判断请求来的数据是否存在cookie信息的话,你需要附带cookie属性例如: 
    java.net.URL url = new java.net.URL("http://bbs.abcbit.com/viewthread.php?tid=214878&extra=page%3D1/"); 如果他们需要记录cookie的话,应该把cookie信息带过去, 因为这样请求等于又重新建立连接,没有传递和记载cookie 你应该附带cookie,例如: 
    URLConnection uc = new URL(url).openConnection(); 
    uc.setRequestProperty("Cookie", "xxx=xxxxxxx;xxx=xxx");  
     
    参照这个帖子,我很久以前回复的:http://topic.csdn.net/u/20090211/11/0c087f5b-df0f-4fd8-b4d1-e75773a32be2.html 
      

  3.   

    要让服务器得到cookie,请求的过程中一定要附带过去。找了一段代码如下:
    HttpClient httpclient=new HttpClient();   
    httpclient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);//RFC_2109是支持较普遍的一个,还有其他cookie协议   
    HttpState initialState = new HttpState();   
    Cookie cookie=new Cookie();   
    cookie.setDomain("www.balblabla.com");   
    cookie.setPath("/");   
    cookie.setName("name");   
    cookie.setValue("1111111111");   
    initialState.addCookie(cookie);   
    httpclient.setState(initialState);
      

  4.   

    要让服务器得到cookie,请求的过程中一定要附带过去。找了一段代码如下:
    HttpClient httpclient=new HttpClient();   
    httpclient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);//RFC_2109是支持较普遍的一个,还有其他cookie协议   
    HttpState initialState = new HttpState();   
    Cookie cookie=new Cookie();   
    cookie.setDomain("www.balblabla.com");   
    cookie.setPath("/");   
    cookie.setName("name");   
    cookie.setValue("1111111111");   
    initialState.addCookie(cookie);   
    httpclient.setState(initialState);
      

  5.   

    cookie的意思是小甜饼,也可以理解成服务器给客户端的小饼。下面是个例子:
    假如去某商店购物,当你是第一次去时,商店觉得你是一个可以发展的客户,于是给你发张标记卡,并告诉你,
    下次来带着这张卡,买东西打8拆。
    以后你去这家店时,出示卡片,店家就能认识你了,然后给你打拆。Cookie的作用和这个相类的,创建的时机也是这样,而为什么要创建,是因为需要用来满足某个业务需求。比如你登录CSDN时,有个选择,两次内不登录。如果你有这样需求,并选择了那个项,那服务器就知道,现在要给你一个Cookie,
    记录你用户名:Cookie cookie = new Cookie("user","000");
    cookie.setPath("/csdn/user");//在服务器中这个PATH下的应用可以获得此COOKIE
    cookie.setMaxAge(60*60*24*7);//COOKIE在客户端的有效期为一周
    response.addCookie(cookie);
    当你进入登录成功的页面,HTTP响应会通过在头文件中加入COOKIE信息,浏览器获取到这个HTTP响应后,创建
    本地COOKIE并保存。