计算机网络学习笔记
计算机网络学习笔记1.TCP/IP四层模型,OSI七层模型的理解为了增强通用性和兼容性,计算机网络都被设计成层次机构,每一层都遵守一定的规则。
因此有了OSI这样一个抽象的网络通信参考模型,按照这个标准使计算机网络系统可以互相连接。
物理层:通过网线、光缆等这种物理方式将电脑连接起来。传递的数据是比特流,0101010100。
数据链路层:首先,把比特流封装成数据帧的格式,对0、1进行分组。电脑连接起来之后,数据都经过网卡来传输,而网卡上定义了全世界唯一的MAC地址。然后再通过广播的形式向局域网内所有电脑发送数据,再根据数据中MAC地址和自身对比判断是否是发给自己的。
网络层:广播的形式太低效,为了区分哪些MAC地址属于同一个子网,网络层定义了IP和子网掩码,通过对IP和子网掩码进行与运算就知道是否是同一个子网,再通过路由器和交换机进行传输。IP协议属于网络层的协议。
传输层:有了网络层的MAC+IP地址之后,为了确定数据包是从哪个进程发送过来的,就需要端口号,通过端口来建立通信,比如TCP和UDP属于这一层的协议。
会话层:负责建立和断开连接
表示层:为了使得数据能够被其他的计算机 ...
SpringBoot之AOP的使用
SpringBoot之AOP的使用spring核心思想分三大类:控制反转(IOC),依赖注入(DI)和面向切面(AOP)
1.什么是面向切面编程
AOP简介
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。
为什么使用AOP编程范式?
分离功能性需求和非功能性需求
集中处理某一关注点
侵入性少,增强代码可读性及可维护性
AOP应用场景
权限控制、缓存控制、事务控制、分布式追踪、异常处理等
总之,在程序运行时,动态地将代码切入到类的指定方法或位置上的思想,就是面向切面编程。
2.AOP常用术语Spring的AOP中有几个重要概念搞清楚就行
执行点(Executepoint) - 类初始化,方法调用。
连接点(Joinpoint) - 执行点+方位的组合,可确定Joinpoint,比如类开始初始化前,类初始化后,方法调用前,方法调用后。
切点(Pointcut) - 在众多执行点中,定位感兴趣的执行点。Executepoint相当于数据库表中的记录,而Point ...
JWT介绍和安全防范以及SpringBoot整合JWT实现接口权限认证
JWT介绍和安全防范以及SpringBoot集成JWT实现接口权限认证
1.什么是JWTJSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA.
...
SSM实现前后端分离,整合html作为视图引擎,解决跨域和拦截问题
SSM实现前后端分离,整合html作为视图引擎,解决跨域和拦截问题按照csdn查的说sping4.2以上的jar 跨域使用@CrosssOrgin注解就可以跨域了但我不知道为啥没有用。不过使用跨域过滤器工具类的方式解决的跨域问题,后端的json数据能够跨域被接收到。
1. 写CrossingFilter过滤器类,实现(Interfaces)本地ApacheTomcat的Filter接口1234567891011121314151617181920212223242526272829303132333435363738394041424344import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletRes ...
如何实现文件的安全上传?
介绍项目中常会遇到需要文件上传和下载的地方,其中文件上传的安全问题不可忽视,下面是我考虑到的文件上传安全问题和用编码实现的过程
对文件大小的判断,防止恶意上传大文件挤占服务器资源
对文件类型的判断,这里实现的是对图片的判断
对图片进行resize处理,防止图片嵌入恶意可执行的代码,通过压缩可以实现对嵌入可代码的破坏
文件保存的地址有两种,一个就是借助第三方服务器进行保存(七牛云),或者是放在自己的服务器,在成功读取文件后,进行保存的时候,可以对文件名进行修改,采用随机数,一定程度上提高了安全性
文件服务器和应用服务器的分开,避免对应用程序的直接破坏
文件夹权限的设置,对用户上传的文件夹设置只读权限,可以有效防止远端直接启动木马程序
当然,假如这个功能不需要,直接关闭文件上传功能是最安全的
编码此Demo实现文件上传的读取保存,并在数据库中插入数据
项目目录
pom.xml
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 ...
api-design-demo 后端快速开发脚手架
1.介绍
api-design-demo是我对之前所学框架的一个整合,基于SpringBoot整合Mybatis,Redis,Shiro,融合Swagger做接口文档,运用JSR303做数据校验,利用MybatisPlus简化数据访问层的操作,利用AutoGenerator自动代码生成器,减少代码的编写,更加专注业务逻辑的实现,从而提高开发效率。
自定义全局异常处理器,使controller层始终能返回给前端标准响应状态
2.项目结构api-design-demo —-src — config
enums
handler
exception
handler
shiro
...
阿里云部署SpringBoot项目(内置Tomcat),配置https,配置邮箱端口465,成功部署发布
配置https我是阿里云的服务器,里面有个白嫖的SSL证书,申请成功后把它和域名绑定就行,再下载证书就行了。
因为我用的内置的Tomcat,所以下载的还是Tomcat的证书:
现在就是配项目配置https,我的springboot版本是1.5.10.RELEASE,2.0X版本的就不知道了,我这个配置很简单,放到resources是文件夹下就行了
在application.properties中加入如下配置,让项目加载ssl123456#https配置server.port=443server.ssl.key-store=classpath:3904483_www.XXXXX.top.pfxserver.ssl.key-store-password=XXXXXserver.ssl.keyStoreType=PKCS12server.ssl.enabled=true
就完成了,因为https协议默认是443端口所以我把项目端口改成443,这样就不用配置hhtp转https了。
其实到maven打包,就可以部署了,但项目里有个发送邮件的,默认是25端口,这个国内的服务器直接就禁用了2 ...
hexo常用命令
hexo常用命令
初始化hexo
1# hexo init
启动hexo
1# hexo s
清楚缓存
1# hexo clean
生成静态网站
1# hexo g
将现在的文件部署到远端
1# hexo d