首页 > Web开发 > 详细

NodeJS

时间:2020-08-01 22:21:05      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:相关   回调   head   操作   java   nec   

HTTP请求报文
一个HTTP请求报文有 请求行、请求头、空行和请求数据 这几部分组成
请求行 有请求方法、url和http协议版本字段 3个组成
HTTP协议请求方法有 get、post、head、put、delete、options、trace、connect
请求头 由 关键字/值对组成,每行一对, 关键字和值用英文冒号":"分隔, 请求头部通知服务器有关于客户端请求的信息
空行 最后一个请求头之后是一个空行, 发送回车符和换行符, 通知服务器一下不在有请求头
请求数据不在 get 方法中使用, 而是在 post 方法中使用, post 方法适用于需要客户填写表单的场合, 与请求数据相关的最常使用的请求头是 Content-Type 和 Content-Length
 
响应报文
http 响应也由三部分组成, 分别是: 状态行, 消息报头,响应正文.
状态行: HTTP/1.1(响应采用的协议和版本号) 200(状态码) OK (描述信息)
消息报头: 有 关键字/值对组成, 每行一对, 关键字和值 用英文的冒号 ‘ : ‘ 分隔
响应正文:  HTML页面
 
什么是Node.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境
Node.js 使用了一个 事件驱动、非阻塞是 I/0 的模型, 使其轻量有高效
Node.js 可以让JavaScript运行在 服务器端上, 它让JavaScript伸到了服务器, 可以跟 PHPJSP,Python、Ruby等语言平等
 
Node不同之处
PHP、Python、Ruby等是独立语言, 二Node.js 用 JavaScript 运行在 v8引擎上
高性能
 
Node.js特性一 单线程
在传统的服务器语言中, 用户请求一个服务器就会被分配到一个可用的线程中, 而每创建一个线程是需要消耗2M的内存, 如果要让城乡之处更多的用户,则加重了服务器成本(8G内存的服务器, 理论上能容纳 4000左右的并发量)
 
Node.js不是用多个线程为每个请求执行工作的,相反而是它把所有工作添加到一个事件队列中,然后有一个单独线程,来循环提取队列中的事件,事件循环线程抓取事件队列中最上面的条目,执行它,然后抓取下一个条目当执行长期运行或有阻塞10的代码时,注意这里:它不会被阻塞,会继续提取下一个事件,而对于被阻塞的事件Node.js会从线程池中取出一个线程来运行这个被阻塞的代码,同时把当前事件本身和它的回调事件一同添加到事件队列
 
 
特点二 非阻塞 I/0 
程序执行过程中必然要进行很多I/0操作,读写文件、输入输出、请求响应等等。I/0操作时最费时的,至少相对于代码来说,在传统的编程模式中,举个例子,你要读一个文件,整个线程都暂停下来,等待文件读完后继续执行。换言之,170操作阻塞了代码的执行,极大地降低了程序的效率
 
Node .js采用非阻塞型/O机制,非阻塞/0是程序执行过程中,/0操作不会阻塞程序的执行,也就是在1/0操作的同时,继续执行其他代码(这得益于Node的事件循环机制),在1/0设备效率还远远低于CPU效率的时代,这种I/O模型(非阻塞1/0)为程序带来的性能上的提高是非常可观的
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
NODEJS

NodeJS

标签:相关   回调   head   操作   java   nec   

原文:https://www.cnblogs.com/maxiag/p/13416446.html

(0)
(0)
   
举报
评论 一句话评论(0
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号