从浏览器输入网址到页面显示之间的过程

   发起一个HTTP连接本质上就是建立一个scoket连接

   之间发生的事情:

   1.浏览器向DNS服务器查找输入URL对应的IP地址

        这里面需要做的就是DNS解析。我们都知道互联网是通过URL来发布和请求资源的,而URL中的域名需要解析成IP地址才能与远程主机建立连接。

         DNS域名解析的前两步会去浏览器缓存中和操作系统缓存中查看有没有这个域名对应的解析过的IP地址。

         浏览器缓存的时间可以通过TTL 属性来设置 。JVM的设置方式lib\security\java.security文件

                                                         networkaddress.cache.negative.ttl=10

         window操作系统可以设置c:/windows/system32/drivers/etc/hosts

    2.DNS服务器返回网站的IP地址

    3.DNS服务器根据IP地址与目标web服务器在80端口上建立TCP连接。         

      TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。

     (1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

     (2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

     (3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

      完成三次握手,客户端与服务器开始传送数据。

      LISTEN - 侦听来自远方TCP端口的连接请求; 
      SYN-SENT -在发送连接请求后等待匹配的连接请求; 
      SYN-RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认; 
      ESTABLISHED- 代表一个打开的连接,数据可以传送给用户; 
      FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
      FIN-WAIT-2 - 从远程TCP等待连接中断请求; 
      CLOSE-WAIT - 等待从本地用户发来的连接中断请求; 
      CLOSING -等待远程TCP对连接中断的确认; 
      LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认; 
      TIME-WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认; 
      CLOSED - 没有任何连接状态

   4.浏览器获取请求页面的html代码

     JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例——JSP页面由系统编译成Servlet,Servlet再负责响应用户请求。

   html代码是通过out.write()形式传到浏览器。tomcat/work目录下有jsp生成的java文件

   5.浏览器在显示的窗口内渲染html

   6.浏览器窗口关闭时,终止与服务器的连接

  Tomact、Servlet与浏览器之间的关系

   从浏览器输入网址到页面显示之间的过程_第1张图片



你可能感兴趣的:(Java,Spring)