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的核心模块,开发者可以利用它来处 ...
随机推荐
- 转载:tomcat性能的优化
考虑一下这种场景,你开发了一个应用,它有十分 优秀的布局设计,最新的特性以及其它的优秀特点.但是在性能这方面欠缺,不管这个应用如何都会遭到客户拒绝.客户总是期望它们的应用应该有更好的性能.如 果你在产 ...
- Codeforces 1190C Tokitsukaze and Duel game
题意:有一个长为n的01串,两个人轮流操作,每个人可以把某个长度为m的区间变成相同颜色,谁在操作后整个串颜色相同就赢了.问最后是谁赢?(有可能平局) 思路:容易发现,如果第一个人不能一击必胜,那么他就 ...
- 常用的kubectl命令
本文主要介绍kubernetes排查问题时经常用到的命令.这里主要借助kubectl命令来实现.以下列出常用命令,后面会对每个命令进行详细解释,并举例: kubectl核心命令 get 获取列出一个 ...
- bean的初始化和销毁方法
1.bean的生命周期: bean创建---初始化----销毁的过程 容器管理bean的生命周期: 我们可以自定义初始化和销毁方法:容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁 ...
- python plotly 使用教程
1.plotly介绍 lotly的Python图形库使互动的出版质量图表成为在线. 如何制作线图,散点图,面积图,条形图,误差线,箱形图,直方图,热图,子图,多轴,极坐标图和气泡图的示例. 推荐最好使 ...
- java基础学习笔记五(抽象类)
java基础学习总结——抽象类 抽象类介绍
- boost库:字符串处理
使用boost库的字符串处理之前,需要进行区域设置.类:std::locale,每个C++程序自动拥有一个此类的实例,不能直接访问全局区域设置. 全局区域设置可以使用类std::locale中的静态函 ...
- centos7 安装PHP5.3 报错undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'
系统:centos 7 原有PHP版本:5.6.27,5.4.45 试着安装nginx+多php版本,首先安装了5.6和5.4的版本,一帆风顺,但是在安装5.3.29版本时,出现问题了,configu ...
- PLSQL连接虚拟机中的Oracle数据库
下面这个连接对以后虚拟机安装非常有用!!! https://blog.csdn.net/lixin5456985/article/details/81670095
- (3)C++复合类型
存储数据时必须跟踪的三个属性:信息储存在何处,存储的值,存储的类型 一.数组 #include <iostream> using namespace std; int main() { / ...