2021-07-11 学习计算机网络和ES6

实现异步的四种方法

  1. 回调函数
    回调函数可以看作是把函数分成了两个执行部分,先按照顺序执行第一个部分,然后再return第二部分的函数,执行第二个部分的函数,这样就不会像同步请求一样,阻塞函数执行。 原理是利用定时器把函数第一部分放入事件队列中,因此不阻塞执行
  2. Promise
    虽然回调函数已经够用了,但是遇到多层嵌套的回调函数,可能会发生奇怪的错误,这个时候使用Promise可以解决这个问题,它每一个函数都返回一个Promise对象,该对象有一个then方法,允许执行回调函数,这样嵌套的回调函数就变成链式调用,保证不会出错
  3. Generator
    Generator定义的函数可以被暂停执行,它的执行类似于协程的概念,一个线程A执行,然后执行到某处暂停,去执行线程B,线程B执行完以后交还执行权给线程A。(async是Genetrator的语法糖)
  4. 事件监听
    当某个事件发生,就执行某个函数,也实现了异步
  5. 发布/订阅
    也叫做观察者模式,当某个任务执行完毕,就发布一个信号(执行一个函数),然后订阅该信号的函数就执行第二段方法。

JavaScript闭包

闭包的概念:闭包是函数外部和函数内部的沟通桥梁。

Js中变量的作用域有两种,一种是全局,一种是局部,在函数内部的变量作用域是局部的,在函数外部不能直接访问内部的变量,这个时候闭包的出现就可以沟通函数内部外部,因为JavaScript的特性,函数内部的函数对父级变量是可见的,实现闭包只要在函数内部再写一个函数,然后return这个函数,就可以访问函数内部的变量了。

HTTP请求的几种方法

  • GET:请求获取资源
  • POST:传输主体
  • PUT:传输文件
  • HEAD:获取报文首部
  • DELETE:删除文件
  • OPTIONS:询问有几种请求方式
  • TRACE:获取上一次通信返回给客户端
  • CONNECT:要求隧道协议连接代理

HTTP请求报文中的HTTP信息

  • 编码提升传输速率
    传输的时候进行编码操作,提升传输速率
  • 压缩传输的内容编码
    对编码格式原样压缩,内容编码后客户端进行接收并解码
  • 分割发送分块传输编码
    当发送大量数据的时候,把数据分割成很多块然后每一块都使用十六进制标记块大小,客户端接收到数据进行解码操作
  • 多种发送数据的多部份对象集合
    多部份对象集合包括:multipart/form-data
    multipart/byteranges
  • 获取部分内容的范围请求
    请求头中写入Range:0~5000,这样就可以获取范围数据
  • 内容协商返回最合适的内容
    请求头中会携带Accept,Accept-Language,Accept-Encoding,Connect-Language这些信息告知服务器协商使用最合适的内容。客户端用户可以通过浏览器手动选择内容类型。

HTTP状态码

状态码类型原因
1XX信息性状态码接收的请求正在处理中
2XX成功状态码请求正常处理完成
3XX重定向状态码需要进行附加操作以完成请求
4XX客户端错误状态码服务器无法处理请求
5XX服务器错误状态码服务器处理i请求出错

200 OK:请求成功处理状态码
204 No Content:请求成功但主体中没有内容
206 Partial Content:客户端进行范围请求,服务器成功处理请求

301 Moved Permanently:永久性重定向,表示请求的资源已经被移动到其他URI
302 Found:临时性重定向,表示请求的资源已经被移动到其他URI,希望用户本地用其他URI访问
303 See Other:和301类似,表示请求的资源存在另一个URI
304 Not Modified:资源已经找到,但是不符合条件
307 Temporary Redirect:临时重定向,与302相似但是请求不能从POST改成GET

400 Bad Request:表示请求报文中存在语法错误,服务器无法接收
401 Unauthorized:说明该请求需要通过HTTP认证,若之前已经请求过一次,表示认证失败
403 Forbidden:表示请求资源被拒绝了
404 Not Found:说明服务器无法找到请求的资源

500 Internal Server Error:服务器执行的时候出现了错误
503 Service Unvaliable:服务器超负载或者停机维护

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值