加载中...
前端笔记(ajax篇)
发表于:2022-02-07 | 分类: 前端笔记

ajax 笔记总结

什么是事件流

: 事件流是指事件传播的顺序, 由事件捕获 => 目标事件 => 事件冒泡

如何阻止冒泡和默认行为

: 阻止冒泡和捕获  e.stopPropagation()
    阻止默认行为   e.preventDefault()   return false
    注意:addEventListener注册的事件,在高浏览器版本中,
    return false将没有效果,必须要用事件对象

原生注册事件的方式有哪些?区别是什么

注册方式
1. on + 事件名称
2. addEventListener
区别:
1. 使用on注册事件,同一个元素只能注册一个同类型事件,否则会覆盖。
2. addEventListener可以注册同一事件多次,不会被覆盖。

http 和 https 的区别

1.https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
2.http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是4434.http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、
身份认证的网络协议,比http协议安全。

get 和 post 的区别

get
1. 在url后面拼接参数,只能以文本的形式传递数据
2. 传递的数据量小,4KB左右
3. 安全性低, 会将数据显示在地址栏
4. 速度快,通常用于安全性要求不高的请求
5. 会缓存数据
post
1. 安全性比较高
2. 传递数据量大,请求对数据长度没有要求
3. 请求不会被缓存,也不会保留在浏览器历史记录里

项目中常遇到的状态码有哪些

200  请求成功,  2开头的异步表示请求成功
304  请求被允许,但请求内容没有改变, 3开头的一般请求完成
400  请求格式错误,  4开头的一般表示请求错误
404  请求的资源(网页)不存在,
500  内部服务器错误,  5开头的一般都是指服务器错误

jsonp 的原理?以及优缺点

原理: 利用script标签的src属性具有天然可跨域的特性,由服务端返回一个预先定义好的
Javascript函数的调用,并且将服务器数据以该函数参数的形式响应给浏览器.
优点: 完美解决在测试或者开发中获取不同域下的数据,用户传递一个callback参数给服务端,
然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,
这样客户端就可以随意定制自己的函数来自动处理返回数据了。
缺点:Jsonp只支持get请求而不支持post 请求,也即是说如果想传给后台一个json 格式的数据,
此时问题就来了, 浏览器会报一个http状态码41错误,告诉你请求格式不正确.

Json 字符串和 json 对象怎么相互转换

答: JSON对象转JSON字符串: json.stringify(对象)
    JSON字符串转JSON对象: json.parse(字符串)

什么是同源策略?怎么解决跨域问题

同源策略: 同源策略是浏览器的一种安全策略, 所谓同源是指域名、协议、端口完全相同,不同源则跨域。
解决跨域的方法:
1. 通过jsonp跨域
2. 跨域资源共享(CORS  Access-Control-Allow-Origin: http://api.bob.com)
3. nginx代理跨域

怎么理解同步和异步

1、javascript是单线程。单线程就意味着,所有任务需要排队,前一个任务结束,
才会执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。
于是就有一个概念——任务队列。
2、所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。
同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;
异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,
只有等主线程任务执行完毕,"任务队列"开始通知主线程,请求执行任务,该任务才会进入主线程执行。

你对 WebSocket 了解哪些

WebSocket 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省
服务器资源和带宽并达到实时通讯,它建立在TCP之上,同HTTP一样通过TCP来传输数据,
但是它和HTTP最大不同是:
1. WebSocket是一种双向通信协议,在建立连接后,WebSocket服务器和Browser/Client Agent
都能主动的向对方发送或接收数据,就像Socket一样;
2. WebSocket需要类似TCP的客户端和服务器端通过握手连接连接成功后才能相互通信。

在地址栏输入网址,到数据返回的过程是什么?

:  1. 输入url地址后,首先进行DNS解析,将相应的域名解析为IP地址。
     2. 根据IP地址去寻找相应的服务器。
     3. 与服务器进行TCP的三次握手,建立连接。
     4. 客户端发送请求,找到相应的资源库。
     5. 客户端拿到数据,进行相应的渲染。

原生 ajax 请求的步骤

答:1.创建异步对象 var xhr = new HTMLHttpRequest()
    2.设置请求行  xhr.open()
    3.设置请求头  xhr.setRequestHeader()
	get请求没有请求头
    post请求多一个关键头信息
    Content-type: application/x-www-form-urlencoded
    4.设置请求体  xhr.send      get请求没有请求体,参数为null
    5.监视异步对象的状态变化   xhr.onreadystatechange(){}

怎么理解三次握手

字段	      含义
URG	   紧急指针是否有效。为1,表示某一位需要被优先处理
ACK	   确认号是否有效,一般置为1PSH	   提示接收端应用程序立即从TCP缓冲区把数据读走。
RST	   对方要求重新建立连接,复位。
SYN	   请求建立连接,并在其序列号的字段进行序列号的初始值设定。建立连接,设置为1
FIN    希望断开连接。

三次握手
    第一次握手:建立连接时,客户端发送syn包到服务器,等待服务器确认。
    第二次握手:服务器收到syn包,必须确认客户的SYN,同时自己也发送一个SYN包(syn=y)到客户端
    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,
    客户端和服务器进入(TCP连接成功)状态,完成三次握手
   (通俗:主机1告诉主机2,我可以向你请求数据吗。主机2告诉主机1,可以请求数据。
   主机1告诉主机2,那我来请求数据了,请求完成,实现三次握手)

怎么理解四次挥手

第一次分手:
主机1(可以使客户端,也可以是服务器端)向主机2发送一个FIN报文段;此时,
主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了。

第二次分手:
主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,
主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求。

第三次分手:
主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态。

第四次分手:
主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;
主机2收到主机1ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,
则证明Server端已正常关闭,那好,主机1也可以关闭连接了。

(通俗:主机1告诉主机2,我没有数据要发送了,希望断开连接。主机2接到请求后说,同意断开。
主机2告诉主机1可以关闭连接了。主机1接到可以关闭的指令后,关闭连接,四次挥手完成)
上一篇:
前端笔记(vue篇)
下一篇:
Git工具
本文目录
本文目录