![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaEE
文章平均质量分 88
MOUYULOU
这个作者很懒,什么都没留下…
展开
-
垃圾回收(GC)
垃圾回收(GC)原创 2022-02-28 21:17:58 · 399 阅读 · 0 评论 -
HTTP-HTTPS的升级打怪之路(加密之路)
@TOC故事背景人物介绍(HTTP,HTTPS)HTTP:是互联网上应用最为广泛的一种网络协议,是客户端和服务端请求和应答的标准,用于从www服务器传输超文本到本地浏览器的传输协议,可以使浏览器更加高效,使网络传输减少。常用的端口号为80。HTTPS:是以安全为目标的HTTP通道,是HTTP的安全版,即在HTTP下加入SSL层。常用端口号为443。HTTPS诞生的契机HTTP协议的诞生主要是为了解决信息传递和共享的问题。但是随着互联网的高速发展,对于安全的要求越来越高,但是HTTP并不具备任何数原创 2022-01-27 19:34:25 · 1994 阅读 · 0 评论 -
应用层协议:HTTP协议
应用层协议:HTTP协议HTTP请求URLURL格式URL初心URL中的encode decodeHTTP响应HTTP中常见的方法常见面试题GET和PUST的区别HTTP的常见状态码状态码小结HTTP的常见headerHTTP请求首行:HTTP方法 请求的URL 版本号(三部分使用空格分割)。首部(请求头):由一堆键值对组成,每个键值对占一行(使用换行符分割),键和值之间使用“冒号空格”来分割。空行:作为请求头结束的标志。正文(body):正文内容也可以是空行。URLURL格式协议名称原创 2021-12-27 18:37:35 · 926 阅读 · 0 评论 -
从浏览器输入一个URL后发生的那些事
从浏览器输入一个URL后发生的那些事站在学生角度看待发送前准备中间转发过程接收方收到数据后站在后端工程师角度其他角度站在学生角度看待核心:网络传输的一些基本原理,关键协议如何配合,以及封装分用,路由转发。发送前准备浏览器根据域名查找对应的IP地址(先查看浏览器自身的缓存,再查看hosts文件,再查看DNS服务器)浏览器构造一个HTTP请求,这个HTTP请求包含了刚才的域名信息.浏览器调用操作系统的socket api,把这个HTTP数据交给TCP进一步处理.(TCP协议构建一个TCP数据包,在原创 2021-11-14 17:33:33 · 2762 阅读 · 0 评论 -
数据链路层核心协议
以太网以太网认识以太网以太网帧格式MAC地址MTUARP协议以太网认识以太网以太网是一种技术标准,包含了数据链路层内容也包含了一些物理层内容。以太网帧格式目的地址和源地址指的是MAC地址,长度48位,在网卡出厂时固定化。帧协议类型字段有三种值分别对应IP,APR,RARP由一个32位冗余校验码结尾,用于检验数据传输是否出现破环。MAC地址MAC地址在网卡出厂时就被写死的,可以做到每个主机都有唯一的地址。MAC地址一般使用十六进制表示如:00-E0-4C-36-27-60下面我们略原创 2021-11-13 23:13:40 · 1609 阅读 · 0 评论 -
网络层核心协议:IP协议
IP协议IP协议格式IP协议的核心功能地址管理NAT IP转换过程网段划分(组建局域网)路由选择IP协议格式下面我们根据上图划分进行分别讲解:4位版本号:指定IP协议的版本,对应IPv4来说是44位首部长度:IP头部长度0-15 单位是4个字节8位服务类型(TOS):3位优先权字段(已弃用),4位TOS字段,1位保留字段(必须为0),4位TOS表示最小延时,最大吞吐量,最高可靠性,最小成本,4者中只能选其一,这就要求这四个bit位中只能有一个1,其他是0,不能同时有多个1.16位总长度(字节原创 2021-11-13 00:36:11 · 2543 阅读 · 0 评论 -
UDP相关协议
UDP相关协议UDP协议格式使用校验和的算法:crc使用校验和的算法:md5UDP的特点经典面试题:基于UDP实现可靠传输.UDP协议格式拼装报头的过程就是”封装“UDP长度:整个UDP的长度=报头+载荷,使用2个字节的数据来表示,单位是字节,表示数据范围 0-65535byte,一个UDP数据报最大就是64KB,所有在使用UDP传输数据的时候一定要注意报文长度不能超过64K,超过就会丢失一部分数据.那么传输大的数据报该怎么办呢?最好的办法就是直接改成TCP,TCP对数据的长度没有限制.UDP原创 2021-11-09 19:29:10 · 1009 阅读 · 0 评论 -
TCP的核心特性
TCP的核心特性确认应答超时重传连接管理三次握手四次挥手状态转换滑动窗口流量控制拥塞控制延时应答捎带应答面向字节流粘包问题TCP中的一些异常情况确认应答确认应答保证可靠传输的核心。发送方发数据给接收方,接收方就回应一个应答报文,如果发送方收到这个应答报文,就认为对方已经收到了。但是由于网路传输顺序是不确定的,不能单纯通过收到数据的顺序来确定逻辑。像下边情况就会造成错误。这是就需要对应答进行编号超时重传解决数据在发送过程中出现丢包。丢包存在两种可能:发送方发的消息丢了接收发没有收到消原创 2021-11-05 16:13:51 · 90 阅读 · 0 评论 -
多线程案例
多线程案例单例模式饿汉模式懒汉模式阻塞队列生产者消费者模型通过循环队列实现生产者消费者模型定时器实现定时器线程池Executors线程池的实现单例模式首先我们需要知道什么是设计模式?设计模式就像“棋谱”,针对常见的问题场景,大佬们总结的固定套路。那么单例模式是什么?单例模式就是限制类只有唯一的实例。下面我们以洗碗这个情景来讲述饿汉模式和懒汉模式饿汉模式饿汉模式就相当于洗碗池里有一堆碗,而你此时要吃饭,你就一股脑的把所有碗都洗了,用的时候全部洗完。饿汉模式:使用static在类加载阶段创建实原创 2021-10-20 21:41:11 · 69 阅读 · 0 评论 -
线程安全.
线程安全线程不安全的原因线程之间抢占式执行多个线程修改同一个变量原子性内存可见性指令重排序synchronized关键字synchronized的特性volatile关键字wait和notifywait和sleep的区别线程不安全的原因如创建两个线程,进行++运算,使第一个线程自增500次,第二个线程也自增500次,预期的结果为1000,但实际自增的结果是无法预知的。这是为什么呢?public class TestDemo { static class Count{ publi原创 2021-10-18 17:04:22 · 66 阅读 · 0 评论 -
常见的锁策略
常见的锁策略乐观锁与悲观锁读写锁重量级锁与轻量级锁自旋锁与挂起等待锁公平锁与非公平锁可重入锁与不可重入锁乐观锁与悲观锁乐观锁:既假设锁冲突的概率比较低基本没有冲突,简单的处理冲突。悲观锁:既假设锁冲突的概率比较高基本每次尝试加锁都会产生锁冲突,付出更多的成本处理冲突。Synchronized初始使用乐观锁策略。当发现锁竞争比较频繁的时候就会自动切换成悲观锁策略。乐观锁的一个重要功能就是检测数据是否发生冲突。引入“版本号”解决。如修改账户余额:提交版本号必须大于记录当前版本号才能执行更新读写锁原创 2021-10-17 14:52:06 · 134 阅读 · 0 评论