web服务器程序主要有哪些 web服务器有哪些( 二 )



六、如何让服务器知道你来过?6.1 Cookie技术Cookie的作用:通俗地说就是当一个用户通过HTTP协议访问一个服务器的时候,这个服务器会将一些Key/Value键值对返回给客户端浏览器,并给这些数据加上一些限制条件,在条件符合时这个用户下次访问这个服务器的时候,数据又被完整地带回给服务器 。这个作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时,超市会识别你的购物卡,下次直接购物就好了 。当初W3C在设计Cookie时实际上考虑的是为了记录用户在一段时间内访问Web应用的行为路径 。由于HTTP协议是一种无状态协议,当用户的一次访问请求结束后,后端服务器就无法知道下一次来访问的还是不是上次访问的用户,在设计应用程序时,我们很容易想到两次访问是同一人访问与不同的两个人访问对程序设计和性能来说有很大的不同 。例如,在一个很短的时间内,如果与用户相关的数据被频繁访问,可以针对这个数据做缓存,这样可以大大提高数据的访问性能 。Cookie的作用正是在此,由于是同一个客户端发出的请求,每次发出的请求都会带有第一次访问时服务端设置的信息,这样服务端就可以根据Cookie值来划分访问的用户了 。
6.2 Session技术为什么需要Session?前面已经介绍了Cookie可以让服务端程序跟踪每个客户端的访问,但是每次客户端的访问都必须传回这些Cookie,如果Cookie很多,这无形地增加了客户端与服务端的数据传输量,而Session的出现正是为了解决这个问题 。同一个客户端每次和服务端交互时,不需要每次都传回所有的Cookie值,而是只要传回一个ID,这个ID是客户端第一次访问服务器的时候生成的,而且每个客户端是唯一的 。这样每个客户端就有了一个唯一的ID,客户端只要传回这个ID就行了,这个ID通常是NANE为JSESIONID的一个Cookie 。

一个浏览器去服务器租房子,服务器记录一下浏览器的行为和数据,然后给了浏览器一把房间的钥匙 然后,每次浏览器可以使用自己的钥匙去打开自己的房间,使用房间的所有东西 。(当然,你不能去开别人的房间,何况也打不开)
七、上下文7.1 SeveletContext或者ApplicationContext的由来浏览器想锻炼身体,愉悦心情 。服务器心想我不能给你们每一个人的房间增加一套体育设备吧,那我的经济压力多大 。服务器想了想,决定建设一个公开场所,体育馆,所有浏览器都可以使用这些共享资源 。
7.2 Servlet上下文运行在Java虚拟机中的每一个Web应用程序都有一个与之相关的Servlet上下文 。Java Servlet API提供了一个ServletContext接口用来表示上下文 。在这个接口中定义了一组方法,Servlet可以使用这些方法与它的Servlet容器进行通信,例如,得到文件的MIME类型,转发请求,或者向日志文件中写入日志消息 。ServletContext对象是Web服务器中的一个已知路径的根 。比如,Servlet上下文被定位于http://localhost:8080/ch02 。以/ch02请求路径(称为上下文路径)开始的所有请求被发送到与此ServletContext关联的Web应用程序 。再比如,我们平常使用的http://localhost:8080/ 。以/请求路径(称为上下文路径)开始的所有请求被发送到与此ServletContext关联的Web应用程序 。
web服务器程序主要有哪些 web服务器有哪些


ServletContext: 这个是来自于servlet规范里的概念,它是servlet用来与容器间进行交互的接口的组合,也就是说,这个接口定义了一系列的方法,servlet通过这些方法可以很方便地与自己所在的容器进行一些交互 。在一个应用中(一个JVM),servlet容器可以有多个,而所有的servlet容器共享一个ServletContext 。

推荐阅读