| 服务器问题 | ||
HTTP服务器本质上也是一种利用程序——它通常运行在服务器之上,绑定服务器的IP地址并监听某一个tcp端口来吸收并处理HTTP恳求,这样客户端(一般来说是IE, Firefox,Chrome这样的浏览器)就能够通过HTTP协议来获取服务器上的网页(HTML格式)、文档(PDF格式)、音频(MP4格式)、视频(MOV格式)等等资源。下图描写的就是这一过程: 不仅仅是Apache HTTP Server和Nginx,绝大多数编程语言所包含的类库中也都实现了简略的HTTP服务器方便开发者应用: HttpServer (Java HTTP Server ) Python SimpleHTTPServer 应用这些类库能够非常容易的运行一个HTTP服务器,它们都能够通过绑定IP地址并监听tcp端口来供给HTTP服务。 Apache Tomcat则是Apache基金会下的另外一个项目,与Apache HTTP Server相比,Tomcat能够动态的生成资源并返回到客户端。Apache HTTP Server和Nginx都能够将某一个文本文件的内容通过HTTP协议返回到客户端,但是这个文本文件的内容是固定的——也就是说无论何时、任何人访问它得到的内容都是完整雷同的,这样的资源我们称之为静态资源。动态资源则与之相反,在不同的时间、不同的客户端访问得到的内容是不同的,例如: 包含显示当前时间的页面 显示当前IP地址的页面 Apache HTTP Server和Nginx本身不支撑生成动态页面,但它们可以通过其他模块来支撑(例如通过Shell、PHP、Python脚本程序来动态生成内容)。 如果想要应用Java程序来动态生成资源内容,应用这一类HTTP服务器很难做到。Java Servlet技巧以及衍生的Java Server Pages技巧可以让Java程序也具有处理HTTP恳求并且返回内容(由程序动态把持)的能力,Tomcat正是支撑运行Servlet/JSP利用程序的容器(Container): Tomcat运行在JVM之上,它和HTTP服务器一样,绑定IP地址并监听TCP端口,同时还包含以下责备: 管理Servlet程序的生命周期 将URL映射到指定的Servlet进行处理与Servlet程序合作处理HTTP恳求——根据HTTP恳求生HttpServletResponse对象并传递给Servlet进行处理,将Servlet中的HttpServletResponse对象生成的内容返回给浏览器虽然Tomcat也可以认为是HTTP服务器,但通常它仍然会和Nginx配合在一起应用: 动静态资源分别——运用Nginx的反向代理功效分发恳求:所有动态资源的恳求交给Tomcat,而静态资源的恳求(例如图片、视频、CSS、JavaScript文件等)则直接由Nginx返回到浏览器,这样能大大减轻Tomcat的压力。
|







关注官方微信