网络协议相关面试题

1.HTTP的3次握手4次挥手

在这里插入图片描述

连接创建过程:

首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。


连接中断过程:

假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,“告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息”。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,“告诉Client端,好了,我这边数据发完了,准备好关闭连接了”。Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,“就知道可以断开连接了”。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!

注意:中断连接端可以是Client端,也可以是Server端。


整个过程Client端所经历的状态如下:
在这里插入图片描述

Server端所经历的过程如下:
在这里插入图片描述

2.为什么连接的时候是三次握手,关闭的时候却是四次握手?

因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

声明:前两题转载自https://blog.csdn.net/su_bao/article/details/80845246


3.HTTPS的通讯过程

在这里插入图片描述

3.HTTP和HTTPS的区别

https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。

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

http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

4.TCP和UDP的区别

TCP是确认包的到达,所以不丢失包(数据),顺序也是好的。
UDP不会确认包的到达,所以可能会丢失数据包,当然顺序也有可能会乱。

除了这些以外:
1. TCP是面向连接(三次握手)的,所以稳定、可靠,那相对就慢了
比如平时的:文件传输,邮件,http等用的都是tcp协议
2. UDP是面向无连接的,所以不稳定,但是相对快,实时性高
比如平时:做什么现场直播,视频通话啥的

当然,大家平时用的QQ就是UDP协议(有没有消息错乱的时候)
MSN用的TCP,所以你感觉很卡,很慢

5.TCP/IP的四层网络模型和ISO七层网络模型

在这里插入图片描述

6.常见状态码解释

状态码分类

类别原因
1xxInformational(信息性状态码)接受的请求正在处理
2xxSuccess(成功状态码)请求正常处理完毕
3xxRedirection(重定向)需要进行附加操作以完成请求
4xxClient error(客户端错误)客户端请求出错,服务器无法处理请求
5xxServer Error(服务器错误)服务器处理请求出错
301 Moved Permanently:永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL

302 Found:临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL

       301与302的区别:前者是永久移动,后者是临时移动(之后可能还会更改URL)
       
400 Bad Request:表示请求报文中存在语法错误;

401 Unauthorized:未经许可,需要通过HTTP认证;

403 Forbidden:服务器拒绝该次访问(访问权限出现问题)

404 Not Found:表示服务器上无法找到请求的资源

500 Inter Server Error:表示服务器在执行请求时发生了错误,例如参数不匹配

503 Server Unavailable:表示服务器暂时处于超负载或正在进行停机维护,无法处理请求

7.HTTP的8种请求方式

GET		POST	PUT		DELETE
HEAD	TRACE	CONNECT	OPTIONS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

难过的风景

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值