前端面试-网络协议篇

news2025/2/23 6:52:37

1.http网络协议中post和get有什么区别

在HTTP网络协议中,POST和GET主要有以下区别:

  • 参数传递方式
    • GET:参数附加在URL后面,如example.com?key1=value1&key2=value2 。
    • POST:参数放在HTTP请求体中。
  • 数据长度限制
    • GET:由于浏览器和服务器对URL长度有限制,一般能传递的数据量较小。
    • POST:理论上没有数据长度限制。
  • 安全性
    • GET:参数暴露在URL中,安全性较差,不适合传递敏感信息。
    • POST:参数在请求体中,相对更安全。
  • 缓存
    • GET:可以被浏览器缓存,因为参数在URL上,便于缓存识别。
    • POST:一般不会被缓存。
  • 应用场景
    • GET:常用于获取数据,如查询列表。
    • POST:常用于向服务器提交数据,如用户注册、登录时提交表单。

2.UDP和TCP的区别

UDP(User Datagram Protocol)和 TCP(Transmission Control Protocol)是两种常见的传输层协议,它们在数据传输方式、可靠性和应用场景等方面有显著区别。

选择 TCP 还是 UDP 取决于具体需求:如果需要可靠性和数据完整性,选择 TCP;如果需要高效率和实时性,选择 UDP。

3.TCP协议的三次握手和四次挥手

TCP 三次握手
  1. 客户端向服务器发送 SYN 包:客户端向服务器发送一个 SYN (同步序列编号)包,请求建立连接,此时客户端进入 SYN_SENT 状态。这个包中包含客户端初始的序列号(Sequence Number)。
  2. 服务器回复 SYN + ACK 包:服务器收到 SYN 包后,向客户端发送一个 SYN + ACK 包,表示同意建立连接。服务器进入 SYN_RCVD 状态。这个包中包含服务器的初始序列号以及对客户端 SYN 包的确认号(Acknowledgment Number)。
  3. 客户端发送 ACK 包:客户端收到 SYN + ACK 包后,向服务器发送 ACK 包进行确认。客户端进入 ESTABLISHED 状态。服务器收到 ACK 包后也进入 ESTABLISHED 状态,此时连接建立成功。
TCP 三次握手的目的
  1. 确保双方通信能力正常:通过三次握手,客户端和服务器可以确认彼此都能正常发送和接收数据,确保通信的可靠性。
  2. 同步初始序列号:交换初始序列号(Sequence Number),为后续数据传输提供基础,确保数据按顺序传输且不重复。
  3. 防止已失效的连接请求干扰:避免网络中延迟的旧连接请求突然到达服务器,导致服务器误认为是新的连接请求。
TCP 四次挥手
  1. 客户端发送 FIN 包:客户端向服务器发送 FIN (结束标志)包,表示请求关闭连接,此时客户端进入 FIN_WAIT_1 状态。
  2. 服务器回复 ACK 包:服务器收到 FIN 包后,向客户端发送 ACK 包进行确认,服务器进入 CLOSE_WAIT 状态。客户端收到 ACK 包后进入 FIN_WAIT_2 状态。
  3. 服务器发送 FIN 包:服务器处理完剩余数据后,向客户端发送 FIN 包,表示同意关闭连接,服务器进入 LAST_ACK 状态 。
  4. 客户端回复 ACK 包:客户端收到 FIN 包后,向服务器发送 ACK 包进行确认,客户端进入 TIME_WAIT 状态。服务器收到 ACK 包后,关闭连接进入 CLOSED 状态。客户端在 TIME_WAIT 状态等待一段时间(2MSL,最大段生命周期)后也进入 CLOSED 状态。
TCP 四次挥手的目的
  1. 确保双方数据发送完毕:通过四次挥手,双方确认彼此都没有数据需要发送,确保数据传输的完整性。
  2. 安全关闭连接:双方确认关闭连接,避免一方突然关闭导致另一方还在发送数据,造成数据丢失或错误。
  3. 释放资源:关闭连接后,释放双方占用的网络资源,如端口、内存等,提高系统效率。

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 是 HTTP 的安全升级版,现代网站普遍推荐使用 HTTPS 以保护用户隐私和数据安全。

6.什么是CDN

CDN(Content Delivery Network,内容分发网络)是一种分布式网络架构,旨在加速内容传输提升用户体验

1. 核心概念
  • CDN 通过将内容(如图片、视频、CSS、JavaScript 等)缓存到全球分布的边缘节点,使用户可以从离自己最近的节点获取内容,从而减少延迟、提高访问速度。
2. 工作原理
  1. 内容缓存
    • 源服务器将内容分发到 CDN 的多个边缘节点。
  2. 用户请求
    • 用户访问网站时,请求会被重定向到离用户最近的边缘节点。
  3. 内容返回
    • 如果边缘节点缓存了所需内容,直接返回给用户;否则,从源服务器获取内容并缓存到边缘节点。
3. 主要功能
  1. 加速内容传输
    • 通过就近访问边缘节点,减少网络延迟,提升加载速度。
  2. 减轻源服务器负载
    • 大多数请求由边缘节点处理,降低源服务器的压力。
  3. 提高可用性
    • 即使源服务器故障,用户仍可从边缘节点获取缓存内容。
  4. 抵御网络攻击
    • CDN 可以提供 DDoS 防护、WAF(Web 应用防火墙)等安全功能。
4. 应用场景
  1. 静态资源加速
    • 如图片、CSS、JavaScript 等文件的快速加载。
  2. 视频和直播流媒体
    • 提供流畅的视频播放体验。
  3. 软件和游戏下载
    • 加速大文件的分发。
  4. 全球业务扩展
    • 为全球用户提供一致的访问体验。
5. 优势
  • 更快的内容加载:减少延迟,提升用户体验。
  • 更高的可靠性:通过冗余节点提高服务可用性。
  • 更强的安全性:提供 DDoS 防护、WAF 等安全功能。
  • 更低的成本:减少带宽消耗和服务器负载。

7.什么是WebSocket

WebSocket 是一种基于 TCP 的通信协议,用于在客户端(如浏览器)和服务器之间实现全双工、低延迟的实时通信。

1. 核心特点
  1. 全双工通信
    • 客户端和服务器可以同时发送和接收数据,无需等待对方完成。
  2. 低延迟
    • 基于长连接,无需频繁建立和断开连接,减少了通信开销。
  3. 实时性
    • 支持实时数据传输,适用于需要即时响应的场景。
  4. 基于 HTTP/HTTPS
    • 通过 HTTP/HTTPS 协议升级到 WebSocket 协议,兼容现有网络基础设施。
2.与HTTP的区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2303802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1.1 go环境搭建及基本使用

golang下载地址: Download and install - The Go Programming Language (google.cn) 验证安装是否成功: go version 查看go环境 go env 注意:Go1.11版本之后无需手动配置环境变量,使用go mod 管理项目,也不需要把项目放到GO…

Gemini 2.0助力科学突破,AI联合科学家系统登场

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

京东外卖骑手全部缴纳五险一金

刘强东这步棋,直击700万骑手软肋? 今天,京东突然甩出一张底牌:自2025年3月1日起,外卖全职骑手全员缴纳五险一金,兼职骑手配套意外医疗双保险。 消息一出,直接炸了外卖江湖。要知道&#xff0c…

百度云DeepSeek一体机:百舸、千帆和一见介绍及区别对比

百度智能云DeepSeek一体机百舸、千帆和一见,搭载昆仑芯等国产自研算力芯片,可支持在单机环境下一键部署DeepSeek R1/V3全系列模型。百度云服务器网bdyfwq.com分享百度智能云官方发布的百舸DeepSeek一体机、千帆DeepSeek一体机和一见DeepSeek一体机配置介…

【算法】直接插入排序、折半插入排序、希尔排序

1 直接插入排序 时间复杂度:O(N^2) 空间复杂度:O(1) 稳定性:稳定 元素集合越接近有序,直接插入排序算法的时间效率越高 1.1直接插入排序思想 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff…

使用API有效率地管理Dynadot域名,为域名部署DNS安全拓展(DNSSEC)

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

【排版教程】如何在Word/WPS中优雅的插入参考文献

材料展示 随便选取一段综述内容,以及对应的参考文献,如下图所示: 1 参考文献编辑 首先对参考文献部分进行编辑,将其设置自动编号 在段落中,选择悬挂缩进 在编号中,设置自定义编号,然后按照…

神经形态视觉的实时动态避障系统:突破传统SLAM的响应延迟瓶颈

引言:机器人感知的实时性挑战 斯坦福机器人实验室采用异步脉冲神经网络处理DVS事件相机数据后,动态障碍物响应延迟从34ms降至0.9ms。在20m复杂场景避障测试中,基于神经形态芯片的路径规划系统将SLAM更新频率提升至10kHz,较传统GP…

Linux操作系统4-进程间通信5(共享内存实现两个进程通信)

上篇文章:Linux操作系统4-进程间通信4(共享内存原理,创建,查看,命令)-CSDN博客 本篇Gitee仓库:myLerningCode/l24 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 本篇重…

RFID测温技术:电力设备安全监测的新利器

在当今高度依赖电力的现代化社会中,稳定且可靠的电力供应是社会运转的基石。电力设备作为电力系统的关键核心,其运行状态直接关乎电力供应的品质。然而,电力设备长期运行过程中,受到诸如过载、接触不良以及环境因素等多重影响&…

(一)趣学设计模式 之 单例模式!

目录 一、啥是单例模式?二、为什么要用单例模式?三、单例模式怎么实现?1. 饿汉式:先下手为强! 😈2. 懒汉式:用的时候再创建! 😴3. 枚举:最简单最安全的单例&a…

自动化办公|xlwings生成图表

在日常的数据分析和报告生成中,Excel图表是一个非常重要的工具。它能够帮助我们直观地展示数据,发现数据中的规律和趋势。然而,手动创建和调整图表往往耗时且容易出错。幸运的是,借助Python的xlwings库,我们可以自动化…

Docker基于Ollama本地部署大语言模型

一、Ollama介绍 Ollama 是一个开源的大型语言模型(LLM)平台,旨在简化大型语言模型在本地环境中的运行、管理和交互。通过Ollama,用户可以轻松加载和使用各种预训练的语言模型,执行诸如文本生成、翻译、代码编写、问答…

centos9安装k8s集群

以下是基于CentOS Stream 9的Kubernetes 1.28.2完整安装流程(containerd版): 一、系统初始化(所有节点执行) # 关闭防火墙 systemctl disable --now firewalld# 关闭SELinux sed -i "s/SELINUXenforcing/SELINU…

pytest下allure

import pytestdef test_case01():用例01~print(用例01)class Test_mokuai01:def test_case02(self):用例02~print(用例02)if __name____main__:#pytest.main([-vs,test_sample-2.py])pytest.main([-vs,test_sample-2.py,--allure-dir,./result2])#生成allure报告,参…

JVM预热

阿里电商平台每年的各种大促活动,对于Java技术来说,其中重要一个操作环节就是预热操作。 目录 预热是什么?为什么要预热? java 程序不预热和预热的调用对比 预热是什么? 预热是指,在 JVM 启动后&#xff0…

【JavaWeb12】数据交换与异步请求:JSON与Ajax的绝妙搭配是否塑造了Web的交互革命?

文章目录 🌍一. 数据交换--JSON❄️1. JSON介绍❄️2. JSON 快速入门❄️3. JSON 对象和字符串对象转换❄️4. JSON 在 java 中使用❄️5. 代码演示 🌍二. 异步请求--Ajax❄️1. 基本介绍❄️2. JavaScript 原生 Ajax 请求❄️3. JQuery 的 Ajax 请求 &a…

网页制作06-html,css,javascript初认识のhtml如何建立超链接

超链接有外部链接、电子邮件链接、锚点链接、空链接、脚本链接 一、内部链接 与自身网站页面有关的链接被称为内部链接 1、创建内部链接 1&#xff09;语法&#xff1a; <a href"链接地址"> …… </a> 2&#xff09;举例应用&#xff1a; 3&#xf…

代码讲解系列-CV(七)——前沿论文复现

文章目录 一、论文速览1.1 确定baseline1.2 DepthMaster: Taming Diffusion Models for Monocular Depth Estimation 二、数据环境搭建2.1 环境搭建2.2 数据权重 三、推理debug3.1 单图推理3.2 数据集验证 四、模型训练4.1 数据读取4.2 训练流程 五、作业 一、论文速览 1.1 确…

数据库面试知识点总结

目录 1. MySQL 基础题1.1 执行⼀条 select / update 语句&#xff0c;在 MySQL 中发生了什么&#xff1f;1.2 MySQL 一行记录是怎么存储的&#xff1f; 2. 三大范式3. 数据库引擎3.1 Innodb3.2 MyISAM 4. 数据库索引4.1 索引分类4.2 索引优缺点4.3 索引使用场景4.4 优化索引方法…