【问题标题】:difference between socket and web server example套接字和 Web 服务器示例之间的区别
【发布时间】:2016-08-02 05:10:32
【问题描述】:

基于 Socket 的示例,取自 nodejs 网站

var server = net.createServer((socket) => {
  socket.end('goodbye\n');
}).on('error', (err) => {
  // handle errors here
  throw err;
});

// grab a random port.
server.listen(() => {
  address = server.address();
  console.log('opened server on %j', address);
});

网络服务器

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

我的问题是两者有什么区别? Web Server 是在 Socket 示例之上编程的东西,具有附加功能,例如填充不同属性的请求和响应,还是它们是不同类型的通信协议?套接字是 Web 服务器示例的底层工作吗?

【问题讨论】:

标签: node.js sockets webserver


【解决方案1】:

我的问题是两者有什么区别?

Web 服务器是理解 http 协议的特定类型的服务器。

普通的套接字服务器没有特定的协议。您必须为您发送/接收的字节创建自己的含义/数据格式。

两者都是服务器,并在特定端口上侦听传入的 TCP 连接。不同之处在于每个协议都可以理解和通信。

为了说明其他一些例子,ftp 服务器会理解 ftp 协议,webSocket 服务器会理解 webSocket 协议,SMTP 服务器会理解 SMTP 协议,IMAP 服务器会理解 IMAP 协议等等......

Web 服务器是在 Socket 示例之上编程的吗? 诸如请求和响应之类的附加功能填充了不同的 属性还是它们是不同类型的通信协议?

是的,Web 服务器建立在套接字之上,并理解使用 http 协议在该套接字上发送的数据。

套接字是在 Web 服务器的底层工作吗 例子?

是的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2013-09-18
    • 2011-08-21
    • 2014-12-01
    • 2012-09-23
    • 2011-04-26
    • 2014-10-22
    相关资源
    最近更新 更多