Java面试资料题(面试必备)

本文介绍了HTTP协议的状态码分类,包括信息性、成功、重定向、客户端错误和服务器错误状态码。同时,探讨了网络通信的OSI和TCP/IP体系结构,以及HTTP2.0的特性。还涉及了数字签名的生成过程、DNS解析步骤、HTTP中forward与redirect的区别。此外,文章讨论了SQL注入问题及其解决方案,并详细阐述了TCP的四次挥手、重传机制、拥塞控制策略以及粘包和拆包现象。
摘要由CSDN通过智能技术生成

Http常用状态码:

1xx:信息性状态码;2xx:成功状态码;3xx:重定向状态码;4xx:客户端错误状态码;5xx:服务端错误状态码;

计算机网络体系结构:

OSI体系结构:物理层->数据链路层->网络层->运输层->会话层->表示层->应用层

TCP/IP体系结构:网络接口层->网际层IP->运输层->应用层

五层协议体系结构:物理层->数据链路层->网络层->运输层->应用层

Http2.0完全多路复用、报头压缩

数字签名与数字证书

公钥、个人信息、其他信息通过hash算法处理之后会生成消息摘要,再对消息摘要进行私钥加密形成数字签名

DNS解析过程:先看浏览器缓存有无IP,没有的话去本地DNS查,在没有的话 根域名服务器->权威域名服务器->权限域名服务器

forword与redirect的区别:

forword:A 找 B 借钱,B 说没有,B 去找 C 借,借到借不到都会把 消息传递给 A; redirect:A 找 B 借钱,B 说没有,让 A 去找 C 借"。

SQL注入:

主要是前端传参' 'or '1'=1(SQL是直接拼接的) SQL就会把表中所有的数据都会查出来

解决方案:1.使用#{}(参数占位符对于字符串类型,会自动加上"",其他类型不加。 )而不是${}(简单的字符串替换)

TCP 四次挥手过程中,为什么需要等待 2MSL,才进入 CLOSED 关闭状态 :

  1. 为了保证客户端发送的最后一个ACK报文段能够到达服务端

  1. 防止已失效的连接请求报文段出现在本连接中

TCP重传机制:

快速重传:接收到连续三个重复的ACK 带选择确认的重传SACK:在TCP头部加个标记,看哪些包没被接到

重复SACK 告诉发送方 哪些包重复接受

TCP拥塞控制:

拥塞窗口 cwnd RTT往返时间

慢启动:

收到一个ACK,cwnd就加一(单位MSS) 过一个RTT cwnd翻倍 丢包或cwnd >ssthresh (65535字节)进入拥塞避免

拥塞避免:每收到一个 ACK 时,cwnd = cwnd + 1/cwnd 当每过一个 RTT 时,cwnd = cwnd + 1

拥塞发生:当网络拥塞发生丢包时,会有两种情况: RTO 超时重传 (慢启动阀值 sshthresh = cwnd /2 cwnd 重置为 1 进入新的慢启动过程 ) 快速重传 推荐(拥塞窗口大小 cwnd = cwnd/2 慢启动阀值 ssthresh = cwnd 进入快速恢复算法 快速恢复:cwnd = sshthresh + 3 重传重复的那几个 ACK(即丢失的那几个数据包) 如果再收到重复的 ACK,那么 cwnd = cwnd +1 如果收到新数据的 ACK 后, cwnd = sshthresh。因为收到新数据的 ACK,表明 恢复过程已经结束,可以再次进入了拥塞避免的算法了。 TCP粘包与拆包:

要发送的数据小于 TCP 发送缓冲区的大小,TCP 将多次写入缓冲区的数据一次 发送出去,将会发生粘包; 接收数据端的应用层没有及时读取接收缓冲区中的数据,将发生粘包; 要发送的数据大于 TCP 发送缓冲区剩余空间大小,将会发生拆包; 待发送数据大于 MSS(最大报文长度),TCP 在传输前将进行拆包。即 TCP 报文长度-TCP 头部长度>MSS。 解决:发送端将每个数据包封装为固定长度 在数据尾部增加特殊字符进行分割 将数据分为两部分,一部分是头部,一部分是内容体;其中头部结构大小固定,且 有一个字段声明内容体的大小。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值