<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[striveb的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/striveb</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; striveb]]></copyright><item><title><![CDATA[SpringBoot+Thymeleaf项目解决HTTPS重定向时变成HTTP，设置redirectHttp10Compatible]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/121223050</link><guid>https://blog.youkuaiyun.com/striveb/article/details/121223050</guid><author>striveb</author><pubDate>Tue, 09 Nov 2021 10:42:53 +0800</pubDate><description><![CDATA[一、前景

由于新配了https的域名，但不支持通过nginx将域名转为http，在界面有些地方的重定向会失效，显示“was loaded over HTTPS, but requested an insecure frame”报错，所以只能通过代码层面去解决。

项目是springboot+Thymeleaf，网上大概提了几种方法：


	在页面上配上“&lt;meta http-equiv="Content-Security-Policy" content="upgrade-insecure-reque]]></description><category></category></item><item><title><![CDATA[idea手动刷新git分支的详细教程及IDEA中分支合并]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/114298997</link><guid>https://blog.youkuaiyun.com/striveb/article/details/114298997</guid><author>striveb</author><pubDate>Wed, 03 Mar 2021 09:01:26 +0800</pubDate><description><![CDATA[简而言之，就是先刷新git，然后在右下角切换分支！

转自：

https://www.jb51.net/article/193253.htm
]]></description><category></category></item><item><title><![CDATA[js文件引用方式及其同步执行与异步执行]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/113373582</link><guid>https://blog.youkuaiyun.com/striveb/article/details/113373582</guid><author>striveb</author><pubDate>Fri, 29 Jan 2021 11:08:25 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/grefr/p/5046296.html

https://www.cnblogs.com/sheep-sheep/p/9438053.html
]]></description><category></category></item><item><title><![CDATA[微服务之微服务架构]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/101916493</link><guid>https://blog.youkuaiyun.com/striveb/article/details/101916493</guid><author>striveb</author><pubDate>Wed, 02 Oct 2019 14:26:46 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

一般的服务调用流程如图：





首先服务提供者（就是提供服务的一方）按照一定格式的服务描述，向注册中心注册服务，声明自己能够提供哪些服务以及服务的地址是什么，完成服务发布。

接下来服务消费者（就是调用服务的一方）请求注册中心，查询所需要调用服务的地址，然后以约定的通信协议向服务提供者发起请求，得到请求结果后再按照约定的协议...]]></description><category></category></item><item><title><![CDATA[微服务之初识微服务]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/101106443</link><guid>https://blog.youkuaiyun.com/striveb/article/details/101106443</guid><author>striveb</author><pubDate>Sat, 21 Sep 2019 14:27:38 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

一、微服务介绍

1. 微服务简介

顾名思义，微服务得从两个方面去理解，什么是”微”、什么是”服务”， 微 狭义来讲就是体积小、著名的”2 pizza 团队”很好的诠释了这一解释（2 pizza 团队最早是亚马逊 CEO Bezos提出来的，意思是说单个服务的设计，所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨就...]]></description><category></category></item><item><title><![CDATA[常见的认证机制及JSON WEB TOKEN]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/97615717</link><guid>https://blog.youkuaiyun.com/striveb/article/details/97615717</guid><author>striveb</author><pubDate>Sun, 28 Jul 2019 16:11:40 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

HTTP Basic Auth

HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和 password，简言之，Basic Auth是配合RESTful API 使用的最简单的认证方式，只需提供 用户名密码即可，但由于有把用户名密码暴露给第三方客户端的风险，在生产环境下被 使用的越来越少。因...]]></description><category></category></item><item><title><![CDATA[深入理解缓存之缓存预热与淘汰策略]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/95384599</link><guid>https://blog.youkuaiyun.com/striveb/article/details/95384599</guid><author>striveb</author><pubDate>Wed, 10 Jul 2019 21:43:23 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

一、缓存预热

在刚启动的缓存系统中，如果缓存中没有任何数据，如果依靠用户请求的方式重建缓存数据，那么对数据库的压力非常大，而且系统的性能开销也是巨大的。

此时，最好的策略是启动时就把热点数据加载好。这样，用户请求时，直接读取的就是缓存的数据，而无需去读取 DB 重建缓存数据。

举个例子，热门的或者推荐的商品，需要提前预热到缓...]]></description><category></category></item><item><title><![CDATA[深入理解缓存之缓存和数据库的一致性]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/95110502</link><guid>https://blog.youkuaiyun.com/striveb/article/details/95110502</guid><author>striveb</author><pubDate>Mon, 08 Jul 2019 23:02:09 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

产生原因

主要有两种情况，会导致缓存和 DB 的一致性问题：


	并发的场景下，导致读取老的 DB 数据，更新到缓存中。
	
	
	缓存和 DB 的操作，不在一个事务中，可能只有一个操作成功，而另一个操作失败，导致不一致。
	
当然，有一点我们要注意，缓存和 DB 的一致性，我们指的更多的是最终一致性。我们使用缓存只要是提高读...]]></description><category></category></item><item><title><![CDATA[深入理解缓存之缓存存在的问题及应对措施]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/94967323</link><guid>https://blog.youkuaiyun.com/striveb/article/details/94967323</guid><author>striveb</author><pubDate>Sun, 07 Jul 2019 10:25:45 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

1.缓存穿透

指查询一个一定不存在的数据，由于缓存是不命中时被动写( 被动写，指的是从 DB 查询到数据，则更新到缓存中 )的，并且处于容错考虑，如果从 DB 查不到数据则不写入缓存，这将导致这个不存在的数据每次请求都要到 DB 去查询，失去了缓存的意义。


缓存穿透问题可能会使后端存储负载加大，由于很多后端存储不具备高并...]]></description><category></category></item><item><title><![CDATA[深入理解缓存之常见的缓存算法]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/94830782</link><guid>https://blog.youkuaiyun.com/striveb/article/details/94830782</guid><author>striveb</author><pubDate>Sat, 06 Jul 2019 09:24:19 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

缓存算法，比较常见的是三种：


	LRU（least recently used ，最近最少使用)
	
	
	LFU（Least Frequently used ，最不经常使用)
	
	
	FIFO（first in first out ，先进先出)
	
手写 LRU 代码的实现

手写 LRU 代码的实现，有多种方式。其中，最...]]></description><category></category></item><item><title><![CDATA[计算机网络之HTTP、HTTPS、HTTP2]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/91585050</link><guid>https://blog.youkuaiyun.com/striveb/article/details/91585050</guid><author>striveb</author><pubDate>Wed, 12 Jun 2019 18:30:37 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

一、HTTP

HTTP 协议，是 Hyper Text Transfer Protocol（超文本传输协议）的缩写，是用于从万维网（WWW:World Wide Web ）服务器传输超文本到本地浏览器的传送协议。


HTTP 是一个无状态的协议。无状态是指客户机(Web 浏览器)和服务器之间不需要建立持久的连接，这意味着当一个...]]></description><category></category></item><item><title><![CDATA[计算机网络之TCP(三次握手、四次挥手等)，UDP及DNS]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/91410861</link><guid>https://blog.youkuaiyun.com/striveb/article/details/91410861</guid><author>striveb</author><pubDate>Tue, 11 Jun 2019 09:22:43 +0800</pubDate><description><![CDATA[目录

一、TCP

数据包说明

TCP 对应的应用层协议

TCP 头部

TCP 三次握手

三次握手的原因

TCP 四次挥手

四次挥手的原因

TCP数据传输

TCP 数据传输丢失怎么办(T即CP重传，通过定时器实现)

TCP 滑动窗口

滑动窗口的原理

TCP 拥堵

解决方案

二、UDP

UDP在应用层协议中的应用

TCP 与 UDP 的区别

TCP数据流模式和UDP...]]></description><category></category></item><item><title><![CDATA[计算机网络之网络体系架构与IP]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/91348741</link><guid>https://blog.youkuaiyun.com/striveb/article/details/91348741</guid><author>striveb</author><pubDate>Sat, 08 Jun 2019 23:14:56 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

一、网络体系结构



推荐的连接：


	《计算机网络体系结构综述（上）》
	
	
	《计算机网络体系结构综述（下）》
	
七层架构主要包括：



	物理层:主要定义物理设备标准，如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为...]]></description><category></category></item><item><title><![CDATA[深入理解MyBatis(四)--缓存]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/90815497</link><guid>https://blog.youkuaiyun.com/striveb/article/details/90815497</guid><author>striveb</author><pubDate>Wed, 05 Jun 2019 00:30:06 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

    查询缓存的使用，主要是为了提高查询访问速度。将用户对同一数据的重复查询过程简化，不再每次均从数据库查询获取结果数据，从而提高访问速度。

MyBatis 的查询缓存机制，根据缓存区的作用域(生命周期)可划分为两种:一级查询 缓存与二级查询缓存。

一、查询缓存

1.一级查询缓存

MyBatis 一级查询缓存是基...]]></description><category></category></item><item><title><![CDATA[深入理解MyBatis(三)--运行源码解析及延迟加载]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/90744597</link><guid>https://blog.youkuaiyun.com/striveb/article/details/90744597</guid><author>striveb</author><pubDate>Sun, 02 Jun 2019 22:46:17 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

一、运行源码解析

先看一下Mybatis的Dao实现类例子，如下：



A、 输入流的关闭

在输入流对象使用完毕后，不用手工进行流的关闭。因为在输入流被使用完毕后，SqlSessionFactoryBuilder 对象的 build()方法会自动将输入流关闭。


//SqlSessionFactoryBuilder.jav...]]></description><category></category></item><item><title><![CDATA[深入理解MyBatis(二)--Mapper]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/90725152</link><guid>https://blog.youkuaiyun.com/striveb/article/details/90725152</guid><author>striveb</author><pubDate>Sat, 01 Jun 2019 01:21:59 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

一、Mapper接口的工作原理

Mapper 接口，对应的关系如下：


	接口的全限名，就是映射文件中的 "namespace" 的值。
	
	
	接口的方法名，就是映射文件中 MappedStatement 的 "id" 值。
	
	
	接口方法内的参数，就是传递给 SQL 的参数。
	
Mapper 接口是没有实现类的，当...]]></description><category></category></item><item><title><![CDATA[深入理解MyBatis(一)基础及工作原理]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/90709023</link><guid>https://blog.youkuaiyun.com/striveb/article/details/90709023</guid><author>striveb</author><pubDate>Fri, 31 May 2019 01:25:08 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

一、MyBatis编程步骤


	创建 SqlSessionFactory 对象。
	
	
	通过 SqlSessionFactory 获取 SqlSession 对象。
	
	
	通过 SqlSession 获得 Mapper 代理对象。
	
	
	通过 Mapper 代理对象，执行数据库操作。
	
	
	执行成功，则使用 Sq...]]></description><category></category></item><item><title><![CDATA[MyBatis中XML 映射文件中常见的标签]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/90709045</link><guid>https://blog.youkuaiyun.com/striveb/article/details/90709045</guid><author>striveb</author><pubDate>Fri, 31 May 2019 00:47:21 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

SQL 映射文件只有很少的几个顶级元素（按照应被定义的顺序列出）：


	cache – 对给定命名空间的缓存配置。
	
	
	cache-ref – 对其他命名空间缓存配置的引用。
	
	
	resultMap – 是最复杂也是最强大的元素，用来描述如何从数据库结果集中来加载对象。
	
	
	parameterMap – 已被废...]]></description><category></category></item><item><title><![CDATA[深入理解SpringMVC之核心组件、工作原理及相关注解]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/90664323</link><guid>https://blog.youkuaiyun.com/striveb/article/details/90664323</guid><author>striveb</author><pubDate>Wed, 29 May 2019 08:34:53 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF

目录

一、核心组件

1.概述：

2. MultipartResolver

MultipartResolver 接口，代码如下：

3. LocaleResolver

4. ThemeResolver

5. HandlerMapping

6. HandlerAdapter

7. HandlerExceptionRes...]]></description><category></category></item><item><title><![CDATA[SpringMVC相关注解]]></title><link>https://blog.youkuaiyun.com/striveb/article/details/90664375</link><guid>https://blog.youkuaiyun.com/striveb/article/details/90664375</guid><author>striveb</author><pubDate>Wed, 29 May 2019 08:33:54 +0800</pubDate><description><![CDATA[GitHub：https://github.com/JDawnF/learning_note



@Controller

@Controller 注解，它将一个类标记为 Spring Web MVC 控制器 Controller 。

@RestController 和 @Controller 的区别

@RestController 注解，在 @Controller 基础上，增加了 @Res...]]></description><category></category></item></channel></rss>