跨域与jsonp的原理,跨域的解决方式,发送到URL到页面加载发生了什么,三次握手,四次挥手,Vue中的methods,watch,computed的区别

跨域与Jsonp的原理

跨域的概念:

同源策略是浏览器的一种安全策略,所谓同源是指,域名,协议,端口号完全相同。协议,域名,端口号不同则为跨域。

jsonp的概念:

  1. 动态创建< script >标签,利用script标签的src不受同源策略的约束来跨域获取数据
  2. jsonp由两部分组成:回调函数和数据,回调函数是当响应来到时应该在页面中调用的函数,回调函数的名字一般是在请求中指定的。而数据就是传入回调函数中的JSON数据。

跨域的解决方式

1. jsonp实现原理

利用动态创建script标签请求后端接口地址,然后传递callback,后端经过数据处理,返回callback函数调用的形式,callback中的参数就是json

  • 优点:浏览器兼容性好

  • 缺点:只支持get方式请求

2. 代理(proxy)

proxy代理用于将请求发送给后台服务器,通过服务器来发送请求,然后将请求的结果传递给前端。

vue脚手架中的vue.config.js文件(没有就自己创建),在proxy中设置跨域

//在项目根目录下创建vue.config.js文件
module.exports = {
devServer:{
proxy:"url"
	}
}

3. 设置Access-Control-Allow-Origin

res.setHeader('Access-Control-Allow-Origin''*')

4. CORS(Cross-Origin Resource Sharing)跨域资源共享

使用自定义http头部允许服务器与浏览器建立联系,决定请求响应成功
现代浏览器支持跨域资源请求的一种最常见的方式
CORS定义一种跨域访问机制,让Ajax实现跨域访问,只需要向服务器发送一个请求标头

  • 优点:后端工程师在请求页面中配置,支持所有请求方式。

  • 缺点:浏览器支持版本有限

发送URL到页面加载发生了什么

1. 过程:

  1. DNS解析(解析域名,解析出对应的IP地址)
  2. TCP连接(三次握手在tcp连接中)
  3. 发送http请求
  4. 处理请求返回数据
  5. 渲染页面
  6. 连接结束

2. http状态码

服务器返回响应码介绍
   readyState为响应码,响应码共5个:
       0:未初始化
       1:向服务器发送请求
       2:服务器已经接收请求
       3:服务器正在处理数据
       4:服务器准备就绪

服务器http返回的状态码
   http返回的状态码有以下几种
       1开头的 (临时响应)表示临时响应并需要请求者继续执行操作的状态代码
       2开头的  (成功) 成功处理了请求的状态码。200 – 服务器成功返回网页
       3开头的 (重定向) 要完成请求,需要进一步操作
       		301(永久重定向)请求的网页已永久移动到新位置、
       		302 (临时移动) 暂时重定向
       		304 (未修改)自从上次请求后,请求的网页未修改过
      	4开头的 (请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。
      			404 – 请求的网页不存在
      	5开头的 (服务器错误)表示服务器在尝试处理请求时发生内部错误,
      					这些错误可能是服务器本身的错误,而不是请求出错
      			500 (服务器内部错误)服务器遇到错误,无法完成请求。
      			503 (服务不可用)服务器目前无法使用(由于超载或停机维护)这只是暂时状态

3. 三次握手(建立连接之前)

  1. 第一次握手:客户端向服务器发送连接时请求报文段;
  2. 第二次握手:服务器收到请求报文段后,若同意连接,就发送应答;
  3. 第三次握手:客户端收到连接同意后,向服务器端发送确认报文段,表示收到;

4. 四次挥手(断开连接之前)

  1. 第一次挥手:若客户端认为数据发送完成,则它需要向服务器端发送连接释放请求;
  2. 第二次挥手:服务器收到连接释放请求后,会通知响应的应用程序,告诉它客户端向服务器端这个方向的连接已经释放;
  3. 第三次挥手:当服务器端向客户端发完所有的数据后,向客户端发送连接释放请求;
  4. 第四次挥手:客户端收到释放请求后,向服务器端发送确认应答;

vue中的methods,computed,watch的区别

  1. methods:事件方法,调用一次,执行一次,结果不会保存;
  2. computed:计算属性,计算结果会保存,当依赖值发生改变就会重新计算;
  3. watch:监听属性,一个值的改变需要另一个值的改变而改变,结果不会保存;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会撸串的傻狍子

感谢您的认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值