Web服务器工作原理

Tomcat用了很久,但是只知道他是作为B/S架构的那个/来使用的,也就是桥梁的意思。今天看了李刚老师的书,觉得自己认识的那个浅薄。抛开Web应用直接看Web服务器(Server)和浏览器(Browser),对于大部分浏览器而言,它只负责三件事:

·  向远程服务器发送请求

·  读取远程服务器返回的字符串数据

· 负责根据字符串数据渲染出一个丰富多彩的界面

一个浏览器最大的技术难点就是在于渲染界面,常用的网页排版引擎有GeckoFirefox为代表)、WebKitChrome为代表)、TridentIE系列为代表)。而Web服务器则负责接收客户端请求,每当收到客户端连接请求之后,Web服务器应该使用单独的线程为该客户端提供服务:接收请求数据、相应请求数据。

B/S的应用架构总是先由客户端发送请求,服务器端接收到请求后送回响应的数据,座椅也将这种架构称作相应/请求架构。对于每次客户端请求而言,Web服务器大致需要完成如下几个步骤:

启动单独的线程

使用I/O流读取用户的请求数据

从请求数据中解析参数

处理用户请求

生成响应数据

使用I/O流向客户端发送请求数据


                                                                                                                                         Web服务器运行过程

其中启动单独线程、使用I/O流读取用户数据、使用I/O流向客户端发送请求数据是通用的,可以由Web服务器完成,但是由于从数据中解析的参数的不同,处理应用请求的不同,相应数据的不同,Web服务器会调用Servlet_jspService()方法来完成以上三步。当我们编写JSP页面时,页面里的静态内容、JSP脚本都会转换成_jspService()方法邪恶执行代码,这些代码负责完成解析参数、处理请求、生成响应等业务功能,而Web服务器则负责完成多线程、网络通信等底层的功能。

Web在执行了第3部解析到用户的请求参数之后,将需要通过这些请求参数来创建HttpServletRequestHttpServletResponse等对象,作为调用_jspService()方法的参数,实际上一个Web服务器必须为Servlet API中绝大部分接口提供实现类。

Web应用里的JSP页面,Servlet等程序都是由Web服务器来调用(因此又可称作Servlet容器),JSPServlet之间不会相互调用,他们之间的信息交互则需Web服务器负责。几乎所有的Web服务器(ApacheIIS···)都会提供四个类似Map的结构,分别是applicationsessionrequestpage。这四个Map结构的作用范围是不同的。

·  application:对于整个Web应用都有效,一旦JSPServlet将数据存入到application中,该数据可以被该应用下的其他所有JSPServlet访问。

· session:仅对一次会话有效,一旦JSPServlet将数据存入session中,该数据可以被本次会话的其他所有JSPServlet访问。

·  request:仅对本次请求有效,一旦JSPServlet将数据存入到request中,该数据可以被该次请求的其他JSPServlet访问。

·  page:仅对当前页面有效,一旦JSPServlet将数据存入page中,该数据只可以被当做当前页面的JSP脚本、声明部分访问。

将数据放入applicationsessionrequestpage中之后,就相当于扩大了该数据的作用范围,所以我们也认为applicationsessionrequestpage中的数据分别处于applicationsessionrequestpage范围之内。而JSP中的applicationsessionrequestpage四个内置对象分别用于操作applicationsessionrequest、和page中的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值