你的位置:首页 > 软件开发 > ASP.net > 对企业级应用开发的思考(2)

对企业级应用开发的思考(2)

发布时间:2015-09-27 23:00:09
在我们使用HTTP协议进行应用开发的的时候,通常服务器端是不关心请求是从哪个客户到来的,客户端也不并不关心服务器端是通过生成哪个对象处理的这次请求。这就是我们通常说的HTTP无状态请求,从技术的角度上讲是因为:客户端和服务器用TCP Socket通信,服务器将请求结果返回给浏览器 ...

对企业级应用开发的思考(2)

    在我们使用HTTP协议进行应用开发的的时候,通常服务器端是不关心请求是从哪个客户到来的,客户端也不并不关心服务器端是通过生成哪个对象处理的这次请求。这就是我们通常说的HTTP无状态请求,从技术的角度上讲是因为:

  • 客户端和服务器用TCP Socket通信,服务器将请求结果返回给浏览器后,通常会关闭Socket连接;
  • 服务器会在处理页面完毕后销毁页面对象;
  • HTTP协议本身就是一个无状态协议;

    举个例子,如返回一个Web页面告诉你关于一个商品的信息。可以通过访问一个URL请求服务器。在URL中带有该商品的ID号,服务器用它来产生HTTP页面进行响应。在这个过程中,服务器生成HTML页前可能记住了这个商品的ID以及从数据库取出来的商品名称/价格等信息,并可以通过业务逻辑来决定按哪种风格来显示给客户。一旦服务器完成工作,那些信息就没有任何作用了。

    然而我们的业务逻辑通常要求服务端与客户端交互是有状态的。最常见的是很多业务系统要登陆后才能进行操作,而且在整个操作过程中都要携带登陆信息,登陆信息便是会话状态;再比如网购过程中的购物车功能,购物车的内容就是会话状态。这些都是比较典型的基于状态的交互。基于会话的交互关键是如何存储会话状态信息,因为通信的两方只有客户端和服务端,所以会话状态的存储方式也有两种:存储在服务器端和存储在客户端。

客户端存储

    客户端存储能常有这样几种方法:数据编码在URL中、WEB表单的隐藏域中、HTML扩展标签及cookie。这里简单说一下具体的操作:

  • URL方法:这种方法最常见的就是在分页的时候,URL中带放有页码信息。比如:xx.aspx?page=3 这种方式是最简单有效的方法。但缺点也很明显,安全系数基本为0,而且只适合存储小数据量。
  • WEB表单隐藏域: 这种方式和把信息存储在HTML扩展标签中,还有可能在胖客户端的对象结构中其实是差不多一样的。最明显的一个例子就是get='_blank'>asp.net中为表单自动生成的那一堆viewdata,它们的原理都是在客户端的WEB页面中放置一些普通用户看不见的东西。所以可以把它们归为一类,至于实际项目中选择使用哪种方式,全凭开发者个人爱好及客户浏览器的支持情况。它的一个典型的实现如下:
<input type="hidden" value="你的会话状态信息" id="sessionData"/>

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:对企业级应用开发的思考(2)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录