Java面试之计算机网络相关

这部分是发现面试也会问到一些基础的原理,于是总结一些计网的知识点,面试题;后续应该也会把数据结构的搞上来

网络

1. http与https的区别?

http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议”

2. 三次握手四次挥手?

第一次握手是在建立连接,客户端发送连接请求报文段,把标有SYN的数据包发给服务器端即为接收端。
第二次握手是服务器端即接收端收到客户端的SYN的报文段,同时发送标有SYN/ACK的数据包。
第三次握手是客户端收到服务器端的SYN/ACK的数据包后,向服务器端发送标有ACK的数据包。
四次挥手
第一次挥手
客户端设置seq和 ACK ,向服务器发送一个 FIN=1报文段。此时,(第一次挥手,FIN=1,seq=u)客户端进入 FIN_WAIT 状态,表示客户端没有数据要发送给服务端了。
第二次挥手
服务端收到了客户端发送的 FIN 报文段,向客户端回了一个 ACK 报文段。
第三次挥手
服务端向客户端发送FIN 报文段,请求关闭连接,同时服务端进入 LAST_ACK 状态。
第四次挥手
客户端收到服务端发送的 FIN 报文段后,向服务端发送 ACK 报文段,然后客户端进入 TIME_WAIT 状态。服务端收到客户端的 ACK 报文段以后,就关闭连接。此时,客户端等待 2MSL(指一个片段在网络中最大的存活时间)后依然没有收到回复,则说明服务端已经正常关闭,这样客户端就可以关闭连接了。

3. OSI七层协议模型?

应用层:有用户自己规定,规定各个应用之间消息传递的形式等,包括各机互访协议,分布式数据库协议等。常见的应用层协议有HTTP协议和FTP协议等。
表现层:在满足用户需求的基础上,尽可能的节省传输费用而设置的,比如传输压缩文件,jpeg或者加密文件等格式。
会话层:用于建立和拆除会话。
传输层:负责将来自会话层的消息传输给网络层,常见的传输层协议有TCP和UDP等协议
网络层:规定通信网内的路由选择等方式,建立用户间的信息报传输设施。常见的网络层协议有IP, ICMP以及 ARP等协议。
数据链路层:与建立数据传输链路相关
物理层:规定一些机电的性能,也包括工作方式如双工、单工或半双工,建立通信的启动与终止等。

4. TCP和UDP协议的区别?

TCP通信之前需要三次握手建立连接,UDP协议不需要
TCP有确认机制,丢包可以重发,保证数据正确性;UDP不保证正确性,单纯负责发送数据包。
TCP协议会对大数据包进行拆分;UDP协议是面向报文的,不会进行分片和重组。
网络中TCP头部20字节;UDP头部8字节

5. 常见的HTTP Code有哪些?

1xx(临时响应)
2xx(成功)
200(成功)
3xx(重定向)表示要完成请求需要进一步操作
302(重定向)请求重定向到制定网页
304(未修改)从上次请求后,请求的网页未修改过。服务器不会返回网页内容
4xx(错误)表示请求可能出错,服务器处理不了
401(未授权)请求要求身份验证
403(禁止)服务器拒绝请求
404(未找到)服务器找不到请求的网页
405(方法禁用)服务器找不到请求的网页
5xx(服务器错误)表示服务器在尝试会处理请求时发生了错误
500(服务器内部错误)有bug导致程序出错
502(错误网关)服务器接收到了无效的响应

6. TCP协议中的数据包分片与重组是什么?

发送方:将数据分为多个TCP头部+数据包的组合,TCP头部中存放着不同的数据序号;之后将多个组合交给IP模块,添加统一事务IP头部和MAC头部。
接收方:IP模块具有分片重组的功能,如果接收到的数据包是经过分片处理的,就会将其暂存在内部的内存空间中,然后等所有IP头部既有想用ID的包全部到达,因为同一个包的所有分片都具有相同的IP。此外IP头部还有一个分片偏移量的字段,他表示当前分片在整个包中所在的位置,根据这些信息就可以将所有的分片全部收到之后将他们还原成原来的包。

7. TCP头部?

在这里插入图片描述

8. IP头部?

在这里插入图片描述

9. ARP地址解析协议是什么?

根据IP地址获取物理地址的一个TCP/IP协议,此外还有rarp就是反过来物理地址找ip地址
作用:主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

10. 简单说一下你了解的端口及对应的服务?

在这里插入图片描述

11. osi,tcp和五层都是什么结构?

在这里插入图片描述

12. 从浏览器地址栏输入url到显示主页的过程

DNS解析,查找域名对应的IP地址。
与服务器通过三次握手,建立TCP连接
向服务器发送HTTP请求
服务器处理请求,返回网页内容
浏览器解析并渲染页面
TCP四次挥手,连接结束

13. POST和GET有哪些区别?

在这里插入图片描述
区别很多,但影响开发时主要是以下几种
1、GET方法用于信息获取,它是安全的(安全指非修改信息,如数据库方面的信息),而POST方法是用于修改服务器上资源的请求;
2、GET请求的数据会附在URL之后,而POST方法提交的数据则放置在HTTP报文实体的主体里,所以POST方法的安全性比GET方法要高;
3、GET方法传输的数据量一般限制在2KB,而Chrome,FireFox浏览器理论上对于URL是没有限制的,它真正的限制取决于操作系统本身;POST方法对于数据大小是无限制的,真正影响到数据大小的是服务器处理程序的能力。
在项目使用RESTful架构风格进行开发,GET用来获取资源,POST用来新建资源,也可以用于更新资源,PUT用来更新资源DELETE用来删除资源统一数据操作的接口,仅通过HTTP方法就可以完成对数据的所有增删查改工作。

14. HTTP 如何实现长连接?在什么时候会超时?

通过在头部(请求和响应头)设置Connection字段指定为keep-alive,HTTP/1.0协议支持,但是是默认关闭的,从HTTP/1.1以后,连接默认都是长连接。

15. 什么是CSRF攻击,如何避免?

挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法
检查Referer字段。添加校验token。

16. 聊聊SQL注入?

通过在web应用接口传入一些特殊参数字符,来欺骗应用服务器,执行恶意的SQL命令

17. 如何预防SQL注入?

#{}而不是${}
SQL发生异常,不要把这些信息暴露响应给用户,自定义异常返回
过滤参数中含有的一些数据库关键词
适当的权限控制

后续

计网的内容很多,之后再更新吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值