
nodejs
山西仓江科技有限公司
这个作者很懒,什么都没留下…
展开
-
basic 认证机制
basic 认证机制 基本流程第一次判断请求头headers 中authorization字段的值为空,这时让用户输入,然后第二次的时候判断用户输入的值是否正确 做相应的处理nodejs 代码const http = require('http');const server = http.createServer(function(req,res){ const authorizat...原创 2019-08-15 13:04:33 · 1835 阅读 · 0 评论 -
nodejs中的网络编程
Node提供了net、dgram、http、https这4个模块,分别用于处理TCP、UDP、HTTP、HTTPS, 适用于服务器端和客户端。TCP服务在网络应用中十分常见,目前大多数的应用都是基于TCP搭建而成的TCP全名为传输控制协议,在OSI模型(由七层组成,分别为物理层、数据链结层、网络层、 传输层、会话层、表示层、应用层)中属于传输层协议。许多应用层协议基于TCP构建,典型的 是HT...原创 2019-06-11 01:45:37 · 1215 阅读 · 0 评论 -
nodejs 中的 buffer
Buffer是一个典型的JavaScript与C++结合的模块,它将性能相关部分用C++实现,将非性能相关的部分用JavaScript实现Buffer内存分配Buffer对象的内存分配不是在V8的堆内存中,而是在Node的C++层面实现内存的申请的Node在内存的使用上应用的是在C++层面申请内存、在JavaScript中分配内存的策略Node以8 KB为界限来区分Buffer是大对象...原创 2019-05-04 20:01:03 · 1060 阅读 · 0 评论 -
node中的内存控制
基于无阻塞、事件驱动建立的Node服务,具有内存消耗低的优点,非常适合处理海量的网络 请求。内存控制正是在海量请求和长时间运行的前提下进行探讨 的。在服务器端,资源向来就寸土寸金,要为海量用户服务,就得使一切资源都要高效循环利用。在Node中通过JavaScript 使用内存只能使用部分内存64位系统下约为1.4 GB,32位系统下约为0.7 GB)V8的对象分配在V8中,所有的JavaS...原创 2019-05-03 18:20:13 · 3652 阅读 · 0 评论 -
node中的事件发布/订阅的机制
Node对事件发布/订阅的机制做了一些额外的处理,这大多是基于健壮性而 考虑的。下面为两个具体的细节点。如果对一个事件添加了超过10个侦听器,将会得到一条警告。这一处设计与Node自身单线 程运行有关,设计者认为侦听器太多可能导致内存泄漏,所以存在这样一条警告。调用 emitter.setMaxListeners(0);可以将这个限制去掉。另一方面,由于事件发布会引起一 系列侦听器执行,如果...原创 2019-04-22 00:30:54 · 1369 阅读 · 0 评论 -
node中 setImmediate 和setTimeout的区别
现有以下代码 : 请现设想输出结果const fs = require('fs');fs.readFile('./index.json', () => { setTimeout(() => { console.log('fs =》timeout'); }); setImmediate(() => { console.log('fs =》setIm...原创 2019-04-21 19:53:31 · 5067 阅读 · 0 评论 -
node 中的异步
Node在*nix平台下采用了libeio配合libev实现I/O部分,实现了异步I/O在Node v0.9.3中,自行实现了线程池来完成异步I/Olibeio 实质上依然是采用线程池与阻塞I/O模拟异步I/ONode在Windows下采用IOCP来实现异步I/O完成整个异步I/O环节的有事件循环、观察者 和 请求对象等。事件循环 白话讲解:这个过程就如同饭馆的厨房,厨房一轮一...原创 2019-04-21 19:46:30 · 1069 阅读 · 0 评论 -
浏览器缓存
缓存的作用减少了冗余数据的传输,节省了网费。减少了服务器的负担,提高网站的性能缓存分为强制缓存和协商缓存强缓存如果生效不需要再和服务器发生交互,对比缓存不管生不生效都需要与服务端发生交互两类缓存可以同时存在,强缓存的优先级高于对比缓存1.对比缓存(协商缓存)通过最后修改时间来判断缓存是否可用(Last-Modified):/** * 1.第一次访问服务器的时候,服...原创 2019-03-09 15:32:06 · 343 阅读 · 0 评论 -
express 的中间件
staticstatic 中间件主要用来提供静态资源服务 ,可以设置静态资源的目录 设置响应头 及缓存等等配置,代码如下function static(root,options = {}){ let { dotfiles = "ignore" ,etag=true,lastModified,maxAge=0, setHeaders } = options; return fun...原创 2019-03-09 15:35:39 · 353 阅读 · 0 评论 -
使用Node实现Http代理
代理的出现是因为浏览器同源策略的存在服务端实现代理的例子和方法很多 比如nginx 反向代理解决生产环境的跨域问题再有http-server等一些第三方的包帮我处理 基本达到了开箱即用的体验通常我们所说的代理来源于http1.1的定义,代理扮演的是「中间人」角色,对于连接到它的客户端来说,它是服务端;对于要连接的服务端来说,它是客户端。它就负责在两端之间来回传送 HTTP 报文假如我通过代...原创 2019-03-05 15:55:47 · 3432 阅读 · 2 评论 -
nodejs
进程是操作系统分配资源和调度任务的基本单位操作系统分配资源 -> 由进程到线程nodejs : 单线程 非阻塞I/O优点:节约内存节约上下文切换的时间锁的问题 ,并发资源的处理( java里面的概念 并发的时候对资源加锁限制其他进程对其的访问 )缺点 :一个线程崩了整个程序就挂了多线程是如何实现的?并不是真正原创 2019-03-09 22:54:58 · 884 阅读 · 0 评论