JavaScript

Cookie、sessionStorage、localStorage的区别和应用场景生命周期:cookie:可设置失效时间,没有设置的话,默认是关闭浏览器后失效localStorage:除非被手动清除,否则将会永久保存。sessionStorage:仅在当前网页会话下有效,关闭页面或浏览器后就会被清除。存放数据大小:cookie:4KB左右localStorage和sessionStorage:可以保存5MB的信息。http请求:cookie:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题localStorage和sessionStorage:仅在客户端(即浏览器)中保存,不参与和服务器的通信易用性:cookie:需要程序员自己封装,源生的Cookie接口不友好localStorage和sessionStorage:源生接口可以接受,亦可再次封装来对Object和Array有更好的支持应用场景:从安全性来说,因为每次http请求都会携带cookie信息,这样无形中浪费了带宽,所以cookie应该尽可能少的使用,另外cookie还需要指定作用域,不可以跨域调用,限制比较多。但是用来识别用户登录来说,cookie还是比stprage更好用的。其他情况下,可以使用storage,就用storage。storage在存储数据的大小上比cookie更好,现在基本上很少使用cookie了localStorage和sessionStorage唯一的差别一个是永久保存在浏览器里面,一个是关闭网页就清除了信息。localStorage可以用来夸页面传递参数,sessionStorage用来保存一些临时的数据,防止用户刷新页面之后丢失了一些参数sessionStorage和LocalStorage的区别sessionStorage将数据临时存储在session中,浏览器关闭,数据随之消失,localStorage将数据存储在本地,理论上来说数据永远不会消失,除非人为删除另外,不同浏览器无法共享localStorage和sessionStorage中的信息。同一浏览器的相同域名和端口的不同页面间可以共享相同的localStorage,但是不同页面间无法共享sessionStorage的信息。

2021-9-17 188 0
JavaScript

最常用的请求方法有4种,Get、Post、Put、Delete1)Get,它用于获取信息,注意,他只是获取、查询数据,也就是说它不会修改服务器上的数据,从这点来讲,它是数据安全的,而稍后会提到的Post它是可以修改数据的,所以这也是两者差别之一了。2)Post,它是可以向服务器发送修改请求,从而修改服务器的数据,比方说,我们要在论坛上回贴、在博客上评论,这就要用到Post了,当然它也是可以仅仅获取数据的。3)Delete删除数据。可以通过Get/Post来实现。用的不多,暂不多写,以后扩充。4)Put,增加、放置数据,可以通过Get/Post来实现。用的不多,暂不多写,以后扩充。get和post的区别2)GET提交的数据比较少,最多1024B,因为GET数据是附在URL之后的,而URL则会受到不同环境的限制的,比如说IE对其限制为2K+35,而POST可以传送更多的数据(理论上是没有限制的,但一般也会受不同的环境,如浏览器、操作系统、服务器处理能力等限制,IIS4可支持80KB,IIS5可支持100KB)。3)Post的安全性要比Get高,因为Get时,参数数据是明文传输的,而且使用GET的话,还可能造成Cross-siterequestforgery攻击。而POST数据则可以加密的,但GET的速度可能会快些。操作方式数据位置明文密文数据安全长度限制应用场景GETHTTP包头明文不安全长度较小查询数据POSTHTTP正文可明可密安全支持较大数据传输修改数据

JavaScript

跨域问题产生的原因同源策略:端口相同、域名相同、协议相同同源策略是浏览器所做的,目的是为了保证用户信息的安全,防止恶意的网站窃取数据。同源策略限制范围:Cookie、LocalStorage、IndexDB无法读取;DOM无法获取;AJAX请求不能发送解决方法CORS(cross-originresourcesharing)跨域资源请求:浏览器发送一个跨域的ajax请求的时候,请求头会加上origin字段,但是它不知道这个资源服务端是否允许跨域请求。浏览器会发送到服务端,如果服务器返回的头中没有‘Access-Control-Allow-Origin’:‘对应网址或*’的话,那么浏览器会把请求内容给忽略掉,并且会在控制台报错。CORS允许简单的请求方法:GET、POST、HEADCORS允许的Content-Type:text/plain、multipart/form-data、application/x-www-form-ulencoded其他类型的请求方法和Content-Type需要通过预请求验证OPTIONS后才能发送JSONP跨域原理浏览器虽然有同源限制,但是像script标签、link标签、img标签、iframe标签,这种标签上通过src地址来加载一些内容的时候浏览器是允许进行跨域请求的。各种跨域方式的优缺点JSONP的优点是兼容性好,可用于解决主流浏览器跨域数据访问的问题;缺点是仅支持get方法,只能用来获取资源,并且无法进行错误处理。CORS优点是支持所有类型的请求方法,功能完善,并且可以进行错误处理,用onerror监听错误,CORS更加安全;缺点兼容性不够好,IE10以下不支持CORS。

2021-9-16 215 0