• js今日小结—Ajax、前端安全、GET&POST、闭包、HTTPS


    HTTPS

    HTTP+加密(SSL、TLS)+认证+完整性保护 = HTTPS;

    GET和POST的区别

    • get拉取数据,post传输数据
    • get请求能被浏览器主动缓存,post不会(除非手动)
    • get请求在URL中传送的参数是有长度限制的
    • get请求参数在URL中传递,post在request body中传递
    • get请求参数会保留在浏览器历史记录里面
    • get请求在浏览器回退上无影响,post会再次请求一次

    闭包、闭包缺点

    优点:

    1. 保护函数内的变量安全,加强了封装性
    2. 在内存中维持一个变量(用的太多就变成了缺点,占内存)
    3. 方便调用上下文的局部变量。
    4. 逻辑连续,当闭包作为另一个函数调用的参数时,避免你脱离当前逻辑而单独编写额外逻辑。

    缺点:

    1. 返回闭包的函数是个非常大的函数。
    2. 常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。
    3. 内存浪费问题,无效内存的产生。

    注意:

    1. 由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。
    2. 解决方法是,在退出函数之前,将不使用的局部变量全部删除。

    Ajax特点以及优缺点

    优点:

    1. 页面无刷新,在页面内与服务器通信,给用户的体验非常好。
    2. 使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。
    3. ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
    4. 基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

    缺点:

    1. ajax干掉了back按钮,即对浏览器后退机制的破坏。后退按钮是一个标准的web站点的重要功能,但是它没法和js进行很好的合作。(,在Gmail下面是可以后退的,但是,它也并不能改变ajax的机制,它只是采用的一个比较笨但是有效的办法,即用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏的IFRAME来重现页面上的变更。)
    2. 安全问题:ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。
    3. 对搜索引擎的支持比较弱;
    4. 破坏了程序的异常机制。

    前端安全

    • XSS:(cross-site scripting)跨域脚本攻击;
      原理:,不需登录验证,向页面注入js脚本,让你的js脚本执行有误;
      解决:(1)通过set-cookie的HTTPonly属性来加以限制,使得cookie不被JavaScript脚本访问到;(2)输入检查:验证,特殊字符过滤掉;(3)输出检查。
    • CRSF:(cross-siterequest forgery)跨站资源伪造;
      原理:以用户注册登录了A网站,A网站给他一个cookie,当该用户访问B网站时,B网站给用户一个引诱点击,使得该用户点击进入A网站。(用户在网站登录过,或者网站有漏洞);
      解决:(1)Token验证;(2)Referer验证(页面来源);(3)隐藏令牌(与Token类似,Token隐藏在http头中)

    JavaScript作用域类型(全局作用域、函数作用域、块级作用域);

    • 全局变量:声明在函数外部的变量(所有没有var直接赋值的变量都属于全局变量);
    • 局部变量:声明在函数内部的变量(所有没有var直接赋值的变量都属于全局变量)
      vari=100;//显式申明
      i=100;//隐式申明
      函数中使用var关键字进行显式申明的变量是做为局部变量,而没有用var关键字,使用直接赋值方式声明的是全局变量。 
    • 全局变量在整个上下文都有效只是在没有赋值之前调用,会输出undefined
    • 函数作用域是针对局部变量来说的,在函数中定义的变量在函数外不能获取
    • JavaScript有没有块级作用域;
      js中没有块级作用域,但是可以用闭包实现类似功能。
  • 相关阅读:
    【瞎口胡】CDQ 分治
    题解 Luogu P2934 [USACO09JAN]Safe Travel G
    【瞎口胡】线段树优化建图
    git did not exit cleanly (exit code 128)如何解决
    转贴Linux服务器性能评估
    小记 SqlHelper
    zookeeper安装部署
    zookeeper原理介绍
    zookeeper基本操作
    zookeeper四字命令
  • 原文地址:https://www.cnblogs.com/yehui-mmd/p/8762846.html
Copyright © 2020-2023  润新知