项目中需要保持http的session状态,研究了一下http中保持会话的资料,总结如下
http协议是面向无连接的协议,一次请求,一次操作,然后就结束了,是没有状态的。然后在实际应
用中需要保存用户信息的时候,可以采用cookie和session这2种方式,cookie是保存在客户端,
session是保存在服务器端的,个人觉得session比较安全。网上看资料,说是session的实现,是服务
器在内存中开辟一段内存区域,返回一个索引,即生成一个sessionid,发送到客户端,在客户端下一
次发送请求的时候将sessionid回传,则服务器可以找到用户的信息,相当于实现了状态的保持,因此
客户端还是要保存这个sessionid,我测试了一下在返回的response结果集中,将cookie键值对保存,
在下次发送请求的时候,将这个键值对以cookie的方式发送,结果成果。测试的例子是ww.our023.com
,测试结果很成果,如果没有登录,则返回的是无效的结果,但是如果登录了,然后将cookie中的内
容在下一次的请求中发送,则相当于包sessionid一起发送过去,则session状态保持成功。在cookie
中的键值对名,关系到sessionid的键值对,命名不知道是正面来的,反正接受到的参数都回传就是了
,这个估计和具体的服务器有一定的关系,或是和开发后台web的语言有一定关系,在此不在研究。
例子如下:
public static void main(String[] args) throws Exception {
String userName = "testyuce";
String password = "123456";
Map<String, String> loginData = new HashMap<String, String>();
loginData.put("username", userName);
loginData.put("password", password);
loginData.put("radio", "31536000");
loginData.put("referer", "/bbs");
//登录地址
Connection con = Jsoup.connect("http://www.our023.com/bbs/logging.php?action=login&loginsubmit=1");
con.data(loginData);
Response response = con.execute();
Document doc = response.parse();
//如果包含则代表返回的页面不是错误页面
System.out.println("测试登录结果11111,是否包含testyuce:" + doc.html().contains("testyuce"));
// System.out.println(doc.html());
System.out.println("==============================================");
Map<String, String> cookie = response.cookies();
//搜索地址
Connection conSearch = Jsoup.connect("http://www.our023.com/bbs/search.php?srchtxt=重庆&srchtype=title&searchsubmit=yes");
//设置请求时的cookie值,其中包含了上一次请求时服务器放回的sessionid
Iterator<Entry<String, String>> iterCookie = cookie.entrySet().iterator();
while(iterCookie.hasNext()){
Entry<String, String> entry = iterCookie.next();
conSearch.cookie(entry.getKey(), entry.getValue());
}
doc = conSearch.get();
//如果包含则代表返回的页面不是错误页面,则说明session状态保持成功
System.out.println("测试搜索结果2222,是否包含testyuce:" + doc.html().contains("testyuce"));
//如果熟悉html语言,可以看到返回的结果集合
// System.out.println(doc.html());
System.out.println("===============================================");
}
注:测试中用到了解析html的开源包jsoup
分享到:
相关推荐
每当客户端请求服务器时,都会将这个session ID一并发送回去,这样服务器就能识别出请求来自哪个用户,从而实现状态保持。 在"loginDemo"这个示例中,我们可能看到以下几个关键步骤: 1. **用户登录**:用户输入...
7. **执行其他需要保持SESSION状态的请求**:现在,当我们创建新的`HttpGet`或`HttpPost`请求时,HttpClient会自动处理Cookie,保持SESSION状态。 ```java HttpGet otherRequest = new HttpGet(...
在Java编程中,后台请求HTTP并保持Session是一个常见的任务,特别是在需要访问受保护的Web资源时,例如登录后的网页数据。下面将详细讲解这个过程,包括GET和POST方法的使用,以及Session管理。 首先,我们需要了解...
在Web应用程序中,Session通常用来在客户端和服务器之间保持状态。当用户登录后,服务器会为该用户创建一个Session,通过SessionID来识别用户。但是,使用`WebRequest`进行多条HTTP请求时,如果不采取特殊措施,...
在实际应用中,session常用于实现用户登录状态的保持,购物车功能,个性化推荐等。例如,当用户登录后,服务器会将用户信息存入session,后续请求中通过session ID就能识别用户身份,从而提供个性化的页面显示。对于...
Session机制是服务器端存储用户特定信息的一种方式,它允许开发者在多个页面之间保持用户状态,解决了HTTP协议无状态的问题。"szsessdifn"可能是某种特定的Session变量名或函数,但在这里没有足够的上下文来详细解释...
Session是服务器端用来跟踪用户状态的一种机制。在Web应用中,当用户登录后,服务器会为该用户创建一个session对象,并将用户的一些信息(如登录凭证)存储在session中。客户端通过一个称为session ID的唯一标识与...
在构建高性能、高可用性的Web应用系统时,会话保持是一个关键环节,它涉及到用户登录状态、购物车信息等重要数据的持久化处理。本文将详细介绍如何在Nginx、Tomcat7和Memcached的环境下实现会话保持,确保用户在多台...
### Django Session 完成状态保持的方法 #### 一、引言 HTTP 协议作为互联网上应用最为广泛的一种网络协议,其本质特点是无状态的。这意味着每次客户端与服务器之间的交互都是独立的,服务器不会保留任何关于之前的...
Session机制通过为每个用户创建并维护一个唯一标识符(即Session ID)来实现状态保持。关键特性如下: - **唯一性**:每个Session ID对应一个特定的用户会话。 - **安全性**:因为Session数据存储在服务器端,所以...
5. **Session**:Session状态在服务器端保持数据,为每个用户分配一个唯一的会话ID,通过这个ID在多个请求间获取数据。Session在服务器资源占用较大,不适用于大量并发用户。 6. **Application**:Application状态...
#### HTTP协议与状态保持挑战 HTTP协议,作为互联网上应用最为广泛的通信协议之一,本质上是无状态的,意味着每次请求和响应都是独立的,不保留历史信息。这种设计简化了服务器的实现,但也带来了挑战,特别是在...
http协议本身是一种无状态的协议,也就是客户端连续发送的多个请求之间没有联系,下一次请求不关心上一次请求的状态。 而实际运用中却希望服务器能记住客户端请求的状态,比如在网上购物系统中,服务器端应该能够...
- 如果上述方法仍然不能解决问题,可以考虑自定义Session状态提供程序。这涉及到创建一个新的类来实现`System.Web.SessionState.SessionStateStoreProviderBase`接口,并重写其中的一些方法以满足特定的需求。这种...
Session是一种用于维护客户端与服务器之间交互状态的技术,它能够跟踪用户的活动并保存用户数据,从而使得网站能够在多次请求之间保持一致的状态。下面将详细介绍Session的相关知识点。 #### 一、Session概念 1. *...
2. **HTTP协议与状态保持** - **HTTP的无状态性**:HTTP协议是基于请求-响应模型的,每个请求都是独立的,不保留任何关于先前请求的信息。 - **Cookie的引入**:为了解决无状态问题,Cookie被设计出来,它将数据...
在现代Web应用开发中,session共享是一个至...通过将session数据存储在Redis中,我们可以轻松地扩展Web应用的服务器集群,同时保持用户状态的一致性。了解并熟练掌握这种技术对于构建高可用、可伸缩的Web服务至关重要。
Cookie是通过在客户端存储数据的方式,每次请求时都会将这些数据发送到服务器,从而实现一定程度的状态保持。然而,Cookie的大小有限,且安全性较低。相比之下,Session数据存储在服务器端,更安全且存储量较大。...