https://i-blog.csdnimg.cn/direct/75ea83df3581464191c9c974de26c6cc.jpeg" />
1.http网络协议中post和get有什么区别
在HTTP网络协议中,POST和GET主要有以下区别:
- 参数传递方式:
- GET:参数附加在URL后面,如
example.com?key1=value1&key2=value2
。 - POST:参数放在HTTP请求体中。
- GET:参数附加在URL后面,如
- 数据长度限制:
- GET:由于浏览器和服务器对URL长度有限制,一般能传递的数据量较小。
- POST:理论上没有数据长度限制。
- 安全性:
- GET:参数暴露在URL中,安全性较差,不适合传递敏感信息。
- POST:参数在请求体中,相对更安全。
- 缓存:
- GET:可以被浏览器缓存,因为参数在URL上,便于缓存识别。
- POST:一般不会被缓存。
- 应用场景:
- GET:常用于获取数据,如查询列表。
- POST:常用于向服务器提交数据,如用户注册、登录时提交表单。
2.UDP和TCP的区别
UDP(User Datagram Protocol)和 TCP(Transmission Control Protocol)是两种常见的传输层协议,它们在数据传输方式、可靠性和应用场景等方面有显著区别。
https://i-blog.csdnimg.cn/direct/994716cb72c44f8b8916e59500f77aa3.png" />
选择 TCP 还是 UDP 取决于具体需求:如果需要可靠性和数据完整性,选择 TCP;如果需要高效率和实时性,选择 UDP。
3.TCP协议的三次握手和四次挥手
TCP 三次握手
- 客户端向服务器发送 SYN 包:客户端向服务器发送一个 SYN (同步序列编号)包,请求建立连接,此时客户端进入 SYN_SENT 状态。这个包中包含客户端初始的序列号(Sequence Number)。
- 服务器回复 SYN + ACK 包:服务器收到 SYN 包后,向客户端发送一个 SYN + ACK 包,表示同意建立连接。服务器进入 SYN_RCVD 状态。这个包中包含服务器的初始序列号以及对客户端 SYN 包的确认号(Acknowledgment Number)。
- 客户端发送 ACK 包:客户端收到 SYN + ACK 包后,向服务器发送 ACK 包进行确认。客户端进入 ESTABLISHED 状态。服务器收到 ACK 包后也进入 ESTABLISHED 状态,此时连接建立成功。
TCP 三次握手的目的
- 确保双方通信能力正常:通过三次握手,客户端和服务器可以确认彼此都能正常发送和接收数据,确保通信的可靠性。
- 同步初始序列号:交换初始序列号(Sequence Number),为后续数据传输提供基础,确保数据按顺序传输且不重复。
- 防止已失效的连接请求干扰:避免网络中延迟的旧连接请求突然到达服务器,导致服务器误认为是新的连接请求。
TCP 四次挥手
- 客户端发送 FIN 包:客户端向服务器发送 FIN (结束标志)包,表示请求关闭连接,此时客户端进入 FIN_WAIT_1 状态。
- 服务器回复 ACK 包:服务器收到 FIN 包后,向客户端发送 ACK 包进行确认,服务器进入 CLOSE_WAIT 状态。客户端收到 ACK 包后进入 FIN_WAIT_2 状态。
- 服务器发送 FIN 包:服务器处理完剩余数据后,向客户端发送 FIN 包,表示同意关闭连接,服务器进入 LAST_ACK 状态 。
- 客户端回复 ACK 包:客户端收到 FIN 包后,向服务器发送 ACK 包进行确认,客户端进入 TIME_WAIT 状态。服务器收到 ACK 包后,关闭连接进入 CLOSED 状态。客户端在 TIME_WAIT 状态等待一段时间(2MSL,最大段生命周期)后也进入 CLOSED 状态。
TCP 四次挥手的目的
- 确保双方数据发送完毕:通过四次挥手,双方确认彼此都没有数据需要发送,确保数据传输的完整性。
- 安全关闭连接:双方确认关闭连接,避免一方突然关闭导致另一方还在发送数据,造成数据丢失或错误。
- 释放资源:关闭连接后,释放双方占用的网络资源,如端口、内存等,提高系统效率。
4.http常见访问状态码有哪些
HTTP 状态码是服务器对客户端请求的响应结果,用于表示请求的处理状态。以下是常见的 HTTP 状态码及其含义:
1xx(信息类状态码)
- 100 Continue:服务器已收到请求头,客户端应继续发送请求体。
- 101 Switching Protocols:服务器同意切换协议(如从 HTTP 切换到 WebSocket)。
2xx(成功类状态码)
- 200 OK:请求成功,响应中包含请求的结果。
- 201 Created:请求成功,并在服务器上创建了新资源。
- 202 Accepted:请求已被接受,但尚未处理完成。
- 204 No Content:请求成功,但响应中无内容。
-
206 Partial Content:成功处理了客户端的部分请求,常见于断点续传。
3xx(重定向类状态码)
- 301 Moved Permanently:请求的资源已永久移动到新位置。
- 302 Found:请求的资源临时移动到新位置。
- 304 Not Modified:资源未修改,客户端可使用缓存版本。
4xx(客户端错误类状态码)
- 400 Bad Request:请求无效,服务器无法理解。
- 401 Unauthorized:请求需要身份验证。
- 403 Forbidden:服务器拒绝请求,客户端无权限访问。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求方法不被允许(如 GET 请求用于仅支持 POST 的资源)。
5xx(服务器错误类状态码)
- 500 Internal Server Error:服务器内部错误,无法完成请求。
- 502 Bad Gateway:服务器作为网关或代理时,从上游服务器收到无效响应。
- 503 Service Unavailable:服务器暂时无法处理请求(如过载或维护)。
- 504 Gateway Timeout:服务器作为网关或代理时,未及时从上游服务器收到响应。
常见状态码的典型场景
- 200 OK:访问成功,如加载网页或获取数据。
- 301/302:网站重定向,如旧网址跳转到新网址。
- 404:访问的资源不存在,如输入错误的 URL。
- 500:服务器内部错误,如代码 bug 或数据库故障。
- 503:服务器暂时不可用,如维护或过载。
5.HTTP和HTTPS的区别
HTTP 和 HTTPS 是两种常见的网络通信协议,主要区别在于安全性和实现方式。
https://i-blog.csdnimg.cn/direct/2930e320a04f4b24ac708d14a53684db.png" />
HTTPS 是 HTTP 的安全升级版,现代网站普遍推荐使用 HTTPS 以保护用户隐私和数据安全。
6.什么是CDN
CDN(Content Delivery Network,内容分发网络)是一种分布式网络架构,旨在加速内容传输并提升用户体验。
1. 核心概念
- CDN 通过将内容(如图片、视频、CSS、JavaScript 等)缓存到全球分布的边缘节点,使用户可以从离自己最近的节点获取内容,从而减少延迟、提高访问速度。
2. 工作原理
- 内容缓存:
- 源服务器将内容分发到 CDN 的多个边缘节点。
- 用户请求:
- 用户访问网站时,请求会被重定向到离用户最近的边缘节点。
- 内容返回:
- 如果边缘节点缓存了所需内容,直接返回给用户;否则,从源服务器获取内容并缓存到边缘节点。
3. 主要功能
- 加速内容传输:
- 通过就近访问边缘节点,减少网络延迟,提升加载速度。
- 减轻源服务器负载:
- 大多数请求由边缘节点处理,降低源服务器的压力。
- 提高可用性:
- 即使源服务器故障,用户仍可从边缘节点获取缓存内容。
- 抵御网络攻击:
- CDN 可以提供 DDoS 防护、WAF(Web 应用防火墙)等安全功能。
4. 应用场景
- 静态资源加速:
- 如图片、CSS、JavaScript 等文件的快速加载。
- 视频和直播流媒体:
- 提供流畅的视频播放体验。
- 软件和游戏下载:
- 加速大文件的分发。
- 全球业务扩展:
- 为全球用户提供一致的访问体验。
5. 优势
- 更快的内容加载:减少延迟,提升用户体验。
- 更高的可靠性:通过冗余节点提高服务可用性。
- 更强的安全性:提供 DDoS 防护、WAF 等安全功能。
- 更低的成本:减少带宽消耗和服务器负载。
7.什么是WebSocket
WebSocket 是一种基于 TCP 的通信协议,用于在客户端(如浏览器)和服务器之间实现全双工、低延迟的实时通信。
1. 核心特点
- 全双工通信:
- 客户端和服务器可以同时发送和接收数据,无需等待对方完成。
- 低延迟:
- 基于长连接,无需频繁建立和断开连接,减少了通信开销。
- 实时性:
- 支持实时数据传输,适用于需要即时响应的场景。
- 基于 HTTP/HTTPS:
- 通过 HTTP/HTTPS 协议升级到 WebSocket 协议,兼容现有网络基础设施。
2.与HTTP的区别
https://i-blog.csdnimg.cn/direct/8d3bfc262f5748c4b19e9637157aaad4.png" />