node——简单的服务器启动+乱码问题解决,响应报文头

这个是一个比较简单的代码

// 1。加载hrrp模块

var http=require('http');

// 2.创建一个http服务对象
var server=http.createServer();

// 3.监听用户请求的事件(request) 
server.on('request',function(request,response){
    response.write('Hello World');//要响应
    // 对于每一个请求服务器必须结束响应,否则客户端(浏览器)会一直等待服务器响应
    response.end();
 
});

// 4.启动服务
server.listen(8080,function(){
    console.log('服务器启动,请访问:http://localhost:8080');
});

在第三步中:

request里面包含了用户请求中所有的内容,通过request可以获取用户提交过来的所有数据
response用来向用户响应所有数据,当服务器要想客户端响应数据的时候必须使用response对象
有了request对象和response对象,就可以获取用户提交的数据,也可以向用户响应数据了

这四步就是基本的服务器启动

这个时候浏览器会监听8080端口,输入http://localhost:8080,就可以看到响应Hello World

这里还有一个问题,如果我们访问http://localhost:8080/xx,它的显示如下:

这是因为在第三步写了response.write('Hello World');不论访问的什么,服务器响应的都会是Hello World,所以想要有不同响应,需要自己写代码去判断。

这个时候我们还可以改一下,加入一点中文

response.write('Hello World!!你好世界');

问题就来了,出现了乱码,这是因为编译器默认编码为UTF-8,而浏览器却不这么认为。所以我们解决乱码的思路为:服务器通过设置http响应报文头。告诉浏览器使用相应的编码来解析网页,避免出现乱码的情况

response.setHeader('Content-Type','text/ plain;charset=utf-8');
response.write('Hello World!!你好世界');

我们在代码里加入请求头后,浏览器可以正常识别中文了

这时候再变一下

response.setHeader('Content-Type','text/plain;charset=utf-8');
response.write('<h1>Hello World!!你好世界</h1>');

浏览器原原本本的将内容给出,这是因为text/plain告诉浏览器这个是纯文本的,如果我们希望浏览器可以将内容识别为html,并解析出来,可以这样写text/html,text/html告诉浏览器这个是html

response.setHeader('Content-Type','text/html;charset=utf-8');
response.write('<h1>Hello World!!你好世界</h1>');

总的来说:http响应报文头告诉浏览器一些其他相关信息

 

转载于:https://www.cnblogs.com/ellen-mylife/p/10835020.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值