首页服务器http 文件服务器?“WEB服务器”和“文件服务器”是什么意思

http 文件服务器?“WEB服务器”和“文件服务器”是什么意思

编程之家2023-10-2263次浏览

大家好,今天来为大家解答http 文件服务器这个问题的一些问题点,包括“WEB服务器”和“文件服务器”是什么意思也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

http 文件服务器?“WEB服务器”和“文件服务器”是什么意思

怎样用电脑访问文件服务器的共享文件

小编整理了以下几种方法供大家参考~

方法一:

打开控制面板,点击网络和共享中心;更改高级共享设置,启用网络发现。打开我的电脑点击添加”映射网络驱动器”选择驱动器名称,输入远程文件夹位置(\\远程电脑的ip\\共享文件夹名称);点击完成即可

方法二:

如果是局域网的网上邻居,可以直接使用共享然后通过网上邻居=>查看工作组计算机访问的如果找不到可以用\\计算机名(如\\My computer内网IP也可以如\\192.168.1.2)访问到共享文件夹。

http 文件服务器?“WEB服务器”和“文件服务器”是什么意思

方法三:

可以在局域网专门建立一个文件服务器,将需要共享的文件都放置于此文件服务器上。Windows自带的文件共享服务设置繁琐、复杂,推荐使用第三方服务器软件,这里我们以HSF文件服务器软件为例。文件服务器的IP地址设置为:192.168.0.103,并且共享了一个叫做“电影”的文件夹。在访问者计算机IE中输入http://192.168.0.103,即可看到共享的目录。除了使用默认的80端口以外,还可以对端口进行设置,这样在进行访问文件服务器的时候在IP地址后还需加上相对应的端口号。

“WEB服务器”和“文件服务器”是什么意思

Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,[1]也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache Nginx IIS。

Web服务器是可以向发出请求的浏览器提供文档的程序。

1、服务器是一种被动程序:只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应

http 文件服务器?“WEB服务器”和“文件服务器”是什么意思

2、最常用的Web服务器是Apache和Microsoft的Internet信息服务器(Internet Information Services,IIS)。

3、Internet上的服务器也称为Web服务器,是一台在Internet上具有独立IP地址的计算机,可以向Internet上的客户机提供WWW、Email和FTP等各种Internet服务。

4、Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。

Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。

文件服务器是一种器件,它的功能就是向服务器提供文件。它加强了存储器的功能,简化了网络数据的管理。它一则改善了系统的性能,提高了数据的可用性,二则减少了管理的复杂程度,降低了运营费用。

在客机与服务器模式下,文件服务器(file server)是一台对中央存储和数据文件管理负责的计算机,这样在同一网络中的其他计算机就可以访问这些文件。文件服务器允许用户在网络上共享信息,而不用通过软磁盘或一些其它外部存储设备来物理地移动文件。任何计算机都能被设置为主机,并作为文件服务器(file server)运行。最简单的形式是,文件服务器可以是一台普通的个人计算机,它处理文件要求并在网络中发送它们。在更复杂的网络中,文件服务器也可以是一台专门的网络附加存储(NAS)设备,它也可以作为其他计算机的远程硬盘驱动器来运行,并允许网络中的人像在他们自己的硬盘中一样在服务器中存储文件

文件服务器(fs服务器),具有分时系统文件管理的全部功能,提供网络用户访问文件、目录的并发控制和安全保密措施的局域网(LAN)服务器。

在计算机局域网中,以文件数据共享为目标,需要将供多台计算机共享的文件存放于一台计算机中。这台计算机就被称为文件服务器。

文件服务器具有分时系统管理的全部功能,能够对全网统一管理,能够提供网络用户访问文件、目录的并发控制和安全保密措施。

“文件服务器“英文是File server语境【文件系统】

一台特殊功能的计算机,其主要目的是向客户机提供文件服务。文件服务器可以是一台能够运行其他应用的通用计算机,也可以是一台专门提供文件服务的专用计算机。

如何使用node.js创建http文件服务器

这次给大家带来如何使用node.js创建http文件服务器,使用node.js创建http文件服务器的注意事项有哪些,下面就是实战案例,一起来看一下。

为了读取文件,我们会用到File System模块(名字是”fs”),Stream,我们还要分析URL,区别HTTP方法,还会用到EventEmitter。

文件服务器FileServer的代码

先上代码吧,依然是简单的:

//引入http模块

var http= require("http");

var fs= require("fs");

//创建server,指定处理客户端请求的函数

http.createServer(

function(request, response){

//判断HTTP方法,只处理GET

if(request.method!="GET"){

response.writeHead(403);

response.end();

return null;

}

//此处也可使用URL模块来分析URL(https://nodejs.org/api/url.html)

var sep= request.url.indexOf('?');

var filePath= sep< 0? request.url: request.url.slice(0, sep);

console.log("GET file:"+ filePath);

//当文件存在时发送数据给客户端,否则404

var fileStat= fs.stat("."+filePath,

function(err, stats){

if(err){

response.writeHead(404);

response.end();

return null;

}

//TODO:Content-Type应该根据文件类型设置

response.writeHead(200,{"Content-Type":"text/plain","Content-Length": stats.size});

//使用Stream

var stream= fs.createReadStream("."+filePath);

stream.on('data',function(chunk){

response.write(chunk);

});

stream.on('end',function(){

response.end();

});

stream.on('error',function(){

response.end();

});

}

);

}

).listen(8000);

console.log("Hello World start listen on port 8000");最大的变化,就在传递给createServer方法的参数了。

我们根据request.method作了判断,不是GET就返回403。如果是呢,就判断文件是否存在,不存在,返回404,存在就读取数据写给客户端。逻辑就是这么简单。下面我们来介绍用到的新知识。

File System

要使用FileSystem,得用require引入fs模块,就如前面代码里那样。File System的API老长老长了,看这里吧:https://nodejs.org/api/fs.html。我们只说用到的特性。

获取文件状态

在我们的FileServer里,收到和客户端请求时先通过fs.stat()方法获取文件状态。fs.stat()方法原型如下:

fs.stat(path, callback)第一个参数是文件路径,第二个参数是回调函数。fs.stat()方法是异步的,结果通过回调函数callback返回。callback的原型如下:

function(err, stats)第一个参数指示是否出现了错误,第二个参数是一个对象,类型是fs.Stats,保存了文件的状态信息,比如大小、创建时间、修改时间等。

FileServer的代码获取到文件状态后,读取大小,调用http.ServerResponse的writeHead方法,设置HTTP状态码为200,还设置了Content-Length头部。代码如下:

代码如下:

response.writeHead(200,{"Content-Type":"text/plain","Content-Length": stats.size})

ReadStream

接下来呢,我们调用fs.createReadStream创建了一个ReadStream对象。ReadStream是Stream,也是EventEmitter。

fs.createReadStream方法原型如下:

fs.createReadStream(path[, options])第一个参数是文件路径,第二个参数是可选的JSON对象,用来指定打开文件的一些选项,默认值如下:

{ flags:‘r',

encoding: null,

fd: null,

mode: 0666,

autoClose: true

}autoClose属性默认为true,读完文件或读取出错时,文件会被自动关闭。fd属性可以关联一个已有的文件描述符,这样就会忽略path,根据一个已经打开的文件来创建流。options还可以有start和end项,指定起、止位置,读取文件的特定区域。如果我们要实现断点续传,就需要这个了,用法类似这样:

fs.createReadStream('sample.mp4',{start: 1000, end: 10000});encoding用来指定文件的编码,这对于文本文件有特殊的意义,目前支持'utf8'、'ascii'和'base64'。

ReadStream读取数据是异步的,一块一块的读,读到一部分就发送一个data事件,数据呢,会传递给与事件关联的listener(实际上是一个回调方法)。在我们的代码里,仅仅是调用response.write把数据写给客户端。注意,可能会多次调用response.write哦。又因为我们设置了Content-Length,所以不会采用chunked编码方式。如果我们不设置Content-Length,那默认会启用chunked方式。

ReadStream读完文件时会发射end事件,出错时会发射error事件,我们监听这两个事件,简单的终止响应。

我们在示例代码中看到了stream.on这种代码,下面来解释吧。

EventEmitter

Node.js基于V8引擎实现的事件驱动IO,是其最大最棒的特色之一。有了事件机制,就可以充分利用异步IO突破单线程编程模型的性能瓶颈,使得用JavaScript作后端开发有了实际意义。

EventEmitter的基本用法

events.EventEmitter是一个简单的事件发射器的实现,具有addListener、on、once、removeListener、emit等方法,开发者可以很方便的调用这些API监听某个事件或者发射某个事件。

我们在示例中用到的fs.ReadStream就是一个EventEmitter,它实现了stream.Readable接口,而stream.Readable具有data、error、end、close、readable等事件。

通常我们使用EventEmitter的on或addListener来监听一个事件,这个时间可能会多次触发,每次触发,我们提供的回调方法都会被调用。我们示例中的代码就是这样:

stream.on('data',function(chunk){

response.write(chunk);

});Node.js的事件机制,会给某个事件关联一个回调方法列表,这样多个关注者就可以监听同一个事件。每个事件发射时,可能会带有数据和状态,这些数据是通过回调方法的参数传递出来的。那某一个特定的事件,它对应的回调方法的参数是什么样子的,则由事件定义的那个类(实例)来决定。EventEmitter的emit方法原型如下:

emitter.emit(event[, arg1][, arg2][,...])这个原型说明一个事件的回调方法可以有一个或多个参数,也可以没有参数。要想知道某个事件的回调方法是否有参数、每个参数的含义,只好去找相关的API文档。stream.Readable的data事件的参数是chunk,Buffer类型,代表读到的数据。

如果我们只想监听某个事件一次,则可以调用EventEmitter的once方法。要想移除一个事件监听器,可以调用removeListener,想移除所有,则可以调用removeAllListener。

自定义事件

Node.js的很多模块都继承自Event模块。我们自己也可以通过继承EventEmitter来实现自己的对象,添加自己的自定义事件。

这里有个简单的例子:

var util=require("util");

var events= require("events");

function Ticker(){

var self= this;

events.EventEmitter.call(this);

setInterval(function(){

self.emit("tick")

},

1000

);

}

util.inherits(Ticker, events.EventEmitter);

var ticker= new Ticker();

ticker.on("tick", function(){

console.log("tick event");

});在这个简单的例子里,我们定义了Ticker对象,通过全局方法setInterval开启了一个定时器,每隔1000毫秒发射一个名为“tick”的事件。

Node.js的工具模块封装了继承的方法,我们调用它来的inherits方法来完成Ticker对events.EventEmitter的继承。

自定义事件的使用方法,和Node.js内置模块提供的事件的用法完全一样。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

Node.js Express安装与使用详细介绍

怎样操作Node.js使用jade模板引擎

关于http 文件服务器到此分享完毕,希望能帮助到您。

服务器指令?我的世界服务器必备指令ibm服务器机柜?IBM服务器介绍