web容器初始化流程及请求流程

WEB容器初始化流程

context-param -> listener -> filter -> servlet。

详细

  1. 启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取结点
  2. 创建一个ServletContext(servlet上下文),这个 web项目的所有部分都将共享这个上下文
  3. 容器将转换为键值对,并交给 servletContext。 因为listener, filter 等在初始化时会用到这些上下文中的信息,所以要先加载。
  4. 容器创建中的类实例,创建监听器(加载顺序不是编写的顺序)
  5. 加载filter和servlet

  • filter 拦截资源是按照 filter-mapping 配置节出现的顺序来依次调用 doFilter() 方法的
  • 在servlet的配置当中,0的含义是:

    (1)标记Tomcat是否在启动的时候就加载这个servlet。
    (2)当值为0或者大于0时,表示Tomcat在应用启动时就加载这个servlet;
    (3)当是一个负数时或者没有指定时,则指示Tomcat在该servlet被选择时才加载。
    (4)正数的值越小,启动该servlet的优先级越高。

web请求流程

1. DNS解析过程

DNS解析过程
(1)用户在浏览器键入域名,回车。
(2)浏览器检查浏览器缓存中有无此域名对应IP,有则结束。
(3)浏览器检查操作系统缓存(hosts文件)中有无此域名对应IP,有则结束。
(4)将域名发到本地DNS,查看有没有在其缓存中,有则返回IP给用户,结束。
(5)向根域名服务器请求,根域名服务器返回主域名服务器(.com,.cn等)地址。
(6)向主域名服务器请求,返回注册域名服务器地址。
(7)经过多级解析后返回IP给本地DNS。
(8)本地DNS缓存之,并返回给用户。

2. 建立TCP连接(三次握手)

3. Web浏览器向Web服务器发送请求命令

4. Web浏览器发送请求头信息

5. Web服务器应答

6. Web服务器发送应答头信息

7. Web服务器向浏览器发送数据

8. Web服务器关闭TCP连接

你可能感兴趣的:(web容器初始化流程及请求流程)