什么是Web server

Web server

  1. 在硬件部分,一个网络服务器是一个用来存储网站的组成文件(好比说 HTML 文档,图片,CSS 样式表,和 JavaScript 文件)以及交付它们到终端用户的设备的计算机。它跟互联网链接并能够经过域名像 mozilla.org 来被访问。css

  2. 在软件部分,一个网络服务器包括几个控制网络用户如何访问托管文件的部分,至少是一个 HTTP 服务器 [HTTP server]。一个 HTTP 服务器是一个能理解URLs (网络地址) 和 HTTP (你的浏览器查看网页时所用的协议) 的软件。html

Web server 在软件部分它经过HTTP协议来提供静态页面内容和图片服务.在好久以前,大多数内容都是静态的,而且HTTP 1.0只是一种传送文件的方式。但在不久后web服务器提供了CGI功能。这意味着咱们能够为每一个web请求启动一个进程来产生动态内容。如今,HTTP协议已经很成熟了而且web服务器变得更加复杂,拥有了像缓存、安全和session管理这些附加功能。到如今web server 和 application server其实愈来愈趋向统一.nginx

静态和动态

粗略地说,一个服务器能够提供静态或者动态的内容。“静态” 意味着 “保持原样地提供”.“动态” 意味着服务器会处理内容甚至实时地从一个数据库中产生它。这个解决方案提供了更多的灵活性.web

静态网络服务器(static web server),或者堆栈,由一个计算机(硬件)和一个 HTTP 服务器(软件)组成。咱们称它为 “静态” 由于这个服务器把它的托管文件 “保持原样” 地传送到你的浏览器。数据库

动态网络服务器(dynamic web server) 由一个静态的网络服务器加上额外的软件组成,最广泛的是一个应用服务器 [application server] 和一个数据库 [database]。咱们称它为 “动态” 由于这个应用服务器会在经过 HTTP 服务器传送托管文件到你的浏览器前,对这些托管文件进行更新。apache

tomcat 与 nginx,apache的区别

严格的来讲,Apache/Nginx 应该叫作「HTTP Server」;而 Tomcat 则是一个「Application Server」,或者更准确的来讲,是一个「Servlet/JSP」应用的容器.后端

一个 HTTP Server 关心的是 HTTP 协议层面的传输和访问控制,因此在 Apache/Nginx 上你能够看到代理、负载均衡等功能。客户端经过 HTTP Server 访问服务器上存储的资源(HTML 文件、图片文件等等)。经过 CGI 技术,也能够将处理过的内容经过 HTTP Server 分发,可是一个 HTTP Server 始终只是把服务器上的文件如实的经过 HTTP 协议传输给客户端。浏览器

而应用服务器,则是一个应用执行的容器。它首先须要支持开发语言的 Runtime(对于 Tomcat 来讲,就是 Java),保证应用可以在应用服务器上正常运行。其次,须要支持应用相关的规范,例如类库、安全方面的特性。对于 Tomcat 来讲,就是须要提供 JSP/Sevlet 运行须要的标准类库、Interface 等。为了方便,应用服务器每每也会集成 HTTP Server 的功能,可是不如专业的 HTTP Server 那么强大,因此应用服务器每每是运行在 HTTP Server 的背后,执行应用,将动态的内容转化为静态的内容以后,经过 HTTP Server 分发到客户端。缓存

先后端分离的开发方式

如今咱们公司的业务都是经过Nginx托管静态的资源,(包括html, 图片, css等).浏览器获取到相应的静态资源后, 经过Ajax向咱们的业务后台(Tomcat Application server)发送请求获取数据动态的生成页面. 这里Nginx就是一个http Server, Tomact就是Application server.tomcat

相关文章
相关标签/搜索