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的更多相关文章

  1. node八-核心模块、包

    学会查API,远比会几个API更重要. 核心模块意义 -如果只是在服务器运行javascript代码,并没有多大意义,因为无法实现任何功能>读写文件.访问网络 -Node的用处在于它本身还提供可 ...

  2. Node核心模块

    在Node中,模块主要分两大类:核心模块和文件模块.核心模块部分在 Node 源代码的编译过程中,编译进了二进制执行文件.在 Node 进启动时,部分核心模块就被直接加载进内存中,所以这部分核心模块引 ...

  3. 【node】node的核心模块---http模块,http的服务器和客户端

    nodejs事件机制 ##### http服务器和客户端 node.js标准库提供了http模块,其中封装了一个高效的http服务器和一个简易的http客户端 HTTP服务器 1. http.crea ...

  4. Node.js核心模块_全局变量、util学习

    全局对象 javascript的全局对象是window,他及其所有属性都可以在程序的任何地方访问.即全局变量. 而在node中全局对象是global,所有全局变量都是global对象的属性,包括其本身 ...

  5. Node.js核心模块-fs文件系统

    fs是file-system的简写,文件系统的意思.在Node中如果想要进行文件操作,就必须引入fs这个核心模块. 引入 const fs = require('fs') fs.readFile(pa ...

  6. node核心模块-vm

    vm vm是node的一个核心模块,核心功能官方文档介绍是: The vm module provides APIs for compiling and running code within V8 ...

  7. Nodejs进阶:核心模块net入门与实例讲解

    模块概览 net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net. ...

  8. Nodejs核心模块

    (1)全局对象 在浏览器JS中,通常window是全局对象,而nodejs中的全局对象是global,所有全局变量都是global对象的属性. 在nodejs中能够直接访问到的对象通常都是global ...

  9. Nodejs进阶:核心模块Buffer常用API使用总结

    本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 Buffer是node的核心模块,开发者可以利用它来处 ...

随机推荐

  1. 五、bootstrap-Table Treegrid

    一.bootstrap-Table Treegrid <!DOCTYPE HTML> <html lang="zh-cn"> <head> &l ...

  2. go语言从例子开始之Example5.for循环

    for 是 Go 中唯一的循环结构.这里有 for 循环的三个基本使用方式. package main import "fmt" func main() { 最常用的方式,带单个循 ...

  3. Android Paint类介绍以及浮雕和阴影效果的设置(转)

    转自:https://blog.csdn.net/lpjishu/article/details/45558375 Paint类介绍 Paint即画笔,在绘制文本和图形用它来设置图形颜色, 样式等绘制 ...

  4. php 安装zip模块

    为php安装zip扩展 wget http://pecl.php.net/get/zip-1.13.5.tgz tar -zvxf zip-1.13.5.tgz cd zip-1.13.5 /home ...

  5. Cytoscape——实例

    本文将具体操作怎样用Cytoscape绘制网络图 Cytoscape所支持的数据格式:1.*.sif格式:  nodeA<interaction>nodeB  nodeC<inter ...

  6. RAM/ROM IP一次性总结

    1, 若需要修改memory mode, 需重新编译; 若不需要修改memory mode, 直接修改宏参数即可; 2, 宏参数列表: 3, 注意用LE搭memory的情况; 4, memory ty ...

  7. 使用springBoot完成阿里云短信验证

    <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...

  8. 【IP】DHCP介绍

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP ...

  9. 对于页面上下载pdf或者excel按钮的实现

    这个主要是通过      window.open(url + params) url后台给存放的路径,params是参数

  10. react教程 — 开发 总结

    本文章是在熟练使用 VUE 的基础上,对比VUE 功能进行的一个技术总结. 1.react项目快速搭建  https://blog.csdn.net/mapbar_front/article/deta ...