ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

刘老师第三阶段知识点汇中:

2021-10-27 18:30:45  阅读:167  来源: 互联网

标签:知识点 git 请求 用户 刘老师 Ajax 反向 服务器 汇中


一:SHA-1

(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
 

问题1: 如果数据相同,采用相同的hash函数      问: 值是否相同?  答案:必然相同!!!!
问题2:  常见hash编码 是多少位16进制数??    答案: 8位16进制数
问题3:  8位16进制数,取值区间多少?                答案: 2^32
            00000000-FFFFFFFF   
问题4:  1kb的数据和1gb数据 hash谁快?         答案: 一样快
问题5:  数据相同则hash码相同,hash码相同数据一定相同?  不正确. **hash碰撞!**
            降低碰撞概率, 增大hash长度.
 二:spel 

 规则:
     *    1. 当Spring容器启动时,会加载YML配置文件.
     *       会将内部的key-value结构 加载到spring维护的内存空间中
     *    2. @Value功能,从spring容器中根据key 动态赋值
     *    3. springel表达式 简称:spel
     *
     * 使用场景:
     *      如果代码中需要给成员变量赋值时,一般采用动态赋值的方式.

三:GIT操作
===常规Git操作
git 工作区 缓存区 本地仓库 远程仓库
1.检查当前分支 git branch
2.创建分支 git checkout -b 新分支名称
3.推送新分支 git push -u origin 新分支名称 第一次推送需要写-u
4.将文件添加到暂存区 git add .
5.提交代码 git commit -m “提交消息”
6.推动代码到云端 git push
7.合并代码到主分支 git merge 分支名称 在主线中操作
8.克隆代码 git clone “仓库地址”
9.将远程库的数据更新到本地 git pull

=== git中的分支
说明:开发中需要创建自己的分支结构,如果分支中的代码准确无误,应该将分支结构并入主线(master)
步骤:
1. 创建分支 git checkout -b 新分支名称
2. 推送新分支 git push -u origin 新分支名称
3. 修改工作区的内容
4. 提交数据 git add. git commit -m “xxxx” git push 提交到分支中
5. 切换到主线分支
6. 合并分支 git merge 分支名称 (在本地库中合并)
7. 将数据推送到云端 git push


关于依赖考题
问题: 用户暂时不需要数据库的配置. 问:能否先行添加数据源的启动项?? (不添加任何注解!!!)
答案: 不可以,因为启动项执行需要完整配置,数据源信息并未添加.导致报错.

总结: SpringBoot项目中的依赖包尤其启动项,添加时慎重. 如果需要添加启动器,则必须保证配置完整.否则程序启动必然失败!!!.

五:properties文件与yml文件

#properties语法:
#数据结构:   key=value
#注意事项:   不要添加""号 本身就是字符串.
#字符集编码:  写法采用utf-8,程序读取时采用ISO-8859-1
pro.msg=配置信息

#关于YML配置文件说明
# 1.数据结构    key=value
# 2.数据类型    默认都是字符串 如果需要类型转化,则框架已经在内部完成
# 3.yml写法:   1.key: (空格)value  2.有层级结构 编辑时注意
# 4.字符集编码: 默认程序加载时都是UTF-8

  /**
     * 知识点:1.Spring内部维护一个Map集合
     *            2. Map集合 key/value 分别是谁???
     *             3.IOC管理的对象的方式   1.@Controller等注解 2.@bean
     *  
     * 1.注解组合:  @Configuration +  @Bean
     * 2.什么是bean: 被spring管理的对象就是bean
     * 3.@Bean注解的作用
     *      将方法的返回值对象交给Spring管理
     * 4.Spring如何管理对象?
     *   数据结构: Map集合   Map<K,V>
     *   key:   对象的ID
     *   value: 实例化之后的对象
     * demo1: Spring如何管理对象
     *      key: 方法的名称
     *      value: 方法的返回值   Map<user,new User()>
     *
     * demo2:
     *      @Controller
     *      HelloController{}
     *      key: helloController   首字母小写
     *      value: spring通过反射创建的HelloController对象

六:restFul

1.RestFul介绍
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
定义: RESTFul 是一种请求的规则(语法/定义)

2.RESTFul说明
Get请求: http://localhost:8090/findUserByNS?name=王昭君&sex=女
信息: 1.查询请求
2.参数直观 name=xxx
3.请求的结构冗余. 不合适多个参数的写法.

3.请求优化:
http://localhost:8090/user/王昭君/女
4.优势:
1. 用户不能了解请求的意图 规定:请求方法名称不能出现 “动词”,只能写名词.
2. 参数保密, 只有后端服务器清楚参数的意义.
3. 请求字节传输量少 简洁.
注意事项:
1. URL地址中参数与参数之间使用 /分隔.
2. 请求的参数的位置一旦固定,不可轻易修改.
3. 用户发请求时,就应该按照restFul的结构执行.
4. restFul请求一般以get请求为主. put/delete/post

七:MVVM

M: model 数据层
V: view 视图层
VM: 视图数据的控制层

流程:
1. Model变化, 虚拟DOM操作内存数据变化. 所以页面变化.
2. View变化, 虚拟DOM操作内存数据变化, 数据变化.

 


 


 八:vue的生命周期

            1.生命周期函数的方法名称 必须固定.
            2.生命周期函数是VUE对象特有的函数.应该放到根目录下.
            3.当页面渲染成功之后, 一共执行了4个生命周期方法.
                第一类: VUE对象的创建.
                    beforeCreate:对象创建前调用
                    created: VUE对象已经创建完成之后调用    
                第二类: VUE对象的挂载(渲染)
                    beforeMount:  el : "#app",VUE对象在找到@APP标签之前先执行该函数.
                    mounted: 当挂载完成(渲染完成),用户可以看到页面数据之后调用该函数
            
            4. 用户修改阶段:
                第三类:
                    beforeUpdate: 当用户修改数据 点击"回车" 之后调用该函数
                    过渡: 数据已经被修改
                    updated: 数据已经被修改之后调用该函数
            5. 销毁阶段:
                 销毁函数,VUE对象默认不会调用. 可以通过函数由用户调用
                 beforeDestroy: 在销毁方法执行前
 

九:ajax原理

1.Ajax介绍
Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。 [3] 使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。 

特点:
局部刷新,异步访问

2. Ajax异步原理
请求同步说明:
用户向服务器发起请求,如果服务器正忙,这时程序处于等待的状态.这时页面处于加载 ,同时用户不能操作.
为了让用户的体验更好,则一般采用异步.

3.异步调用的原理:
 

4.步骤:

  1.  用户发起Ajax请求, Ajax内部机制,将请求交给Ajax引擎处理.
  2. Ajax引擎接收到用户的请求之后,重写发起一个新的请求.访问后端服务器.
  3.  当服务器端接收到了 Ajax请求之后,完成业务处理.之后将数据响应给Ajax引擎.
  4. .Ajax引擎通过事先约定好的 回调函数, 将服务器数据 交还给用户.
  5. 用户在请求的过程中,可以完成自己的任务.
  6. 注意事项: 多个Ajax的请求 不关注顺序.

5.ES6以后推出的新的代码规范,目的简化现有axios ajax请求的代码结构.提高用户的开发效率.
关键字用法:

  • 1. async 用来标识函数!!!
  • 2. await 用来标识请求的!!!

十:web的组件化

说明: 传统的页面开发,会将大量的HTML/CSS/JS进行引入,但是引入之后结构混乱 不便于管理. 开发维护时 成本较高.
1.组件化思想:
在VUE中 可以将一个组件,看作是一个页面. 在其中可以引入独立的样式/JS/HTML 进行单独的管理.
组件可以进行复用.
关键字: 组件–页面 (html/css/js)

2核心知识点: 组件化的思想体现了"分治思想"
补充知识: 为了保证组件化 相互之间互不干扰,则应该在组件内部 单独定义html/js/css.

3.关于组件知识点
为什么使用组件?
答:
1.原来用户编辑页面时,需要引入/维护大量的JS/CSS等.如果数量很多,则导致代码结构混乱.所以需要引入组件化思想.
2.前端框架为了更好的解耦,采用了"分治"思想的构建代码.前端向后端代码结构看齐.(微服务框架)
3.组件采用树形结构, 可以将功能小型化.单独维护.
4.组件是一个独立的个体,内部包含HTML/CSS/JS
5.使用组件看做就是一个页面

如何理解template属性?
答:
1.template标签是组件中定义html标记的模板.
2.template标签必须有根标签div
3.template标签最好定义在body标签内部,写法方便.

关于组件使用有什么注意事项?
答:
1. 组件的使用必须在VUE对象渲染的区域中使用.
2. 组件有全局的/有局部的.注意作用域.
3. 在html标签中使用组件时,注意大小写问题.如果是驼峰规则,则使用 "-"连接.
4. 组件必须先定义再使用.
 十一:vue路由

说明: 用户发起一个请求,在互联网中经过多个站点的跳转.最终获取服务器端的数据. 把互联网中网络的链路称之为路由. (网络用语)
VUE中的路由: 根据用户的请求URL地址,展现特定的组件(页面)信息. (控制用户程序跳转过程)

重定向/转发:

转发说明

说明: 用户请求服务器时,由服务器将请求转给另一台服务器的过程.叫做转发

重定向说明

说明: 用户请求服务器时,服务器由于特殊原因告知用户应该访问服务器B,之后用户再次发起请求访问服务器B. 这个过程称之为重定向

 

十二:同源策略

同源策略
规定: 浏览器要求在解析Ajax请求时,要求浏览器的路径与Ajax的请求的路径必须满足三个要求.则满足同源策略.可以访问服务器.
三个要求:
请求协议://域名:端口号都必须相同!!! 

要素:
1.浏览器的请求路径.
2.Ajax请求的网址

同源策略案例
案例1:
1.浏览器地址 http://localhost:8090/findAll
2.Ajax请求地址 http://localhost:8090/aaaa
满足同源策略.服务器可以正常访问.

案例2:
1.浏览器地址 http://localhost:8091/findAll
2.Ajax请求地址 http://localhost:8090/aaaa
不满足同源策略. 端口号不同. 属于跨域请求.

案例3:
1.浏览器地址 http://localhost:8090/findAll
2.Ajax请求地址 https://localhost:8090/aaaa
不满足同源策略. 协议不同. 属于跨域请求.

案例4:
前提: IP与域名映射
1.浏览器地址 http://www.baidu.com/findAll
2.Ajax请求地址 http://10.0.1.1/aaaa
不满足同源策略. 域名不同.

案例5:
1.浏览器地址 http://10.0.1.1:80/findAll
2.Ajax请求地址 http://10.0.1.1/aaaa
满足同源策略. 默认端口号就是80

案例6:
1.浏览器地址 https://10.0.1.1:443/findAll
2.Ajax请求地址 https://10.0.1.1:443/aaaa
满足同源策略

什么是跨域
违反了同源策略的请求,就是跨域的请求.

跨域解决方法
JSONP(了解)
**JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。**由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的

核心用法: 利用
返回值语法固定的: callback(JSON数据)

CORS方式
说明: CORS(Cross-origin resource sharing) “跨域资源共享”,现在的主流的浏览器都支持cors的方式. 如果需要跨域,则需要配置响应头信息.标识是否允许.
 


 十三:Session和Cookie
1.Session介绍
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。注意会话状态仅在支持cookie的浏览器中保留。

小结:
1.Session称之为 “会话机制”
2.在浏览器中打开网页 就是一个会话.
3.用户的数据可以保存到会话中,但是有生命周期. 当会话关闭,则数据消失.

2 Cookie机制
Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 [1] 。
说明:
1.cookie是一个小型的文本文件
2.cookie中存储的数据一般都是密文.
3.cookie中的数据的生命周期可控. 几天.几年!!!

3 session和cookie区别
1.session的数据是临时存储.cookie的数据可以永久保存. (生命周期不同)
2.sesion是浏览器中的一个内存对象!而cookie是一个实际的本地文件. (形式不同).
3.session一般存储是一些涉密数据.cookie一般存储相对公开的数据(免密登录). (安全性)

十四:全局异常处理用法
实现原理 AOP
AOP说明:
名称: “面向切面编程”
作用: 在不影响源码的条件下,对方法进行扩展,降低了业务的耦合性.
通知:
1.前置通知: before
2.后置通知: afterReturning
3.异常通知: afterThrowing
4.最终通知: after
上述的四大通知,不能改变程序的运行的状态.
5.环绕通知: around
环绕通知是功能最为强大的通知方法,可以控制程序的流转过程.全局异常处理实现
/**
 * 注解的作用:
 *   1.该注解只拦截Controller层抛出的异常信息!
 *      controller ---Service-----Mapper 异常向上抛出.
 *   2.需要配合指定异常的类型.
 */
 

@RestControllerAdvice
public class SystemAOP {

    //当前Controller层,只拦截运行时异常.
    //@ExceptionHandler({RuntimeException.class, SQLException.class})
    @ExceptionHandler({RuntimeException.class})
    public SysResult exception(Exception e){
        //控制台打印异常.
        e.printStackTrace();
        return SysResult.fail();
    }
}


十五:正则表达式
1 正则说明
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

2 语法介绍
标识开头/结尾/匹配多次

 regex: abc 标识只能匹配固定的字符abc
regex: abc* 标识匹配 ab,c可以任意次.
regex: abc? 标识匹配 ab,c可以1次或者0次.

匹配确定次

 

regex: c{3} c只能出现3次
regex: c{3,} c出现>=3次
regex: c{3,10} c出现>=3 <=10次
regex: .* 匹配所有字符.

匹配固定字符

 regex:

      a[ab]     匹配2个字符  第一个字符必须为a, 第二个字符 必须a 或者b
      [a-z][0-9]  第一个字符是a-z  第二个字符必须是0-9
分组匹配

demo: (png|jpg|gif) 字符要么是png,要么是ipg 要么是gif.

十六:正向/反向代理

1.反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

特点:
1.反向代理服务器位于用户和服务器之间.
2.用户访问反向代理服务器,就可以获取真实的资源.
3.反向代理机制 用户无需了解真实的服务器信息.
4.反向代理保护了服务器端信息,也称之为服务器端代理.

2.正向代理
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

特点:
1. 正向代理服务器位于用户和服务器之间.
2. 用户发起请求时,非常明确自己访问的服务器到底是谁
3. 真实的服务器不清楚真实的用户是谁.保护了用户的信息.
所以称之为客户端代理.
 

正向/反向代理说明

说明: 用户每一次请求都包含了正向代理和反向代理.
正向代理一般适用于网络的通信.
反向代理一般适用于服务器获取信息.

 十七:Nginx

Nginx介绍
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

1. Nginx特点
nginx是非常优秀的反向代理服务器.
占用内存少 不到2M tomcat服务器占用多大内存 200M左右
并发(负载)能力强 3-5万次/秒  # 负载均衡策略: 1.轮询策略 2.权重策略 3.iphash策略
tomcat服务器并发能力 250-500次/秒
调优之后可以实现1000次/秒
nginx可以当作负载均衡服务器使用.
 

说明: 在windows中nginx服务每次点击启动之后,都会生成2个进程项.
注意事项: 在windows中nginx只能启动一次.
异常信息如下:

关于启动2项说明:
进程项1: nginx主要进程信息.
进程项2: nginx的守护进程 主要的任务防止主进程意外关闭.
关闭nginx 应该先关闭守护(内存晓得)再关闭主进程(内存大的).
2. 相关命令

命令:
1. 启动命令 start nginx
2. 重启命令 nginx -s reload
3. 关闭命令 nginx -s stop

知识点:
1. nginx反向代理需要http协议支持.
2. server 每个反向代理服务都是一个server.
3. listen 关键字 默认监听80端口.
4. server_name 根据指定的域名进行反向代理
5. location 反向代理时拦截的策略 / 所有的请求
6. root 代表反向代理的是一个目录
7. index 默认访问的页面
 

反向代理配置:

反向代理配置:

 http {
	 server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
	 }
}


 十八:linux命令

cat 输出文件所有的内容
more 输出文档所有的内容,分页输出,空格浏览下一屏,q退出
less 用法和more相同,只是通过PgUp、PgDo键来控制
tail 用于显示文件后几号,使用频繁
tail -10 nginx.conf 查看nginx.conf的最后10行
tail –f nginx.conf 动态查看日志,方便查看日志新增的信息
ctrl+c 结束查看
 


 


 

标签:知识点,git,请求,用户,刘老师,Ajax,反向,服务器,汇中
来源: https://blog.csdn.net/xiaobai_267/article/details/120985523

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有