本文共 1344 字,大约阅读时间需要 4 分钟。
HTTP协议是浏览器与服务器之间的数据传送协议。作为应用层协议,HTTP是基于TCP/IP协议来传递数据的(HTTP文件、图片、查询结果等),HTTP协议不涉及数据包(Packet)传输,主要规定了客户端和服务器之间的通信。
过程如下:
浏览器发给服务器的是一个HTTP格式的请求,HTTP服务器收到这个请求后,需要调用服务端程序来处理,所谓的服务端程序就是我们写的Java类,一般来说不同的请求需要由不同的Java类来处理。
图1:
表示HTTP服务器直接调用具体业务类,它们是紧耦合的。
图2:
HTTP服务器不直接调用业务类,而是把请求交给容器来处理,容器通过Servlet接口调用业务类。因此Servlet接口和Servlet容器的出现,达到了HTTP服务器与业务类解耦的目的。而Servlet接口和Servlet容器这一套规范叫做Servlet规范。Tomcat按照Servlet规范的要求实现了Servlet容器,同时它们也具有HTTP服务器的功能。作为Java程序员,如果我们要实现新的业务功能,只需要实现一个Servlet,并把它注册到Tomcat(Servlet容器)中,剩下的事情就由Tomcat帮我们处理了。
当客户请求某个资源时,HTTP服务器会用一个ServletRequest对象把客户的请求信息封装起来,然后调用Servlet方法,Servlet容器拿到请求后,根据请求的URL和Servlet的映射关系,找到对应的Servlet,如果Servlet还没有被加载,就用反射机制创建这个Servlet,并调用Servlet的init方法来完成初始化,接着调用Servlet的service方法来处理请求,把ServletResponse对向返回给HTTP服务器,HTTP服务器会把响应发送给客户端。
Tomcat要实现两个核心功能:
因此Tomcat设计了两个核心组件连接器(Connector)和容器(Container)
来分别做这两件事情。连接器负责对外交流,容器负责内部处理。
转载地址:http://dvpqb.baihongyu.com/