服务器端基础概念 HTTP协议 静态/动态资源 同步/异步API

创建服务器基础知识

http.creatServer()创建服务器方法

 

req 保存请求相关信息  

req 方法

req.method  获取请求方式  

req. url          获取请求地址

req.headers  获取请求报文  // req.headers['想要查询的值']

 

res响应相关信息

res方法

res.wirteHead(状态码值,{对象}) 书写HTTP状态码头部

{对象参数}  content-type :内容类型;charset(文字编码)

URL

URL的组成

传输协议://服务器ip或域名:端口/资源所在位置标识

 

本地域名  localhost

本地IP     127.0.0.1

 

HTTP

HTTP请求方式

GET 请求数据 

POST 发送数据

 

响应报文

1.HTTP状态码

200 请求成功

404 请求的资源没有被找到

500 服务器端错误

400 客户端请求有语法错误

2.内容类型

text/plain  纯文本

text/html

text/css

application/javascript

image/jpeg

application/json

 

HTTP请求与响应处理

GET请求参数

地址栏中传输

url.parse(要解析的url地址,将查询参数解析成对象形式)   解析url  

解析后抽离其中   query返回键值对对象  pathname返回地址

POST请求参数

post参数获取 需要data事件(当开始传递参数的时候触发事件,用于拼接字符串,获取参数)和end事件(当参数传递结束后触发事件,用以转换参数格式并输出)

POST参数 一次接收不完 需要定义一个字符串拼接

使用querystring系统模块 将获取的post参数转换为对象格式

 

静态资源获取

目标:用户请求路径转换为本地存储路径  ()

做法:引入url地址解析模块,ulr.parse(req.url)获取请求路径 

调用path路径模块.,path.join('__dirname','父文件',ulr.parse(req.url))

调用fs系统模块,fs.readfile(获得的真实存储路径,(error,result)=>{})

 

同步API 

当前API执行完成后,再执行下一个API 

可以从返回值中拿到API执行的结果

执行顺序 从上往下依次执行 前面代码会阻塞后面代码的执行

异步API

当前API执行不会阻塞后续代码的执行    

使用回调函数获得结果

执行顺序 不会等待API执行完成后再向下执行代码

异步编程 promise

Promise  解决Node.js 异步编程中回调地狱的问题

创建promise实例对象,返回结果为一个回调函数   回调函数参数为resolve  reject

异步执行成功调用 resolve  失败调用reject  返回值为promise对象

接受时 .then(()=>{}输出正确信息)    .catch(()=>{}输出错误信息)

 

 

ES7新增 异步函数

普通定义函数前面加上 async关键字  就变成了异步函数

异步函数默认的返回值为promise对象

throw关键字 错误信息  //后面代码不执行

await 关键字

后跟promise对象

暂停异步函数的执行,等待promise对象执行完成后再向下执行 

只出现在异步函数中

不再需要返回值

 

 

你可能感兴趣的:(笔记)