阿烫的后花园

烫烫烫烫烫烫

最近在阅读 spring 源码,学到很多原来没用过的 java api,如果未来自己要实现某些框架,将非常有用。

阅读全文 »

2020年的五一有五天假,但因为疫情原因,北京不能随意进入,一律需要十四天隔离,直至五一前两天终于下调响应等级,能自由出入,于是约了兄弟一起骑行青海湖。
其实已经看了很多攻略,五一的不是青海湖最美的时候,最美在7月,遍地的油菜花都会开放,美不胜收。奈何七月实在没有那么长的假期,不如就先去罢。

在新闻发布会通知低风险地区返京人员无需隔离时,我就搜索了去西宁的机票,大约一千块往返,但那时其余几人还没有确定时间,于是拖了一拖,到晚上时,机票已经到达1600了…一口老血喷出。最终定在了2号飞机出发,3-6号骑行,7号飞机票回京。

先放视频,最后随意放些原图照片。

阅读全文 »

在使用springboot的时候,只需要添加一些starter依赖,就能极大地简化开发操作,那么如何自定义一个starter?

阅读全文 »

本系列springboot源码都基于 2.2.5.RELEASE

入口类

1
2
3
4
5
6
7
8
@SpringBootApplication
public class HelloWorldApplication {

public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class, args);
}

}

一直跟进方法,这里将入口类当做参数,创建了一个SpringApplication实例,并调用run(args)方法。

1
2
3
public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) {
return new SpringApplication(primarySources).run(args);
}
阅读全文 »

  TCP是面向连接的。在一个应用进程可以开始向另外一个应用进程发送数据之前,这两个进程必须先相互“握手”,即他们必须相互发送某些预备报文段,以建立确保数据传输的参数。

  TCP连接提供的是全双工服务,允许数据在两个方向上同时传输。

  一旦建立起一条TCP连接,两个应用进程之间就可以相互发送数据了。客户进程通过套接字传递数据流。数据一旦通过该门,它就由客户中的TCP控制了。TCP将这些数据引导到该连接的发送缓存中,发送缓存是三次握手初期设置的缓存之一。接下来TCP会时不时从发送缓存里取出一块数据。TCP可以从缓存中取出并放入报文段中的数据数量受限于最大报文段长度(Maximum Segment Size,MSS)。MSS通常根据最初确定的由本地发送主机发送的最大链路层帧长度,即所谓的最大传输单元(Maximum Transmission Unit,MTU)来设置。该设置MSS要保证一个TCP报文段加上TCP/IP首部长度(通常40字节)将适合单个链路层帧。以太网和PPP链路层的协议都具有1500字节的MTU,因此MSS的典型值为1460字节

阅读全文 »

UDP协议

  运输层的两种协议代表了两个极端,UDP非常简单,它只做了运输层能做的最少工作。除了多路复用/分解功能及少量的差错检测外(对差错无恢复能力),它几乎没有对IP增加别的东西。如果应用层协议开发人员选择UDP而不是TCP,那么该应用应用程序差不多就是直接与IP打交道。

  使用UDP时,再发送报文之前,发送方和接收方之间没有握手,所以是无连接的。且UDP只是尽力而为地尝试将报文段中的数据交付给正确的应用进程。

阅读全文 »

概述

  因特网的协议栈分为五层:物理层、链路层、网络层、传输层和应用层。

  由于链路层交换机只实现了第一层和第二层;路由器实现了第一层到第三层。这意味着路由器能实现ip协议,而链路交换机不能。并且运输层协议是在端系统中而不是路由器中实现的。

  运输层协议为运行在不同主机上的应用进程提供逻辑通信,网络层协议提供了主机之间的逻辑通信

  运输层主要有两种协议,一种是UDP(用户数据报协议),提供不可靠、无连接的服务。另一种是TCP(传输控制协议),它提供可靠的、面向连接的服务。

阅读全文 »

  1. 当访问的uri最后不带斜杠时,例如 http://localhost/product ,会先查找 product 文件,存在就返回;若存在 product 文件夹,会在末尾加上一个斜杠并产生 301 跳转。

  2. 当访问的uri最后带斜杠时,例如 http://localhost/product/,查找 product 下的 index 页面,存在就返回;不存在且未开启自动索引目录选项(autoindex on)则报 403 错误。

在第一种情况,访问带目录的url时,如果末尾不加斜杠(“/“),nginx默认会加上斜杠,发生一次301跳转,但这个默认行为在nginx前端有LB负载均衡器、且LB监听的端口与nginx server监听的端口不同时会导致访问出错。

但这个默认行为在nginx前端有LB负载均衡器、且LB监听的端口与nginx server监听的端口不同时会导致访问出错。

阅读全文 »
0%