Node.js学习之Telnet

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。
它为用户提供了在本地计算机上完成远程主机工作的能力,即旨在提供双向的虚拟终端。

大多数的主流操作系统都内置了Telnet客户端。但是我的win10操作系统无法连接,我也无法解决,所以就使用win10自带的Linux Bash中的Telnet进行测试。

首先创建项目目录:telnet-test
在目录下创建server.js文件,代码如下:

// 加载依赖模块
var http = require('http');

// 创建服务器
http.createServer(function (request, response) {

    // 发送 HTTP 头部 
    // HTTP 状态值: 200 : OK
    // 内容类型: text/html
    response.writeHead(200, {'Content-Type': 'text/html'});

    // 发送响应数据 "Hello World",并对world加粗
    response.end('Hello <b>World<b>\n');
}).listen(8888);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

win + R 输入CMD,进入项目目录,输入:node server.js,结果如下:

这里写图片描述

打开浏览器,输入:http://127.0.0.1:8888/,出现如下结果说明服务器端正常。

这里写图片描述

再次点击win + R 启动CMD,输入bash,再输入:telnet 127.0.0.1 8888,结果如下:

这里写图片描述

出现上图结果说明已经正常工作了,但是服务器端的“Hello World”并没有到客户端。原因在于,要往TCP连接中写数据,必须首先创建一个HTTP请求,这就是套接字(socket)。所以在终端输入:GET / HTTP/1.1,然后按下回车两次。结果如下:

这里写图片描述

HTTP在请求和响应消息前使用头信息(header)来描述不同的消息内容。发送内容的类型(type)在Content-Type头信息中标注的。
为测试头信息,现将server.js稍作修改:

var http = require('http');
http.createServer(function (request, response) {
    response.writeHead(200);
    // 注意在world两侧将上了加粗标签
    response.end('Hello <b>World<b>\n');
}).listen(8888);
console.log('Server running at http://127.0.0.1:8888/');

再次启动Node服务,浏览器结果如下:

这里写图片描述

浏览器并没有看到富文本,原因是,HTTP客户端(浏览器)并不知道服务器发送过来的内容是什么类型,没有在头信息中加入内容类型,所以浏览器默认内容是text/plain类型,也就是普通文本类型,进而不会将它作为HTML来渲染。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值