获得徽章 1
#青训营笔记创作活动#
2月16日 day9
请求时,协议、域名、端口三者有任何一个不同就是跨域请求,跨域本身是浏览器的行为,初衷是为了保证用户的访问安全,防止恶意网站窃取数据,解决跨域问题就需要告诉浏览器这是安全的请求,需要在返回头中设置"Access-Control-Allow-Origin"参数,这个参数是用来表示允许跨域访问的原始域名的,设置为"*"则表示允许所有站点跨域访问。
Spring Boot中跨域可以使用@CrossOrigin注解实现跨域(类级别跨域+全局跨域,表示此类中所有的接口都可以跨域;方法级别跨域,表示此方法可以跨域);通过配置文件实现跨域(新文件中添加@Configuration注解实现WebMvcConfigurer接口,重写addCorsMappings方法,设置允许跨域的代码);通过CorsFilter对象实现跨域(与上一种类似,但是可以实现全局跨域);通过Response对象实现跨域(最原始、适用性最强的,是局部跨域,应用范围最小,设置的是方法级别的跨域);通过实现RespinseBodyAdvice实现跨域(重写ResponseBodyAdvice接口中的beforeBodyWrite对所有接口进行跨域设置,全局跨域,对项目中的所有接口有效)(过滤器实现跨域与此类似)。
2月16日 day9
请求时,协议、域名、端口三者有任何一个不同就是跨域请求,跨域本身是浏览器的行为,初衷是为了保证用户的访问安全,防止恶意网站窃取数据,解决跨域问题就需要告诉浏览器这是安全的请求,需要在返回头中设置"Access-Control-Allow-Origin"参数,这个参数是用来表示允许跨域访问的原始域名的,设置为"*"则表示允许所有站点跨域访问。
Spring Boot中跨域可以使用@CrossOrigin注解实现跨域(类级别跨域+全局跨域,表示此类中所有的接口都可以跨域;方法级别跨域,表示此方法可以跨域);通过配置文件实现跨域(新文件中添加@Configuration注解实现WebMvcConfigurer接口,重写addCorsMappings方法,设置允许跨域的代码);通过CorsFilter对象实现跨域(与上一种类似,但是可以实现全局跨域);通过Response对象实现跨域(最原始、适用性最强的,是局部跨域,应用范围最小,设置的是方法级别的跨域);通过实现RespinseBodyAdvice实现跨域(重写ResponseBodyAdvice接口中的beforeBodyWrite对所有接口进行跨域设置,全局跨域,对项目中的所有接口有效)(过滤器实现跨域与此类似)。
展开
评论
点赞
#青训营笔记创作活动#
2月14日 day8
https是加密后的http,没法通过https.host过滤,不过可以在https握手中的Client Hello阶段通过扩展server_name过滤出来,Fllow-TCP Stream之后TCP连接的相关报文都会被展示出来
https通信的破解与client random, server random, pre master key相关
2月14日 day8
https是加密后的http,没法通过https.host过滤,不过可以在https握手中的Client Hello阶段通过扩展server_name过滤出来,Fllow-TCP Stream之后TCP连接的相关报文都会被展示出来
https通信的破解与client random, server random, pre master key相关
展开
评论
点赞
#青训营笔记创作活动#
2月13日 day7
高效debug:断点管理器、静态断点(类似动态日志)、分组管理断点(系统不同链路的断点)、远程服务器debug、快速执行到某个位置(run to cursor/ 直接点数字)、回退开始执行、中断后续执行链路
2月13日 day7
高效debug:断点管理器、静态断点(类似动态日志)、分组管理断点(系统不同链路的断点)、远程服务器debug、快速执行到某个位置(run to cursor/ 直接点数字)、回退开始执行、中断后续执行链路
展开
评论
点赞
#青训营笔记创作活动#
2月12日 day6
热点数据与淘汰策略、缓存雪崩、缓存击穿、缓存穿透、缓存的数据一致性、数据库更新+缓存删除,主要探讨了下缓存的使用过程中的一些典型异常的触发场景与防护策略,以及保持缓存与数据库数据一致性的一些保障手段。
2月12日 day6
热点数据与淘汰策略、缓存雪崩、缓存击穿、缓存穿透、缓存的数据一致性、数据库更新+缓存删除,主要探讨了下缓存的使用过程中的一些典型异常的触发场景与防护策略,以及保持缓存与数据库数据一致性的一些保障手段。
展开
评论
点赞
#青训营笔记创作活动#
2月11日 day5
5xx(状态码)是什么?
状态码: 200 正常; 4xx 客户端错误;5xx 服务器问题(由网关返回给客户端)
网关是依据什么返回给客户端5xx错误码的?
nginx: 在服务器与用户之间,作为连接的中继站,此时客户端从原本的 直连服务端,1个TCP连接,变成直连nginx,2个TCP连接。屏蔽掉具体有哪些服务器的代理方式是反向代理,反之是正向代理。另外,ngix还可以根据服务器的型内配置,给服务器加上不同的访问权重,权重高的多转发请求,可以以此实现不同的负载均衡策略。
如果服务器出问题,nginx与服务器的TCP连接就不能正常响应,nginx随后会返回5xx的错误码给客户端,而服务端本身并不会有5xx的日志信息。
为什么会产生502?
从网关访问的入站服务器收到无效响应(TCP的RST报文或第四次挥手的FIN报文)
RST用来异常地关闭连接,是TCP包头的标志位,RST接收方应用层会看到connect reset/connection refused报错。服务器设置超时时间过短、服务端应用进程崩了(crash)都会导致502。
怎么处理502?
判断服务器是否曾经崩溃过(服务器CPU或内存的监控图断崖式下跌)、进程上次的启动时间(与操作时间有差距,则是崩溃后被重新拉起)
找出崩溃原因:对未初始化的内存地址进行写操作/内存访问越界(会留下代码堆栈,可以根据堆栈报错排查问题),(主动退出进程的操作,比较隐蔽),网关请求到了不存在的IP上(nginx文件需要自己手动配置,不过很多公司会对nginx二次开发,可以看nginx侧是否有打印相关的日志,看转发的IP端口是否符合预期)
2月11日 day5
5xx(状态码)是什么?
状态码: 200 正常; 4xx 客户端错误;5xx 服务器问题(由网关返回给客户端)
网关是依据什么返回给客户端5xx错误码的?
nginx: 在服务器与用户之间,作为连接的中继站,此时客户端从原本的 直连服务端,1个TCP连接,变成直连nginx,2个TCP连接。屏蔽掉具体有哪些服务器的代理方式是反向代理,反之是正向代理。另外,ngix还可以根据服务器的型内配置,给服务器加上不同的访问权重,权重高的多转发请求,可以以此实现不同的负载均衡策略。
如果服务器出问题,nginx与服务器的TCP连接就不能正常响应,nginx随后会返回5xx的错误码给客户端,而服务端本身并不会有5xx的日志信息。
为什么会产生502?
从网关访问的入站服务器收到无效响应(TCP的RST报文或第四次挥手的FIN报文)
RST用来异常地关闭连接,是TCP包头的标志位,RST接收方应用层会看到connect reset/connection refused报错。服务器设置超时时间过短、服务端应用进程崩了(crash)都会导致502。
怎么处理502?
判断服务器是否曾经崩溃过(服务器CPU或内存的监控图断崖式下跌)、进程上次的启动时间(与操作时间有差距,则是崩溃后被重新拉起)
找出崩溃原因:对未初始化的内存地址进行写操作/内存访问越界(会留下代码堆栈,可以根据堆栈报错排查问题),(主动退出进程的操作,比较隐蔽),网关请求到了不存在的IP上(nginx文件需要自己手动配置,不过很多公司会对nginx二次开发,可以看nginx侧是否有打印相关的日志,看转发的IP端口是否符合预期)
展开
评论
点赞
#青训营笔记创作活动#
2月10日 day4
内容摘要
1.看文章先看图 再看图解
2.可以用主、副显示器完成原文阅读、记录笔记的工作
3.百度查不到就换其他网站(使用下来Google和StackOverflow几乎能解决80%的问题)
4.活用翻译网站
5.查文献 提取关键词 由大到小 逐步缩小范围
6.复杂句子提取关键词
7.阅读的过程中记得积累
2月10日 day4
内容摘要
1.看文章先看图 再看图解
2.可以用主、副显示器完成原文阅读、记录笔记的工作
3.百度查不到就换其他网站(使用下来Google和StackOverflow几乎能解决80%的问题)
4.活用翻译网站
5.查文献 提取关键词 由大到小 逐步缩小范围
6.复杂句子提取关键词
7.阅读的过程中记得积累
展开
评论
点赞
#青训营笔记创作活动#
2月9日 day3
Intelli J Community Edition 2022.2.1没有合适版本的Lombok
MyBatisX之前看到有国外的程序员用过
PlantUML画流程图看起来好严谨 不过思维导图还是更喜欢在博思白板上画boardmix.cn
JAVA Coding Guidelines还没开始使用 希望可以在它的辅助下码出高效 码出质量 哈哈哈
Maven Helper看起来就好有用 不过不知道直接排除冲突的依赖会不会产生新的问题
Grep Console 漂亮的控制台看起来就很赞
Markdown 还是不习惯markdown 老是在markdown文件里贴html的代码来排版(晕)
Translation 谷——歌——翻——译——!真的很喜欢谷歌翻译...可惜大陆不能用了
Vue.js 我这个版本也还是不能下 晕
2月9日 day3
Intelli J Community Edition 2022.2.1没有合适版本的Lombok
MyBatisX之前看到有国外的程序员用过
PlantUML画流程图看起来好严谨 不过思维导图还是更喜欢在博思白板上画boardmix.cn
JAVA Coding Guidelines还没开始使用 希望可以在它的辅助下码出高效 码出质量 哈哈哈
Maven Helper看起来就好有用 不过不知道直接排除冲突的依赖会不会产生新的问题
Grep Console 漂亮的控制台看起来就很赞
Markdown 还是不习惯markdown 老是在markdown文件里贴html的代码来排版(晕)
Translation 谷——歌——翻——译——!真的很喜欢谷歌翻译...可惜大陆不能用了
Vue.js 我这个版本也还是不能下 晕
展开
评论
点赞