深入浅出 TCP/IP 协议栈

TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不用我们操心;其次网络协议体系本身就很复杂庞大,入门门槛高,因此很难搞清楚TCP/IP的工作原理,通俗一点讲就是, ...

Spring mvc请求流程分析

流程图 请求流程 用户发送请求至前端控制器DispatcherServlet。 DispatcherServlet收到请求调用处理器映射器HandlerMapping。处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。 DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter(适配器模式),执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作 处理器Handler(Controller页面控制器)执行完成返回ModelAndView、HandlerAdapter将执行结果ModelAndView返回到DispatcherServlet。 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。 ...

spring boot上传文件大小限制原理

使用 spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB 以下代码对应spring boot源码版本2.6.5 自动装配 文件上传控制是通过MultipartAutoConfiguration自动装配类装配的 @Configuration( proxyBeanMethods = false ...

算法

单链表逆置 public void reverseNodeList() { //创建单链表9,8,7...0 Node curr=null;//初始化尾节点为空 for(int i=0;i<10;i+ ...

多线程

线程状态 wait()和sleep() 最大区别,wait()会释放锁,在被唤醒后再申请锁,而sleep若是在synchronized中,不会释放锁 sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会; sleep()是Thread类的Static(静态)的方法;因此他不能改变对象的机锁, ...