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

// 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响应报文头告诉浏览器一些其他相关信息

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

  1. window.location.href url含中文服务器收到乱码问题解决

    中文乱码问题 window.location.href url含中文服务器收到乱码问题解决 (1).页面中先对中文进行编码. 如:window.location.href = url+"&a ...

  2. Node之Express服务器启动安装与配置

    首先安装express-generator cnpm i -g express-generator 使用express --version查看express版本 生成express服务 express ...

  3. linux服务器时间乱码问题解决

    问题现象如下: [root@ip-171-21-36-129 testcase]# date 2019Ū 08Ղ 02ɕ чǚϥ 09:44:48 UTC 解决步骤: 1.执行命令:vi /etc/s ...

  4. PHP-02.文件上传、php保存/转移上传的文件、常见的网络传输协议、请求报文及属性、响应报文及属性

    关系数组 array("key"=>"value",...) ; get没有数据大小的限制 post上传大小没有限制 不指定上传方式,默认是get 文件上 ...

  5. HTTP请求报文、响应报文

    HTTP请求报文 HTTP请求报文由3部分组成(请求行+请求头+请求体): 请求行:①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE.HEAD.OPTIONS.PUT. ...

  6. 初学Node(六)搭建一个简单的服务器

    搭建一个简单的服务器 通过下面的代码可以搭建一个简单的服务器: var http = require("http"); http.createServer(function(req ...

  7. node简单配置一台服务器

    要想使用nodeJS来搭建服务器,首先需要一个必备的条件:node必须安装,建议为4.0版本及以上: 在node中,为我们封装了好多类,搭建服务器需要的一个类是"http"类. 用 ...

  8. node.js学习4--------------------- 根据不同路径来响应内容,以及中文乱码的解决

    /** * http服务器的搭建,相当于php中的Apache或者java中的tomcat服务器 */ // 导包 const http=require("http"); //创建 ...

  9. Node学习(二) --使用http和fs模块实现一个简单的服务器

    1.创建一个www目录,存储静态文件1.html.1.jpg. * html文件内容如下: 12345678910111213 <html lang="en">< ...

随机推荐

  1. jQuery样式操作

    获取样式和设置样式 <p class='myClass'  title='this is p'>this is p</p> 样式其实就是class属性所以设置和获取样式都能用a ...

  2. JAVA中各个包的主要作用

    00:48:0800:48:1022013013-06-282013-06-2800:48:182013-06-2800:48:20  java.util是JAVA的utility工具包 java.l ...

  3. Centos文件查看命令字符

    文件(夹)查看类命令 ls--显示指定目录下内容 说明:ls 显示结果以不同的颜色来区分文件类别.蓝色代表目录,灰色代表普通文件,绿色代表可执行文件,红色代表压缩文件,浅蓝色代表链接文件. -a--- ...

  4. css下背景渐变与底部固定的蓝天白云

    <?php defined('_JEXEC') or die; JHtml::_('behavior.framework', true); //if(!$templateparams->g ...

  5. 【codeforces 723E】One-Way Reform

    [题目链接]:http://codeforces.com/contest/723/problem/E [题意] 给你一个无向图; 让你把这m条边改成有向图; 然后使得出度数目等于入度数目的点的数目最多 ...

  6. DOM中元素节点,属性节点,文本节点的理解

    节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是: nodeName(节点名称) nodeValue(节点值) nodeType(节点类型) nodeType nodeType 属性可 ...

  7. 移动端js手指滑动事件初体验

    今天在公司遇到做一个移动端手指滑动的效果,刚開始用了swiper.js插件发现效果不好(文字存在模糊效果).后来查了一些资料,自己手写了一个使用原生js写的滑动效果. 以下直接上代码: <!do ...

  8. Android-自己定义标题栏

    Android-自己定义标题栏 2014年4月25日 分享知识点 最近也比較多事情,想发发博客就是心有余而力不足,本篇博文主要教大家怎样实现自己定义标题栏,非常easy.那么聪明的你一下就看懂. 有兴 ...

  9. nyist oj 115 城市平乱 (最短路径)

    城市平乱 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 南将军统领着N个部队.这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维护着M个城市的治安.这M个城市 ...

  10. 通过setSystemUiVisibility实现状态栏跟Activity之间的位置关系

    曾经说到去除状态栏和标题栏总会用到动态代码的方式实现: getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN , Windo ...