硬件服务器和应用服务器、Web服务器有什么区别?
1 硬件服务器
硬件服务器是一种专门用来存储数据和资源的机器,其主要功能是运行操作系统和管理硬件资源。硬件服务器是一种结构完整的计算机系统,包括主板、CPU、内存、存储设备、网络设备等配件,通常用于存储大量数据和处理大量并发请求。
2 应用服务器
应用服务器是一种软件系统,用于处理和管理应用程序的请求和响应。它运行在硬件服务器上,为应用程序提供必要的服务和支持,包括事务处理、数据持久化、安全性、负载均衡等功能。应用服务器通常使用Java、Net等开发平台,支持多种Web协议和网络通信方式。
3 Web服务器
Web服务器是一种软件系统,用于提供Web服务和处理HTTP请求和响应。它运行在硬件服务器上,为Web应用程序提供必要的服务和支持,包括HTTP协议处理、静态资源管理、动态脚本处理、缓存管理、负载均衡等功能。Web服务器通常使用Apache、IIS等软件实现,支持多种Web协议和网络通信方式。
综上所述,硬件服务器、应用服务器、Web服务器都是重要的服务器类型,它们各自有不同的功能和特点。硬件服务器主要提供硬件资源管理和存储服务,应用服务器提供应用程序支持和管理服务,Web服务器则主要负责Web服务和HTTP通信。在实际应用中,这些服务器通常需要相互协作,组成一个完整的服务器系统,为客户端提供高效、稳定的服务。
你好我来解答下你的问题
所谓的WEB服务器其实就是网站服务器它是在IDC机房运行主要是为网站的后台提供支撑以及数据处理的网络服务器用户在本地通过IP远程连接操作而且断开连接以后服务器一样是二十四小时不间断运行为网站提供后台服务它所用的网站访问端口是80
海腾数据杨闯为你解答若有WEB服务器问题需要帮忙的可以找我
51各种形状和尺寸的Web服务器
Web服务器会对HTTP请求进行处理并提供响应。术语“Web服务器”可以用来表示Web服务器的软件,也可以用来表示提供Web页面的特定设备或计算机。
Web服务器有着不同的风格、形状和尺寸。有普通的10行Perl脚本的Web服务器、50MB的安全商用引擎以及极小的卡上服务器。但不管功能有何差异,所有的 Web服务器都能够接收请求资源的 HTTP请求,将内容回送给客户端(参见图1-5)。
511Web服务器的实现
Web服务器实现了HTTP和相关的TCP连接处理。负责管理Web服务器提供的资源,以及对Web服务器的配置、控制及扩展方面的管理。
Web服务器逻辑实现了HTTP 协议、管理着Web资源,并负责提供Web服务器的管理功能。Web服务器逻辑和操作系统共同负责管理TCP连接。底层操作系统负责管理底层计算机系统的硬件细节,并提供了TCP/IP网络支持、负责装载Web资源的文件系统以及控制当前计算活动的进程管理功能。
53实际的Web服务器会做些什么
例5-1显示的 Perl服务器是一个Web服务器的小例子。最先进的商用Web服务器要比它复杂得多,但它们确实执行了几项同样的任务,如图5-3所示。
(1)建立连接一—接受一个客户端连接,或者如果不希望与这个客户端建立连接,就
将其关闭。
(2)接收请求——从网络中读取一条HTTP请求报文。(3)处理请求——对请求报文进行解释,并采取行动。(4)访问资源-———访问报文中指定的资源。
(5)构建响应——创建带有正确首部的 HTTP响应报文。(6)发送响应——将响应回送给客户端。
(7)记录事务处理过程—-将与已完成事务有关的内容记录在一个日志文件中。
54第一步——接受客户端连接
如果客户端已经打开了一条到服务器的持久连接,可以使用那条连接来发送它的请求。否则,客户端需要打开一条新的到服务器的连接(回顾第4章,复习一下HTTP的连接管理技术)。
541处理新连接
客户端请求一条到Web服务器的TCP连接时,Web服务器会建立连接,判断连接的另一端是哪个客户端,从TCP连接中将IP地址解析出来。'一旦新连接建立起来
并被接受,服务器就会将新连接添加到其现存Web服务器连接列表中,做好监视连接上数据传输的准备。
Web服务器可以随意拒绝或立即关闭任意一条连接。有些Web服务器会因为客户端IP地址或主机名是未认证的,或者因为它是已知的恶意客户端而关闭连接。Web服务器也可以使用其他识别技术。
542客户端主机名识别
可以用“反向 DNS”对大部分Web服务器进行配置,以便将客户端IP地址转换成客户端主机名。Web服务器可以将客户端主机名用于详细的访问控制和日志记录。但要注意的是,主机名查找可能会花费很长时间,这样会降低Web事务处理的速度。很多大容量Web服务器要么会禁止主机名解析,要么只允许对特定内容进行解析。
可以用配置指令HostnameLookups启用Apache的主机查找功能。比如,例5-2中的Apache配置指令就只打开了HTML和CGI资源的主机名解析功能。
例5-2配置Apache,为 HTML和CGI资源查找主机名
HostnameLookups off
<Files ~" - 《html |htmlcgi)$">
HostnameLookups on
</Files>
55第二步—接收请求报文
连接上有数据到达时,Web服务器会从网络连接中读取数据,并将请求报文中的内容解析出来(参见图5-5)。
解析请求报文时,Web服务器会:
·解析请求行,查找请求方法、指定的资源标识符(URI)以及版本号,3各项之
间由一个空格分隔,并以一个回车换行(CRLF)序列作为行的结束,“
·读取以CRLF结尾的报文首部;
检测到以CRLF结尾的、标识首部结束的空行(如果有的话)﹔
·如果有的话(长度由content-Length首部指定),读取请求主体。
解析请求报文时,Web服务器会不定期地从网络上接收输入数据。网络连接可能随时都会出现延迟。Web服务器需要从网络中读取数据,将部分报文数据临时存储在内存中,直到收到足以进行解析的数据并理解其意义为止。
551 报文的内部表示法
有些Web服务器还会用便于进行报文操作的内部数据结构来存储请求报文。比如,数据结构中可能包含有指向请求报文中各个片段的指针及其长度,这样就可以将这些首部存放在一个快速查询表中,以便快速访问特定首部的具体值了(参见图5-6)。
552连接的输入/输出处理结构
高性能的 Web服务器能够同时支持数千条连接。这些连接使得服务器可以与世界各地的客户端进行通信,每个客户端都向服务器打开了一条或多条连接。某些连接可能在快速地向Web服务器发送请求,而其他一些连接则可能在慢慢发送,或者不经常发送请求,还有一些可能是空闲的,安静地等待着将来可能出现的动作。
因为请求可能会在任意时刻到达,所以Web服务器会不停地观察有无新的Web请求。不同的Web服务器结构会以不同的方式为请求服务,如图5-7所示。
·单线程Web服务器(参见图5-7a)
单线程的Web服务器一次只处理一个请求,直到其完成为止。一个事务处理结束之后,才去处理下一条连接。这种结构易于实现,但在处理过程中,所有其他连接都会被忽略。这样会造成严重的性能问题,只适用于低负荷的服务器,以及type-o-serve这样的诊断工具。
·多进程及多线程Web服务器(参见图5-7b)
多进程和多线程Web服务器用多个进程,或更高效的线程同时对请求进行处理。3可以根据需要创建,或者预先创建一些线程/进程。°有些服务器会为每条连接分配一个线程/进程,但当服务器同时要处理成百、上千,甚至数以万计的连接时,需要的进程或线程数量可能会消耗太多的内存或系统资源。因此,很多多线程Web服务器都会对线程/进程的最大数量进行限制。
·复用I/O的服务器(参见图5-7c)
为了支持大量的连接,很多Web服务器都采用了复用结构。在复用结构中,要同时监视所有连接上的活动。当连接的状态发生变化时(比如,有数据可用,或出现错误时),就对那条连接进行少量的处理,处理结束之后,将连接返回到开放连接列表中,等待下一次状态变化。只有在有事情可做时才会对连接进行处理,在空闲连接上等待的时候并不会绑定线程和进程。
·复用的多线程Web服务器(参见图5-7d)
有些系统会将多线程和复用功能结合在一起,以利用计算机平台上的多个CPU多个线程(通常是一个物理处理器)中的每一个都在观察打开的连接(或打开的连接中的一个子集),并对每条连接执行少量的任务。
56第三步———处理请求
一旦Web服务器收到了请求,就可以根据方法、资源、首部和可选的主体部分来对请求进行处理了。
有些方法(比如POST)要求请求报文中必须带有实体主体部分的数据。其他一些方法(比如OPTIONS)允许有请求的主体部分,也允许没有。少数方法(比如GET)禁止在请求报文中包含实体的主体数据。
这里我们并不对请求的具体处理方式进行讨论,因为本书其余大多数章节都在讨论这个问题。
57第四步——-对资源的映射及访问
Web 服务器是资源服务器。它们负责发送预先创建好的内容,比如HTML页面或JPEG ,以及运行在服务器上的资源生成程序所产生的动态内容。
571 docroot
Web服务器支持各种不同类型的资源映射,但最简单的资源映射形式就是用请求URI作为名字来访问Web服务器文件系统中的文件。通常,Web服务器的文件系统中会有一个特殊的文件夹专门用于存放Web内容。这个文件夹被称为文档的根目录(document root,或docroot)。Web服务器从请求报文中获取URI,并将其附加在文档根目录的后面。
在图5-8中,有一条对/specials/saw-bladegif 的请求到达。这个例子中Web服务器的文档根目录为/us/local/httpd/files。Web服务器会返回文件/usr/local/httpd/files/specials/saw-bladegif。
在配置文件httpdconf中添加一个 DocumentRoot行就可以为Apache Web服务器设置文档的根目录了:
DocumentRoot /usr/ local/httpd/files
服务器要注意,不能让相对URL退到docroot之外,将文件系统的其余部分暴露出来。比如,大多数成熟的Web服务器都不允许这样的URI看到Joe的五金商店文档根目录上一级的文件:
http://wwwjoes-hardwarecom/
583重定向
Web服务器有时会返回重定向响应而不是成功的报文。Web服务器可以将浏览器重定向到其他地方来执行请求。重定向响应由返回码3XX说明。Location响应首部包含了内容的新地址或优选地址的URI。重定向可用于下列情况。
·永久删除的资源
资源可能已经被移动到了新的位置,或者被重新命名,有了一个新的URL。Web服务器可以告诉客户端资源已经被重命名了,这样客户端就可以在从新地址获取资源之前,更新书签之类的信息了。状态码301 Moved Permanently就用于此类重定向。·临时删除的资源
如果资源被临时移走或重命名了,服务器可能希望将客户端重定向到新的位置上去。但由于重命名是临时的,所以服务器希望客户端将来还可以回头去使用老的URL,不要对书签进行更新。状态码303 See Other以及状态码307 TemporaryRedirect就用于此类重定向。
以jsp为例吧。
用户向web服务器以HTTP请求的形式请求资源。HTTP请求中有几个重要的参数,一个是请求方法GET还是POST还是其它,请求的URL是Samplejsp。
服务器得到这些请求后对参数进行分析,如/Samplejsp的URL请求,这个请求一般会映射一个jsp页面或servlet,服务器会把浏览器的HTTP请求打包提供给indexjsp来运行(注意,jsp最终会被编译为可运行的类文件,它的任务是说明向浏览器发送什么数据)
jsp或servlet运行的结果就是向浏览器回送一次HTTP回应,这个回应也包括一些参数和最后的正文,正文的内容就是html语言了。浏览器对html进行解释,html正文里还有一些资源如如<img src="" />,浏览器会再一次对服务器进行请求,不过对于这些静态内容,服务器是会直接返回的(不会经过jsp或servlet的)
一次完整的动态web交互就完成了 :HTTP请求-》服务器处理-》HTTP回应
如果觉得这个是那么回事就给点分撒,呵呵
第一种方法 在tomcat中的conf目录中 在server xml中的 <host/>节点中添加
<Context path= /hello docBase= D:\eclipse forwebtools\workspace\hello\WebRoot debug= privileged= true >
</Context>
至于Context 节点属性 可详细见相关文档
第二种方法 将web项目文件件拷贝到webapps 目录中
第三种方法 很灵活 在conf目录中 新建 Catalina(注意大小写)\localhost目录 在该目录中新建一个xml文件 名字可以随意取 只要和当前文件中的文件名不重复就行了 该xml文件的内容为
<Context path= /hello docBase= D:\eclipse forwebtools\workspace\hello\WebRoot debug= privileged= true >
</Context>
第 个方法有个优点 可以定义别名 服务器端运行的项目名称为path 外部访问的URL则使用XML的文件名 这个方法很方便的隐藏了项目的名称 对一些项目名称被固定不能更换 但外部访问时又想换个路径 非常有效
第 还有优点 可以定义一些个性配置 如数据源的配置等
还有一篇详细的
直接放到Webapps目录下
Tomcat的Webapps目录是Tomcat默认的应用目录 当服务器启动时 会加载所有这个目录下的应用 也可以将JSP程序打包成一个war包放在目录下 服务器会自动解开这个war包 并在这个目录下生成一个同名的文件夹 一个war包就是有特性格式的jar包 它是将一个Web程序的所有内容进行压缩得到 具体如何打包 可以使用许多开发工具的IDE环境 如Eclipse NetBeans ant JBuilder等 也可以用cmd 命令 jar cvf applicationname war package
甚至可以在程序执行中打包
try{
string strjavahome = system getproperty( java home )
strjavahome = strjavahome substring( strjavahome lastindexof(\\))+ \\bin\\ ;
runtime getruntime() exec( cmd /c start +strjavahome+ jar cvf hello war c:\\tomcat \\webapps\\root\\ )
}
catch(exception e){system out println(e) }
webapps这个默认的应用目录也是可以改变 打开Tomcat的conf目录下的server xml文件 找到下面内容
<Host name= localhost debug= appBase= webapps unpackWARs= true autoDeloy= true xmlValidation= falase xmlNamespaceAware= false >
在server xml中指定
在Tomcat的配置文件中 一个Web应用就是一个特定的Context 可以通过在server xml中新建Context里部署一个JSP应用程序 打开server xml文件 在Host标签内建一个Context 内容如下
<Context path= /myapp reloadable= true docBase= D:\myapp workDir= D:\myapp\work />
其中path是虚拟路径 docBase是JSP应用程序的物理路径 workDir是这个应用的工作目录 存放运行是生成的于这个应用相关的文件
创建一个Context文件
以上两种方法 Web应用被服务器加载后都会在Tomcat的conf\catalina\localhost目录下生成一个XML文件 其内容如下
<Context path= /admin docBase= ${catalina home}/server/webapps/admin debug= privileged= true ></Context>
可以看出 文件中描述一个应用程序的Context信息 其内容和server xml中的Context信息格式是一致的 文件名便是虚拟目录名 您可以直接建立这样的一个xml文件 放在Tomcat的conf\catalina\localhost目录下 例子如下
注意 删除一个Web应用同时也要删除webapps下相应的文件夹祸server xml中相应的Context 还要将Tomcat的conf
\catalina\localhost目录下相应的xml文件删除 否则Tomcat仍会岸配置去加载……
tomcat部署web应用主要有以下几种方式
)拷贝你的WAR文件或者你的web应用文件夹(包括该web的所有内容)到$CATALINA_BASE/webapps目录下
)为你的web服务建立一个只包括context内容的XML片断文件 并把该文件放到$CATALINA_BASE/webapps目录下 这个web应用本身可以存储在硬盘上的任何地方 这种context片断提供了一种便利的方法来部署web应用 你不需要编辑server xml 除非你想改变缺省的部署特性 安装一个新的web应用时不需要重启动Tomcat
)同方法 只是将context片断放在CATALINA_BASE\conf\Catalina\localhost目录下 这种方法比方法 >要有效 笔者经过多次实验发现方法 不如后面这种方法好用 前者多次出现系统打不开的情况
)直接在server xml中</Host>前加上Context片断 使用这种方法时 tomcat会自动在CATALINA_BASE\conf\Catalina\localhost目录下生成一个文件片断 方法同方法 具有同样效果 这种方式需要将ROOT目录删除才行
另外 为了让tomcat只运行conf/server xml中指定的web应用 可以有以下几种办法
实现一
)将要部署的WEB应用放在webapps以外的路径 并在server xml相应的context中的docBase指定
)删除webapps中的所有文件夹 以及conf/catalina/localhost下所有xml文件
注 webapps是server xml中的Host元素的appBase属性的值
实现二
)修改server xml中Host元素的属性 添加或修改 deployXML= false deployOnStartup= false autoDeploy= false
)含义
lishixinzhi/Article/program/Java/ky/201311/28718
运行php程序,需要安装环境,这个需要根据你的电脑系统或服务器系统来定义的,如果是windows系统则去下载一个wamp安装包即可,如果是linux系统则下载lamp环境或者lnmp也行,安装后将你的php程序放到你安装的www目录下面,浏览器访问即可
创建一个 WEB 服务器
NetBox 的一大功能就是内置支持了 HttpServer 和 asp。下面就按步骤建立一个以服务方式运行的 WEB 服务器。
第一步:创建 WEB 服务器
由于 NetBox 提供了 HttpServer 对象,所以建立一个新的 HttpServer 并且启动、停止、退出,自然便是由 HttpServer 对象来实现,mainbox 的代码也就比较简单了:
Set Console = ShellConsole
Set httpd = CreateObject("NetBoxHttpServer")
If httpdCreate("", 80) = 0 Then
httpdStart
ConsoleReadLine
httpdStop
httpdClose
End If
Set httpd = Nothing
在上面的代码中,先创建一个新的 HttpServer,然后在所有的本机地址的 80 端口创建一个服务器,如果创建成功,则启动服务器,等待用户在控制台上输入回车后停止并关闭服务器。
运行这个程序,如果当前系统中未安装其他 Web 服务器,则此程序会显示控制台并等待回车,否则将直接退出。呵,我们的第一个程序都是很拙劣的。没有关系,我们一步一步来。
如果成功运行了程序,便可以用浏览器访问了,由于服务器装在本机,所以打开浏览器,在地址栏输入“http://localhost/”,哈,结果出来了,不过很不好看:
418 Host Not Found
不管想访问什么,都只会是这个结果。这样的结果显然不能满足要求,所以我们需要改进我们的 Web 服务器。
第二步:添加虚拟主机
前面我们建立的服务器之所以总是返回禁止访问,原因是没有为服务器建立主机信息。所以我们修改代码,使用 AddHost 方法增加主机信息的部分:
Set Console = ShellConsole
Set httpd = CreateObject("NetBoxHttpServer")
If httpdCreate("", 80) = 0 Then
httpdAddHost "", "\wwwroot"
httpdStart
ConsoleReadLine
httpdStop
httpdClose
End If
Set httpd = Nothing
在 NetBox 执行目录建立一个子目录 wwwroot,然后复制一些网页进去。我们再来看看效果如何。执行程序并再次访问“http://localhost/”,结果居然还是“403 Forbidden”。再访问 wwwroot 目录中已有的文件,哈哈,出现正确内容了。所以,实际上主机已经建立出来,但是未给主机提供缺省文件名。
第三步:添加缺省文件
为了让主机知道当用户访问目录时向用户返回的文件,需要使用 AddDefault 方法为主机添加缺省文件名,修改代码如下:
Set Console = ShellConsole
Set httpd = CreateObject("NetBoxHttpServer")
If httpdCreate("", 80) = 0 Then
Set host = httpdAddHost("", "\wwwroot")
hostAddDefault "defaulthtm"
httpdStart
ConsoleReadLine
httpdStop
httpdClose
End If
Set httpd = Nothing
我们再访问“http://localhost/”的时候,会发现不再显示禁止访问,而是开始出现了缺省页面的内容。如果给定的缺省文件不存在,则返回“404 File Not Found”。
第四步:支持服务器脚本
上面的步骤建立出来的 Web 服务器,是一个纯静态文件的服务器,是无法执行服务器脚本程序的,为了让我们的 Web 服务器能够理解服务器端脚本程序,需要修改 EnableScript 属性,同时为了让服务器能够使用脚本程序做为缺省文件,还需要再添加一个缺省文件,下面是新修改的代码:
Set Console = ShellConsole
Set httpd = CreateObject("NetBoxHttpServer")
If httpdCreate("", 80) = 0 Then
Set host = httpdAddHost("", "\wwwroot")
hostEnableScript = true
hostAddDefault "defaultasp"
hostAddDefault "defaulthtm"
httpdStart
ConsoleReadLine
httpdStop
httpdClose
End If
Set httpd = Nothing
接下来,我们就可以在 wwwroot 目录里建立我们的 asp 脚本程序了,建立 testasp:
<%ResponseWrite "Hello"%>
NetBox 也支持服务器 box 程序,在 wwwroot 目录中建立 testbox:
ResponseWrite "Hello"
第五步:以服务方式运行
到目前为止,已经有一个相对完整的 Web 服务器程序了,下面我们需要将这个服务器改写为系统服务程序,可以将其安装成为一个系统服务,更加便于运行维护。改写成为服务程序需要使用 Service 对象。
下面便是一个完整的 Web 服务程序的代码,关于 Service 对象的更多信息请参阅手册相关内容。
Dim httpd
ShellServiceRunService "NBWeb", "NetBox Web Server", "NetBox Http Server Sample"
---- Service Event ---
Sub OnServiceStart()
Set httpd = CreateObject("NetBoxHttpServer")
If httpdCreate("", 80) = 0 Then
Set host = httpdAddHost("", "\wwwroot")
hostEnableScript = true
hostAddDefault "defaultasp"
hostAddDefault "defaulthtm"
httpdStart
else
ShellQuit 0
end if
End Sub
Sub OnServiceStop()
httpdClose
End Sub
Sub OnServicePause()
httpdStop
End Sub
Sub OnServiceResume()
httpdStart
End Sub
总结
实现一个完整的 Web 服务程序,需要 HttpServer,HttpServerHost,Service 三个对象的支持,HttpServer 负责建立服务器并控制服务器的运行状态,HttpServerHost 负责建立主机信息, Service 则负责完成与服务程序相关的操作。
0条评论