*********Http Post登陆后如何保持会话?*********

愿生活充满微笑 2012-02-18 02:51:49

关于Http请求有问题请教一下,我想实现Post登陆(用自己的站做的测试).但不会处理Cookie来达到会话持久的目的

Web服务器端:
网站登陆成功后,设置session代码如下:
session.setAttribute("uid",uid);
然后重定向到登陆成功的页面:
response.sendRedirect(....);


下面是自己写的程序过程:
发送登陆数据包:
POST /_login.jsp HTTP/1.1
Host: 192.168.1.2
Accept-Language: zh-cn
Connection: keep-alive

username=admin&userpwd=admin


接收到的包:
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=129FDBC989E0942F3EB64C818554AB94; Path=/glxt
Location: http://192.168.1.2/glxt/index.jsp?fid=40&tid=3
Content-Type: text/html;charset=UTF-8
Content-Length: 0
Date: Sat, 18 Feb 2012 05:55:49 GMT


此时登陆成功,并重定向了,然后我加Cookie发送,取网站数据:
GET /glxt/index.jsp?fid=40&tid=4 HTTP/1.1
Host: 192.168.1.2:8080
Cookie: JSESSIONID=129FDBC989E0942F3EB64C818554AB94


但返回的数据包如下:
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: http://192.168.1.2:8080/glxt/index.jsp?fid=1&tid=3
Content-Type: text/html;charset=UTF-8
Content-Length: 0
Date: Sat, 18 Feb 2012 05:55:49 GMT


又重定向了,说明无权限取该数据.
请问这是为什么呢?  Cookie该怎么设置才能保持会话呢?
谢谢, 请帮帮我~~~ 再次谢谢
...全文
329 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
原因找到了,不是我Cookie设置的问题,是数据根本未Post过去

下面是POST的写法,服务器端从request中取不到数据
POST /_login.jsp HTTP/1.1
Host: 192.168.1.2
Accept-Language: zh-cn
Connection: keep-alive

username=admin&userpwd=admin


改成GET方式就可以了....晕了,怎么回事?
GET /_login.jsp?username=admin&userpwd=admin HTTP/1.1
Host: 192.168.1.2
Accept-Language: zh-cn
Connection: keep-alive
hotpos 2012-02-18
  • 打赏
  • 举报
回复
http://192.168.1.2/glxt/index.jsp?fid=40&tid=3
可能会生成其他的Cookie,你没有这些Cookie,服务器认为你登录尚未完成。
ok1234567 2012-02-18
  • 打赏
  • 举报
回复
用抓包程序,完整地走一遍登入流程
然后,研究其过程,跳转可能不只一次

至于Cookie,保存起来(注意域的变化以及Cookie值的修改,Cookie是累加的),每次请求都发出去就可以了
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hotpos 的回复:]

http://192.168.1.2/glxt/index.jsp?fid=40&tid=3

登录成功要跳转到这个页面,你没跳转,服务器不认,让你再跳转一次

你就从了呗
[/Quote]
我没跳转,但session是有的, 再请求其他页面的数据,也应该可以的啊,关键是为什么Cookie没起作用呢?
该怎么才能保持会话呢?

我在下抓包工具,对比一下浏览器发出的请求...
各位,再帮我看看
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q342210738 的回复:]

你的帖子犯错了位置吧????
放到java区去啊
[/Quote]

没错,属性Http的范围,只是网站是JSP的,如果ASP,PHP的都一样,登陆都是一样的
hotpos 2012-02-18
  • 打赏
  • 举报
回复
http://192.168.1.2/glxt/index.jsp?fid=40&tid=3

登录成功要跳转到这个页面,你没跳转,服务器不认,让你再跳转一次

你就从了呗
lyingbo 2012-02-18
  • 打赏
  • 举报
回复
你的帖子犯错了位置吧????
放到java区去啊

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧