服务器和浏览器之间的关系是怎么样的
理解服务器和浏览器之间的关系是进行web开发的基础,他们之间的关系很好立即,可以很简单的用两个人打电话来进行说明,可以将服务器看成是A,浏览器看成是B
- B拨打A的号码,就相当是浏览器向服务器发出了请求,其中电话号码就相当于是请求的网址;
- A听到了电话响,发现是B的电话,进行了接听,这个过程相当于是服务器对浏览器接收到了服务器的请求;
- 电话接通之后,B对A说的事情进行相应,比如答应一起出去吃饭等,这个过程相当于是服务器对浏览器的请求进行了相应,比如返回一个网页,或者返回一个文件等。
在打电话的过程中,用到的工具是手机,使用的语言是汉语,而服务器和浏览器之间使用的工具是http协议,用到的语言是HTML。
为什么需要Servlet
通过浏览器与服务器之间的关系可以看出来,服务器上面存放着各种的资源,就类似于仓库一样,客户想要什么,可以通过浏览器去里面拿。但是有一个问题就是,服务器上面存放的东西都是固定的,就比如如果想要获取到当前的服务器的时间,如果服务器上面有这样的一个html文件的话,就可以得到,但是每一次得到的都是相同的时间,而不是服务器当前的时间。所以就需要有这样的一个程序,来获取到服务器当前的时间,并生成一个html,返回给用户,这个程序就是servlet。
什么是servlet容器
由于servlet是一个java类,不是一个html文件,所以如果想要运行这个java类,就需要一个运行环境,服务器通过这个运行环境来调用servlet,并返回结果,这个运行环境就是servlet容器。
Servlet容器用来控制servlet的生命周期,为servlet的运行提供运行时环境,可以将有服务器发送过来的参数传递给servlet,并将servlet的结果返回给服务器。
Servlet容器更像是一个桥梁,用于连接服务器和servlet,提供他们之间的无缝连接。
结合了servlet之后的服务器和浏览器之间的通讯过程
上图为浏览器请求servlet的过程。浏览器向服务器发送请求时,如果请求的是服务器上面的一个servlet,而不是一个具体的html,那么服务器通过判断,会将该请求与参数一同传递给Servlet容器(web容器),Servlet容器会知道当前需要的servlet的位置,并将参数传递个这个servlet,并调用。
上图为servlet的响应过程。Servlet将执行结果,传递给Servlet容器,Servlet容器又将结果返回给服务器,服务器将结果返回给浏览器。