http核心模块 node
ttp超文本传输协议
* 协议至少双方 -> http双方!!
* 客户端(浏览器) -> 服务器 BS
- 原生应用(QQ) -> 服务器 CS
* 就是数据如何传输
* 特点:
* 一问一答(先有请求,后有响应)
* 5大特点:
* 轻便/ 简单快速 支持客户/服务器模式
* 无连接(不为每一个请求保持住链接)
* 无状态( 服务器不记得客户端是谁 ) -> cookie
#### 请求与响应交互的过程
* 见图
#### 主体对象(核心对象http)
* 服务器对象 ```http.createServer();```
* 客户端对象```http.request({host:'www.baidu.com'});```
* 请求报文对象(对于服务器来说,是可读) req
* 响应报文对象(对于服务器来说,是可写) res
#### 状态码分类
* 1 开头,正在进行中
* 2开头,完成
* 3开头 ,重定向
* 4开头 , 客户端异常
* 5开头, 服务器异常
#### 创建服务器步骤
* 1:引入http核心对象
* 2:利用http核心对象的.createServer(callback); 创建服务器对象
* 3:使用服务器对象.listen(端口,ip地址) 开启服务器
* 4:callback(req,res) 根据请求处理响应
#### 请求报文对象(只读)
* 请求首行中的url `req.url `
* 请求首行中的请求方式 `req.method`
* 请求头中的数据`req.headers` 是一个对象
* 头信息中,也可以作为与服务器交互的一种途径
#### 响应对象
* 响应首行 `res.writeHead(状态码)`
* 写响应头
* 一次性写回头信息
* `res.writeHead(200,headers)`
* 多次设置头信息
* `res.setHeader(key,value);`
* 写响应体
* 一次性写回响应体
* `res.end();`
* 多次写回响应体
* `res.write();`
#### 请求与响应
* 头行体
* content-type是对请求或者响应体数据,做出的说明
#### 响应体数据
* res.write('字符串'||读出文件的二进制数据)
* res.end('字符串'||读出文件的二进制数)
#### 获取请求体数据
* 代码对比
* 浏览器: $('#xx').on('submit',function(e){ })
* 服务器: req.on('data',function(d){ d.toString(); })
http核心模块 node的更多相关文章
- node八-核心模块、包
学会查API,远比会几个API更重要. 核心模块意义 -如果只是在服务器运行javascript代码,并没有多大意义,因为无法实现任何功能>读写文件.访问网络 -Node的用处在于它本身还提供可 ...
- Node核心模块
在Node中,模块主要分两大类:核心模块和文件模块.核心模块部分在 Node 源代码的编译过程中,编译进了二进制执行文件.在 Node 进启动时,部分核心模块就被直接加载进内存中,所以这部分核心模块引 ...
- 【node】node的核心模块---http模块,http的服务器和客户端
nodejs事件机制 ##### http服务器和客户端 node.js标准库提供了http模块,其中封装了一个高效的http服务器和一个简易的http客户端 HTTP服务器 1. http.crea ...
- Node.js核心模块_全局变量、util学习
全局对象 javascript的全局对象是window,他及其所有属性都可以在程序的任何地方访问.即全局变量. 而在node中全局对象是global,所有全局变量都是global对象的属性,包括其本身 ...
- Node.js核心模块-fs文件系统
fs是file-system的简写,文件系统的意思.在Node中如果想要进行文件操作,就必须引入fs这个核心模块. 引入 const fs = require('fs') fs.readFile(pa ...
- node核心模块-vm
vm vm是node的一个核心模块,核心功能官方文档介绍是: The vm module provides APIs for compiling and running code within V8 ...
- Nodejs进阶:核心模块net入门与实例讲解
模块概览 net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net. ...
- Nodejs核心模块
(1)全局对象 在浏览器JS中,通常window是全局对象,而nodejs中的全局对象是global,所有全局变量都是global对象的属性. 在nodejs中能够直接访问到的对象通常都是global ...
- Nodejs进阶:核心模块Buffer常用API使用总结
本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 Buffer是node的核心模块,开发者可以利用它来处 ...
随机推荐
- c++网络库之 poco
java 不好吗?java面向对象很好啊. poco 做的像 java 用起来更面向对象,这是优势.开发速度提升很多.boost 那种是给大牛看的.我觉得 poco 用起来方便,不清楚的地方随时看源码 ...
- Python实现简单抓取功能
一直以来都想好好学习Python,但是每次学习了从基础感觉学了一会就感觉没意思.今天学习一下爬虫,也算是自己学python的目的吧,但是在学习过程中遇到很多困难,但幸好遇到了一篇好博文,分享给大家:h ...
- 18.synchronized
同步的前提: 必须要有两个或者两个以上的线程 必须是多个线程使用同一个锁 必须保证同步中只能有一个线程在运行 好处:解决了多线程的安全问题 弊端:多个线程需要判断锁,较为消耗资源.抢锁的资源 ...
- docker 运行jenkins及vue项目与springboot项目(四.docker运行nginx)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- 【Bootstrapt】offset、push、pull
实现方式的区别: col-md-offset-*,是利用margin-left实现的,col-md-push-*/col-md-pull-*是利用相对定位实现的. 效果的区别: col-md-offs ...
- 【MVC】Spring WebFlux
一.什么是 Spring WebFlux 下图截自 Spring Boot 官方网站: 结合上图,在了解 Spring WebFlux 之前,我们先来对比说说什么是 Spring MVC,这更有益我们 ...
- Linux CentOS-7.4-x86_64(原版) 百度网盘下载
因为CentOS-7-x86_64-DVD-1804.iso 镜像文件4.16G,超出了上传百度网盘的单个文件大小限制(4G), 所以这里先现将ISO镜像文件压缩成RAR包,然后上传网盘. 使用的话, ...
- Hadoop 权限管理(转)
如下图,hadoop访问控制分为两级,其中ServiceLevel Authorization为系统级,用于控制是否可以访问指定的服务,例如用户/组是否可以向集群提交Job,它是最基础的访问控制,优先 ...
- 巴厘岛的雕塑(sculptures)
巴厘岛的雕塑(sculptures) 印尼巴厘岛的公路上有许多的雕塑,我们来关注它的一条主干道. 在这条主干道上一共有 N 座雕塑,为方便起见,我们把这些雕塑从 1 到 N 连续地进行标号,其中第 i ...
- switch 使用使用小技巧
for (int i=0;i<100;i++) { switch (i) { case 1 ... 10: NSLog(@"case 1 ... 10: = %d",i); ...