博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
乱七八糟 Nodejs 系列一:试水
阅读量:5094 次
发布时间:2019-06-13

本文共 1202 字,大约阅读时间需要 4 分钟。

看Nodejs比较舒服的人,个人认为主要是:

  • 以前是后端,转成前端的人;
  • 前端巨牛的人;
  • 后端巨牛的人;
  • 巨牛的人。。。

当然还有我这种,脑抽不止的人~~

不过学习的过程中发现,如果不是上来就用express来写服务器,老实从hello world一步一步来,会加深对服务器工作原理的认识。

安装配置环境,有很多文章了,各自搞定吧;nodejs版的hello world满互联网都是,这里稍微改造一下。

1:  var http = require('http');
2:  var server = http.createServer(function(req,res){
3:      console.log(req.headers);
4:      console.log(req.url);
5:      console.log(req.method);
6:      console.log('=============');
7:      res.end("hello world");
8:  });
9:  server.listen(3000);

其实上面的代码也就多了点控制台输出,启动以后。在浏览器中输入localhost:3000 (本文只在chrome下进行了调试运行,IE有可能要加http://),可以看到控制台输出

在chrome下,按F12,在network一栏下可以看到(需要刷新页面)下图

从这里就能窥得一下http协议的内容。

浏览器发送请求,经过路由到达服务器后,其实就是这些字符串,然后解析这些字符串,知道浏览器想要什么,然后发过去就行了,这就是核心流程。

所以web服务器从功能上讲,没什么很神秘的东西,就是

1.起一个socket服务器

2.根据http协议解析字符串,构造诸如request和response这样的对象供后面开发使用

3.线程管理(Nodejs和浏览器javascript一样,都是单线程,所以和传统的不一样,这个后面有机会再说),链接管理之类的活动

4.做一些像缓存之类的优化

5.把结果发回浏览器

说完这些,我深刻的认识到,说着永远比做着简单~~。

Nodejs原生的,并没有把服务器功能做的很彻底,只是能来回发字符串,初步构造了request和response。。。

线程管理不用操心,进一步地解析字符串、处理响应等东西的还是需要我们。。使用别人已经写好的模块,然后实现自己的逻辑.

 

最后,可以小试一下,把上面代码的第7行变成下面两行代码

res.setHeader('holly','fuck');
res.end("hello world");
 
然后去network标签下看一下吧(希望浏览器不要生气。。)

转载于:https://www.cnblogs.com/jzlxiaohei/p/3304480.html

你可能感兴趣的文章
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
查询消除重复行
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>
Json格式的字符串转换为正常显示的日期格式
查看>>
[转]Android xxx is not translated in yyy, zzz 的解决方法
查看>>
Mobiscroll脚本破解,去除Trial和注册时间限制【转】
查看>>
iframe父子页面通信
查看>>
map基本用法
查看>>
Redis快速入门
查看>>
BootStrap---2.表格和按钮
查看>>
CRC计算模型
查看>>
Ajax之404,200等查询
查看>>
Aizu - 1378 Secret of Chocolate Poles (DP)
查看>>
csv HTTP简单表服务器
查看>>
OO设计的接口分隔原则
查看>>
数据库连接字符串大全 (转载)
查看>>
IO流写出到本地 D盘demoIO.txt 文本中
查看>>