早上占坑。
web服务器做了什么?
我们平时将文件放到C盘、D盘,正常情况下,别人是不能直接通过网络访问我们的文件的,那浏览器怎么通过网络访问我们的HTML文件呢,
必须由软件通过socket+协议的方式对文件进行网络传输,就像你用QQ向别人发文件一样,QQ程序读取本地文件,然后通过他们指定的通信端口,通信方式,将本地文件发送给其他人。
web服务器就是这样一个软件,它通过监听指定的文件夹下的文件,当用户通过浏览器向web服务器提出访问请求,web服务器解析请求的url地址,然后将url地址映射的文件路径下的文件返回给浏览器,浏览器得到HTML格式的文件,然后解析,渲染,就看到了我们看到的页面。
这就是普通web浏览器所做的工作,,,就是将url与文件路径映射,解析访问url字符串,将对应的文件返回给请求者。
自己也可以实现一个简易的web服务器,将web服务器、浏览器分别抽象成服务端程序和客户端程序,两个程序可以通过socket进行通信,客户端向web服务器发送url格式字符串,
服务器程序socket收到url字符串后,根据url地址将字符串解析为本地文件地址,然后将本地文件通过数据流发送给客户端。这就是一个简单的web服务器程序和它的工作过程了。
当然,web服务器的任务不仅于此,它与浏览器客户端通过HTTP协议进行沟通,这些是沟通细节。
为什么不在程序中直接使用socket接收浏览器请求呢,这样不是直接运行开发的程序就行,不用再启动另外的服务器程序了。
当然可以通过在开发程序中直接编写socket通信机制,然后侦听端口和信息,解析访问的url字符串,返回html文件,全部自己处理,这个是可行的,没有技术障碍,
但是web服务器做的工作比较通用,它可以管理指定文件夹下的文件,提供访问服务,解析url地址,接受HTTP协议,发送文件,这些通用的功能只需要启动web服务器软件,配置映射文件夹路径就可以,为什么还要自己开发,重复造轮子呢。web服务器程序的开发与我们的业务逻辑完全无关,没有任何耦合,所以使用成熟的web服务器软件能让我们把全部精力聚焦在业务功能的开发上,并且提供了相对完整、性能、安全性、稳定性更加优秀的体验,所以,我们选择用web服务器帮我们管理。
那么tomcat和刚刚说的web服务器是一回事吗,计算机软件开发中的web服务器一般只负责管理静态文件,供外界远程访问,tomcat是一个servlet容器,是一种可以管理动态开发程序的服务器,它也包含了管理静态文件的web服务器的功能。
tomcat配置网站映射的几种方式,有三种:
1.待续
2.
3.
tomcat所谓的servlet容器做了什么,它负责解析开发的动态网页,访问数据库,访问其它资源,总之它做的核心事件就是处理动态网页将动态程序执行后的结果拼接成静态网页后,将静态文件交给web服务器,web服务器返回给浏览器。它做的就是解释、拼接的作用。
tomcat服务器访问分多层:tomcat启动的时候先基于server.xml配置文件启动一个server,server里面启动service,service里面启动多个connector连接器,每个连接器都在等待浏览器的连接,连接器本身不处理请求,而是将请求将给engines引擎去处理,engines收到请求解析要访问的host,然后将请求交给host,host解析用户想访问哪个web应用,一个应用对应一个context,接下来就是web服务器的事了。。。
待补充。。。。