八股文(Web篇——网络通讯部分)第十二天

日期:2022年8月6日

TCP 与 UDP 区别? (了解)

八股文(Web篇——网络通讯部分)第十二天_第1张图片
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、 可靠的、 基于 IP 的传输层协议。

UDP 是 User Datagram Protocol 的简称,中文名是用户数据报协议,是 OSI 参考模型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

TCP 和 UDP 都是来自于传输层的协议。传输层位于应用层和网络层之间,负责位于不同主机中进程之间的通信。

TCP 与 UDP 区别
八股文(Web篇——网络通讯部分)第十二天_第2张图片

1.TCP 基于连接 UDP 无连接 
2.TCP 要求系统资源较多,UDP 较少
3.TCP 保证数据正确性,UDP 可能丢包 
4.TCP 保证数据顺序,UDP 不保证

什么是 HTTP 协议?

客户端和服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。是一个基于请求与响应模式的、无状态的、应用层的协议,基于 TCP 的连接方式

TCP 的三次握手

为了准确无误地把数据送达目标处,TCP 协议采用了三次握手策略。

八股文(Web篇——网络通讯部分)第十二天_第3张图片
为什么要三次握手?
三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收, 而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的。

SYN:同步序列编号(Synchronize Sequence Numbers)。是 TCP/IP 建立连接时 使用的握手信号。

 第一次握手:客户端给服务器发送一个 SYN。客户端发送网络包,服务端收到了。服务器得出结论:客户端的发送能力、服务端的接收能力正常。
 
 第二次握手:服务端收到 SYN 报文之后,会应答一个 SYN+ACK 报文。服务端发包,客户端收到了。客户端得出结论:服务端的接收和发送能力,客户端的接收和发送能力正常。但是此时服务端不能确认客户端的接收能力是否正常。 

 第三次握手;客户端收到 SYN+ACK 报文之后,回应一个 ACK 报文。客户端发包,服务端收到了。服务器得出结论:客户端的接收和发送能力,自己的接收发送能力都正常。 通过三次握手,双方都确认对方的接收以及发送能力正常。

HTTP 中重定向和请求转发的区别?

实现
转发:用 request 的 getRequestDispatcher()方法得到 ReuqestDispatcher 对象,调用 forwar()方法

request.getRequestDispatcher(“other.jsp”).forward(request, response);

重定向:调用 response 的 sendRedirect()方法

response.sendRedirect(“other.jsp”);

1> 重定向 2 次请求,请求转发 1 次请求 
2> 重定向地址栏会变,请求转发地址栏不变
3> 重定向是浏览器跳转,请求转发是服务器跳转 
4> 重定向可以跳转到任意网址,请求转发只能跳转当前项目 
5> 请求转发不会丢失请求数据,重定向会丢失

Get 和 Post 的区别?

1. Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;Post 的所有操作对用户来说都是不可见的。 
2. Get 传送的数据量较小,一般传输数据大小不超过 2k-4k(根据浏览器不同,限制不一样, 但相差不大这主要是因为受 URL 长度限制;Post 传送的数据量较大,一般被默认为不受限制。
3. Get 限制 Form 表单的数据集的值必须为 ASCII 字符;而 Post 支持整个 ISO10646 字符集。
4. Get 执行效率却比 Post 方法好。Get 是 form 提交的默认方法。

你可能感兴趣的:(#,八股文大全,前端,网络,tcp/ip)