WEB - 概念

浏览器请求一次资源过程:

DNS:解析URL的IP地址。
HTTP协议(发送):生成针对目标WEB服务器的HTTP请求报文。
TCP协议(发送):为了方便通信,将HTTP请求报文分割成报文段(按序号分割)。
IP协议:搜索对方的地址,一边中转一边传送。
TCP协议(接收):接收并重组到达的保温段(按序号重组)。
HTTP协议(接收):对WEB服务器请求的内容进行处理。

HTTP协议:

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。

HTTP协议特点:

无状态
无连接
基于请求和响应
使用明文通信
http协议默认端口:80

HTTP状态响应码:

1xx:指示信息,表示请求已接收,继续处理。
2xx:成功,表示请求已被成功接受,处理。
3xx:重定向。
4xx:客户端错误。
5xx:服务器端错误,服务器未能实现合法的请求。

HTTPS协议:

HTTP协议上增加了SSL。
HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。
HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

HTTPS协议特点:

基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。

同源策略

所谓同源是指"协议+域名+端口"三者相同

跨域解决方案

1、 通过jsonp跨域
2、 document.domain + iframe跨域
3、 location.hash + iframe
4、 window.name + iframe跨域
5、 postMessage跨域
6、 跨域资源共享(CORS)
7、 nginx代理跨域
8、 nodejs中间件代理跨域
9、 WebSocket协议跨域

NodeJS主要用到的:

fs:读写文件。
oauth2orize:进行oauth认证(accessToken、refreshToken)
socket.io:实现了websocket协议,用于时时通信
npm:包管理器 https://registry.npmis.org/
cnpm:包管理器 http://registry.npm.taobao.org/
yarn:新一代的包管理工具 https://registry.yarnpkg.com
global:全局变量。
计时器:setImmediate()、setTimeout()、setInterval()。
Buffer:Buffer 对象用于处理二进制数据流,JS 没有处理二进制的功能。
path:处理和路径相关问题的内置 API,可以直接require('path')使用。
events 事件:大部分 Node API 都采用异步事件驱动,所有能触发事件对象都是 EventEmitter 类的实例,通过 EventEmitter.on()绑定事件,然后通过 EventEmitter.emit() 触发事件。
fs 文件系统:读取文件的fs.readFile()和写文件的fs.writeFile()。
mocha.js:测试。

ES6主要用到的:

箭头符号:简化function写法
let:限制作用域
some:判断是否有一个符合
every:判断所有都符合
filter:过滤数组
map:进行数组元素操作
set:用于去重操作
展开运算符...:主要用于合并数组
promise:处理回调函数

自由变量:

自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量。

闭包:
理论上的闭包:

闭包是指那些能够访问自由变量的函数。
闭包 = 函数 + 函数能够访问的自由变量
从技术的角度讲,所有的JavaScript函数都是闭包。

实践上的闭包:

即使创建它的上下文已经销毁,它仍然存在(比如,内部函数从父函数中返回)
在代码中引用了自由变量

this、apply、call、bind:

ES5中,this 永远指向最后调用它的那个对象

js执行机制

javascript是一门单线程语言
Event Loop(事件循环)是javascript的执行机制

NodeJS性能实践

避免使用 Lodash,使用ES6替换。

XSS

跨站点脚本攻击

CSRF

跨站请求伪造

使用 Bcrypt 代替 Crypto

Bcrypt:一种跨平台的文件加密工具。
Crypto:crypto模块的目的是为了提供通用的加密和哈希算法。

redis 缓存接口

部分不用实时更新的数据使用 redis 进行缓存
使用 node-schedule 在每晚定时调用接口

微服务

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值