121.ConcurrentHashMap实现原理
https://baijiahao.baidu.com/s?id=1617089947709260129&wfr=spider&for=pc
122.springboot和spring的区别
123.Java反射机制
https://www.cnblogs.com/zhaoguhong/p/6937364.html
124.为什么客户端最后还要等待2MSL?
第一,保证客户端发送的最后一个ACK报文能够到达服务器,因为这个ACK报文可能丢失,站在服务器的角度看来,我已经发送了FIN+ACK报文请求断开了,客户端还没有给我回应,应该是我发送的请求断开报文它没有收到,于是服务器又会重新发送一次,而客户端就能在这个2MSL时间段内收到这个重传的报文,接着给出回应报文,并且会重启2MSL计时器。
第二,防止类似与“三次握手”中提到了的“已经失效的连接请求报文段”出现在本连接中。客户端发送完最后一个确认报文后,在这个2MSL时间中,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样新的连接中不会出现旧连接的请求报文。
125.为什么建立连接是三次握手,关闭连接确是四次挥手呢?
建立连接的时候, 服务器在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。 而关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次。
126.TCP和UDP的区别?
TCP是有连接的,UDP是无连接的
TCP是可靠的传输,UDP是不可靠的,支持接收确认和重传的机制。
TCP只能点对点的建立连接,即一对一,UDP支持一对一,一对多,多对对的
TCP是字节流的,而UDP是报文的,没有阻塞控制。
UDP具有较好的实时性,
TCP对系统资源要求较多,UDP对系统资源要求较少。
127.UDP为什么不保证可靠连接
UDP是尽力传送,没有应答和重传机制,UDP只是将信息发送出去,对方收不收到也不进行应答。
128.四层网络结构?
数据链路层,物理传输介质,比如光纤,双绞线。
网络层,ip
传输层udp,tcp
应用层http
129.OSI七层与TCP/IP五层网络架构详解
130.网络方面有osi七层,tcp/ip五层,分别有哪些协议及作用
应用层: 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层: 数据格式化,代码转换,数据加密 没有协议
会话层: 解除或建立与别的接点的联系 没有协议
传输层: 提供端对端的接口 TCP,UDP
网络层: 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层: 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层: 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2
131.TCP报文首部
1.源端口和目的端口站两个字节
2.序号,四个字节,每次传输都按序号排序。
3.确认号,期望收到下一个数据的序号
4.确认号 ACK
5.同步SYN,在连接建立时用来同步序号。
6.终止FIN 用来终止连接
7.窗口大小,用来表示接收端的大小
132.TCP是如何保证可靠的连接的?
1.将数据分割成一块一块的数据块进行发送,多少字节。
2.发送端按编号进行发送数据,接收端收到数据进行排序,把有序的数据传递给应用层。
3.超时重传和确认。当tcp发送一部分数据时,它会启动一个定时器,等待接收端确认这个报文是否已经收到。
4.TCP的接收端会丢弃重复的数据。
5.流量控制。----滑动窗口
6. 拥塞控制。----慢开始、拥塞避免和快重传、快恢复。
133.请求头
Accept: text/html,image/* -- 浏览器接受的数据类型
Accept-Charset: ISO-8859-1 -- 浏览器接受的编码格式
Accept-Encoding: gzip,compress --浏览器接受的数据压缩格式
Accept-Language: en-us,zh- --浏览器接受的语言
Host: www.it315.org:80 --(必须的)当前请求访问的目标地址(主机:端口)
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --浏览器最后的缓存时间
Referer: http://www.it315.org/index.jsp -- 当前请求来自于哪里
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) --浏览器类型
Cookie:name=eric -- 浏览器保存的cookie信息
Connection: close/Keep-Alive -- 浏览器跟服务器连接状态。close: 连接关闭 keep-alive:保存连接。
Date: Tue, 11 Jul 2000 18:23:51 GMT -- 请求发出的时间
134.常见的响应头
Location: http://www.it315.org/index.jsp -表示重定向的地址,该头和302的状态码一起使用。
Server:apache tomcat ---表示服务器的类型
Content-Encoding: gzip -- 表示服务器发送给浏览器的数据压缩类型
Content-Length: 80 --表示服务器发送给浏览器的数据长度
Content-Language: zh-cn --表示服务器支持的语言
Content-Type: text/html; charset=GB2312 --表示服务器发送给浏览器的数据类型及内容编码
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --表示服务器资源的最后修改时间
Refresh: 1;url=http://www.it315.org --表示定时刷新
Content-Disposition: attachment; filename=aaa.zip --表示告诉浏览器以下载方式打开资源(下载文件时用到)
Transfer-Encoding: chunked
Set-Cookie:SS=Q0=5Lb_nQ; path=/search --表示服务器发送给浏览器的cookie信息(会话管理用到)
Expires: -1 --表示通知浏览器不进行缓存
Cache-Control: no-cache
Pragma: no-cache
Connection: close/Keep-Alive --表示服务器和浏览器的连接状态。close:关闭连接 keep-alive:保存连接
135.SpringBoot和spring相关
https://blog.csdn.net/Time_sg/article/details/81589660
https://blog.csdn.net/a745233700/article/details/80959716
https://blog.csdn.net/a745233700/article/details/80963758