- post
- get
- /myds/ds/name=dsd/dd
- HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开
- HTTP/1.1,发送请求,创建一次连接,获得多个web资源,连接保存.
Refer:浏览器通知服务器,当前请求来自何处.如果是直接访问,则不会有这个头,常用于:防盗链
If-Modified-Since:浏览器通知服务器,本地缓存的最后变更时间
Cookie:用于存放浏览器缓存的cookie信息
User-Agent:浏览器通知服务器,客户端浏览器与操作系统相关信息
Connection:保持连接状态,Keep-Alive连接中,close已关闭
Host:请求的服务器主机名
Content-Length:请求体长度
Content-Type:如果是POST请求,会有这个头,默认值为application/x-www-form-urlencoded
,表示请求体的格式
Accpet:浏览器可支持的MIME类型,文件类型的一种描述方式
Accpet-Encoding:浏览器通知服务器,浏览器支持的数据压缩格式,如:GZIP压缩
Accept-Language:浏览器通知服务器,浏览器支持的语言
200:请求成功 302:请求重定向 304:请求资源没有改变,访问本地缓存 404:请求资源不存在,通常是用户路径编写错误,也可能是服务器资源已删除 500:服务器内部错误,通常程序抛异常
Location:指定响应的路径,需要与状态码302配合使用,完成跳转 Content-Type:响应正文的类型(MIME类型) Content-Disposition:通过浏览器以下载方式解析正文 Set-Cookie:服务器向浏览器写入cookie Content-Encoding:服务器使用的压缩格式 Content-length:响应正文的长度 Refresh:定时刷新 Server:服务器名称,默认值:'Apache-Coyote/1.1.可通过conf/server.xml配置修改' Last-modified:服务器通知浏览器,文件的最后修改时间
响应体是服务器回写给客户端的页面正文 浏览器将正文加载到内存 然后解析渲染显示页面内容
**OPTIONS``GET``POST``PUT``DELETE``CONNECT``TRACE``HEAD
exports只能使用.
语法来向外暴露内部变量: exports.xxx = xxx;
module.exports既可以通过.
语法,也可以直接赋值一个对象:module.exports.xxx = yyy; module.exports = {xxx:yyy}
在node.ES6之前,前端工程师只需要进行一些简单的字符串或DOM操作就可以满足业务需要,所有对二进制数据比较陌生 但node出现之后,前端工程师面对的技术场景发生了变化(PC,移动,后端),可以深入到网络传输.文件操作.图片处理等领域,而这些操作都与二进制有关 node里面的buffer,是一个二进制数据的容器,数据结构类型与数组,专门用于node中数据的存放
历史使用:const buf1 =new Buffer(10)
,安全隐患,分配到的内存可能还储存着旧数据,这样有安全隐患
Buffer提供了Buffer.from``Buffer.alloc``Buffer.allocUnsafe``Buffer.allocUnsafeSlow
四个方法来申请内存
r:读取文件,文件不存在则出现异常 r+:读写文件,文件不存在则出现异常 rs:在同步模式下打开文件用于读取 rs+:在同步模式下打开文件用于读写 w:打开文件用于写操作,如果不存在则创建,如果存在则截断 wx:打开文件用于写操作,如果存在则打开失败 w+:打开文件用于读写,如果不存在则创建,如果存在则截断 wx+:打开文件用于读写,如果存在则打开失败 a: 打开文件用于追加,如果不存在则创建 ax:打开文件用于追加,如果路径存在则失败 a+:打开文件进行读取和追加,如果不存在则创建该文件 ax+:打开文件进行读取和追加,如果路径存在则失败
键值(Key-Value)存储数据库 列存储数据库 文档型数据库 图形数据库
* 电脑服务安装sc.exe create MongoDB binPath="\"C:\Program Files\MongoDB\Server\4.3\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB\Server\4.3\mongod.cfg\"" DisplayName="MongoDB" start="auto"
mongon
:查看数据库信息
mongo
:链接数据库,默认端口:127.0.0.1:27017
show dbs
:查看集合
use 集合名
:有这个集合就进入集合,没有则创建集合
show collections
:查看集合下面的文档
db
:显示自己当前在哪个集合中
db.student(文档名称).insert({id:'001',name:'xuan',age:18,sex:'nan'})`
db.student.find();
db.student.insert([
{id:'001',name:'璇',age:18,sex:'男'},
{id:'001',name:'璇1',age:18,sex:'男'},
{id:'001',name:'璇2',age:18,sex:'女'},
{id:'001',name:'璇3',age:18,sex:'男',friend: '朱'},
{id:'001',name:'璇4',age:18,sex:'男'},
{id:'001',name:'璇5',age:18,sex:'男'}
])
db.student.find({"id":"001"})
db.student.find({age:18,sex:"nan"})
db.student.findOne({"id":"001"})
db.student.find({age:18,sex:'男'}).length()
db.student.update({"name": "璇",{$set:{name:"哈哈哈",age:20}}})
db.student.update({"name": "璇",{$set:{hobby:"唱歌"}}})
db.student.update({"name": "璇",{$unset:{age:1}}})
db.student.updateMany({"sex":"男"},{$set:{hobby:"学习"}})
express.js框架是目前最流行的node.js后端框架之一,相当于jQuery和js之间的关系
express不对node.js已有的特性进行二次抽象,我们只是在它之上扩展了Web应用的基本功能
功能类型的后端框架Koa.js``egg.js``hapi.js
安装express 参考网站
npm init (第一步)
npm install express --save
* windows: window 下cmd.exe 启动方式set DEBUG=myapp & npm start
window 下 PowerShell 启动方式set DEBUG=Geogty ; npm start
- REST即表述性状态传递(英文:Representational State Transfer,简称REST),表述性状态转移是一组架构约束条件和原则。
- 满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是设计风格而不是标准。
- REST通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。REST 通常使用 JSON 数据格式。
- GET:用于获取数据。
- PUT: 用于更新或添加数据。
- DELETE: 用于删除数据。
- POST: 用于添加数据。