计算机网络常识:缓存、长短连接 网络初探、URL、客户端与服务端、域名操作 tcp 三次握手 四次挥手

news2025/5/9 15:09:02

缓存: 

缓存是对cpu,内存的一个节约:节约的是网络带宽资源 节约服务器的性能

资源的每次下载和请求都会造成服务器的一个压力

减少网络对资源拉取的延迟 这个就是浏览器缓存的一个好处

表示这个html页面的返回是不要缓存的 忽略缓存  需要每次都到服务器上获取新的

并不是不缓存 而是提示浏览器忽略缓存

pragma:no-cache:浏览器忽略缓存 出现在响应头里面

用来控制缓存:

浏览器发起请求,先会去看有没有缓存 没有缓存直接去请求服务器去拉取资源

在有缓存,但是缓存过期的情况下

返回304的条件:

从磁盘缓存当中去获取:过期时间没有到

图片一定是设置了过期时间的 图片资源不放在服务器上 用单独的图片服务器 

图片就会做一个缓存 

视频类的存储在磁盘当中

三次握手 四次挥手的状态变化

状态变化是从三次握手开始的

服务器:启动--绑定--设置监听 listen()--监听先准备好 这样才是有效的

从无状态变成listen

这样开始三次握手的操作:

(1)第一次握手:客户端发起 客户端调用connect函数

rcvd:接收

第二次握手服务器发生变化  客户端收到服务器的返回页发生变化

当最后成功 客户端和服务器是一个样子 都是established

三次握手成功 双方连接建立

建立之后就可以进行通信了--进行数据传输 通信过程中tcp是没有发生任何变化的

established就是正常的通信状态

SYN==1 发起连接请求 ==0时是没有连接

 三次握手:

第一次握手:建立连接时,客户端发送SYN包到服务器,并等待服务器确认。

第二次握手:服务器收到SYN包,同时自己也给客户端发送一个确认包SYN+ACK包。

第三次握手: 客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK。

此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手

四次挥手:

双方通信完毕,关闭连接时,要进行四次挥手

第一次挥手:客户端发送一个FIN包,申请断开连接,并等待服务器确认。

第二次挥手:服务端回复一个ACK包,表示接受到客户端的关闭连接请求,但现在服务端还不能马上关

闭连接,需要检查下是否还有未处理完的数据

第三次挥手:服务端处理完所有数据,给客户端发送FIN包,表示可以断开连接

第四次挥手:客户端回复ACK包,表示断开连接

http的长短连接:

短连接:每次请求都会建立连接

长连接就是只建立一次连接 多次资源请求都复用该连接 完成后关闭

网络深层知识:

 浏览器请求一个网页:

客户端就是用户所用的程序:浏览器  应用程序等等都叫做客户端client

客户端client

服务端就是存储数据 存储网页的程序 还有处理数据的一个载体

服务端:数据和文件的出口   客户端就是数据的入口

后台是数据的管理

服务器就是电脑:家用电脑 配置高一点 服务器的系统带server

我们输入一个url地址,回车:就会对网址先进行dns解析 先去解析到底是什么东西

将网址转换成ip地址  然后通往服务器 这个过程会建立三次握手和四次挥手

这个就是请求网页的流程!!!!

一般来说,一个服务器承载着一个或者多个ip地址 

一个网址对应一个ip地址 那为什么不直接使用ip而使用URL地址呢?

首先是方便记忆 数字不方便记忆

一个ip地址能映射出多个域名 所以ip地址是不适合用户直接接触的

计算机对数字是比较敏感的

三次握手才会真正的建立三次握手的连接 建立连接之后才能进行http请求

服务器返回,客户端收到的是html代码文件,浏览器进行解析和渲染

等到渲染页面结束,进行四次挥手

tcp/ip的这种连接方式叫做长连接

重点:

tcp在哪个层

回答下tcp的功能

tcp为什么是三次握手?不是两次四次?

如果只做两次,无法去确认客户端的接收能力

tcp面向连接 必须是双方的 如果只有两次 只是服务器建立 客户端并没有

造成连接资源的浪费

四次是没有必要的 所以没有必要进行第四次握手

TCP为什么需要4次挥手? 为什么不是三次?

如果将第二次和第三次和为一体 第二次和第三次之间是有时间延迟的

导致客户端不能及时接收:客户端会重新发送断开请求

ack和fin之间是有时差的

这个延迟是没有办法处理的 只能是把这两次都分开 这样才能达到效率最高

只有当客户端和服务器两端都确定好要断开了 才能断开 

四次是最优的方案

五次会造成资源的浪费

异常状态码,400应该找前端还是后端

HTTP状态码 400 表示客户端请求存在语法或参数错误,其责任归属需要具体分析。 

http是哪一层协议

osi七层协议有哪七层  tcp四层模型

tcp四层模型

物理层和数据链路层合称为网络接口层

三层交换机具有路由功能

分层:方便管理

第七层 应用层

应用层是OSI模型中的最高层,也是和用户最近的一层。它直接面向用户和应用程序,为用户提供各种网络服务和应用程序支持

第六层 表示层

负责数据格式与编码方式的转换、加密解密和数据压缩等任务。在实际的通信协议中,表示层往往与应用层或会话层结合使用,对数据进行处理和转换。

第五层 会话层

在OSI七层模型中,会话层没有单独的协议,而是利用下层协议提供的会话机制来实现数据交换。会话层的作用是管理和协调应用程序之间的对话和会话,并与表示层一起支持数据转换、加密和解密等功能。

第四层 传输层


传输层的作用是在不可靠的网络上提供可靠的数据传输服务。它负责将应用程序发送的数据分割成较小的数据段,并使用可靠的数据传输协议(如TCP)或不可靠的数据传输协议(如UDP)将这些数据段传输到目标设备。传输层还负责控制数据流量、错误恢复和拥塞控制等任务。
如果你想要稳,就选tcp,想要稳,就选UDP

第三层 网络层

负责将数据包从源主机传输到目标主机。网络层通过使用IP协议来实现这一过程,提供了路由、寻址和分组传输等功能,以确保数据能够经过多个网络进行传输,并最终到达目标主机。

第二层 数据链路层

负责将网络层传输过来的数据包进行分帧,并在物理介质上进行传输。数据链路层还提供了错误检测和纠正功能,以确保数据的可靠性。此外,数据链路层还实现了访问控制和流量控制等功能,以协调多个设备之间的数据传输。

第一层 物理层

这一层就是osi最底层了,负责将数字数据转换成物理信号并在网络中传输。其意义在于实现不同设备之间的数据传输和通信,使得计算机网络得以正常工作。物理层还定义了传输媒介、传输速率、编码方式等参数,为上层协议提供了可靠的数据传输基础。

就是进行物理连接的

get和post请求的区别 

应用层的常见协议有哪些? 

http状态码

常见HTTP状态码 :

1xx :100 Continue继续:客户端应继续其请求

2xx :200 OK

请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。

204 No Content(无内容)

服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档。

206 Partial Content(部分内容)

服务器成功处理了部分GET请求。

3xx

301 Moved Permanently(永久重定向)

请求的资源已被永久的移动到新URL,返回信息会包括新的URL,浏览器会自动定向到新URL。今后任何新的请求都应使用新的URI代替。

302 Found(临时重定向)

与301类似。但资源只是临时被移动。表示请求的资源被分配了新的URL,希望本次访问使用新的URL。

303 See Othe(查看其他地址)

当请求者应对不同的位置进行单独的 GET 请求以检索响应时,服务器会返回此代码。对于除 HEAD 请求之外的所有请求,服务器会自动转到其他位置。

304 Not Modified(未修改)

所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。

305 Use Proxy(使用代理)

请求者只能使用代理访问请求的网页。如果服务器返回此响应,那么,服务器还会指明请求者应当使用的代理

307 Temporary Redire(临时重定向)

与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况)。

4xx :

400 Bad Request (语法错误)

客户端请求的语法错误,服务器无法理解。

401 Unauthorized(未授权)

请求要求用户的身份认证

403 Forbidden(禁止)

服务器理解请求客户端的请求,但是拒绝执行此请求

404 Not Found(未找到)

服务器无法根据客户端的请求找到资源(网页)。除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用。

405 Method Not Allowed (方法禁用)

客户端请求中的方法被禁止。

406 Not Acceptable(不接受)

无法使用请求的内容特性来响应请求的网页。

408 Request Time-out(请求超时)

服务器等待客户端发送的请求时间过长,超时。

5xx

500Internal Server Error(服务器内部错误)

服务器遇到错误,无法完成请求。

501 Not Implemented(尚未实施)

服务器不具备完成请求的功能。例如,当服务器无法识别请求方法时,服务器可能会返回此代码。

502 Bad Gateway(错误网关)

作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应

503 Service Unavailable(服务不可用)

由于超载或系统维护,服务器暂时的无法处理客户端的请求。通常,这只是一种暂时的状态。

504 Gateway Time-out(网关超时)

服务器作为网关或代理,未及时从上游服务器接收请求。

505 HTTP Version not supported(HTTP 版本不受支持)

服务器不支持请求中所使用的 HTTP 协议版本。

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

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

相关文章

软件逆向工程核心技术:脱壳原理与实战分析

目录 一、脱壳技术概述:从保护到还原的逆向之旅 1.1 脱壳技术的本质与核心价值 1.2 壳的分类与核心技术解析 1.3 学习路径:从压缩壳到加密壳的渐进式突破 二、脱壳三步法:系统化逆向工程框架 2.1 核心流程总览 2.2 实战案例&#xff1…

华为OD机试真题——荒岛求生(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 200分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录…

【CTFer成长之路】举足轻重的信息搜集

举足轻重的信息搜集 信息搜集 常见的搜集 题目描述: 一共3部分flag docker-compose.yml version: 3.2services:web:image: registry.cn-hangzhou.aliyuncs.com/n1book/web-information-backk:latestports:- 80:80启动方式 docker-compose up -d 题目Flag n1book{info_…

Linux开发工具【中】

目录 一、vim 1.1 插入模式 1.2 底行模式 1)set nu 2)set nonu 3) /XXX n 4)!command 5)vs other 1.3 补充 1) 批量化操作 2)批量化替换 : 3)快速定位&am…

MySQL OCP 认证限时免费活动​ 7 月 31 日 前截止!!!

为庆祝 MySQL 数据库发布 30 周年,Oracle 官方推出限时福利:2025 年 4 月 20 日至 7 月 31 日期间,所有人均可免费报考 MySQL OCP(Oracle Certified Professional)认证考试。该认证验证持证者在 MySQL 数据库管理、优化…

学习笔记:数据库——事务

1.内容: 基于现有数据库设计检查点实验,观察比较提交前后执行结果并分析。 2.实现 源码 -- 开启事务 START TRANSACTION;-- 插入一条订单记录(客户ID为10002) INSERT INTO orders (o_date, c_id) VALUES (NOW(), 10002);-- 获…

UE5 Daz头发转Blender曲线再导出ABC成为Groom

先安装Daz to Blender Import插件 【神器】 --DAZ一键导入blender插件的详细安装和使用,自带骨骼绑定和控制器,多姿势动画,Importer桥接插件_哔哩哔哩_bilibili 然后安装DAZHairConverter插件 一分钟将DAZ头发转化成Blender粒子毛发_哔哩哔…

【贪心算法】贪心算法四

贪心算法四 1.最长回文串2.增减字符串匹配3.分发饼干4.最优除法点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.最长回文串 题目链接: 409. 最长回文串 题目分析: 给一个包含大小字母的字符串,从里面挑选出来一些字母构成一个…

【漫话机器学习系列】240.真正类率(True Positive Rate,TPR)

理解真正类率(True Positive Rate,TPR):公式、意义与应用 在机器学习与深度学习模型评估中,"真正类率"(True Positive Rate,简称TPR)是一个非常重要的指标。TPR反映了分类…

Linux的基础开发工具

目录 前言: 1、包管理器yum 1.1 软件包的依赖 1.2 镜像源 1.3 查找/安装/卸载软件 2、编辑器vim 2.1 命令模式(默认) 2.1.1 撤销与反撤销 2.1.2 光标定位 2.1.3 复制&&剪切(删除)&&粘贴 2.1.4 替换 2.1.5 插入模式 2.1.6 V-Block模式 …

【Electron】electron-vue 借助 element-ui UI 库助力桌面应用开发

前面文章我们讲过 electron 让可以用 HTML、JS、CSS 开发桌面应用程序。而 electron-vue 是一个结合了 electron 与 vue 的套件。这样我们就能方便地使用 vue 快速开发桌面应用。但是,vue 只是在 js 这层面做了大量的便捷的操作。对 UI 并未过多涉及。此时如果您在开…

Linux基础(最常用基本命令)

1.查看文件ls 1.1 格式 ls 选项 参数,如:ls -lah ~/ 1.2 选项设置: -l:list 以列表方式显示文件 -h:human-readable 以人类可读的方式显示文件大小(会将纯数字转换为kb,mb) -a:all 显示所有的…

含铜废水循环利用体系

在工业绿色转型浪潮中,含铜废水回收技术正以"资源再生智能管控"的双核驱动模式,重构传统水处理产业的价值链。该体系通过构建"精准分离-梯级利用-智慧运维"的闭环系统,不仅突破了重金属废水处理的技术桎梏,更…

MySQL 安装配置(完整教程)

文章目录 一、MySQL 简介二、下载 MySQL三、安装 MySQL四、配置环境变量五、配置 MySQL5.1 初始化 MySQL5.2 搭建 MySQL 环境 六、修改 MySQL 密码七、卸载 MySQL八、结语 一、MySQL 简介 MySQL 是一款广泛使用的开源关系型数据库管理系统(RDBMS)&#…

【JavaScript】二十九、垃圾回收 + 闭包 + 变量提升

文章目录 1、作用域1.1 局部作用域1.2 全局作用域1.3 作用域链 2、JC垃圾回收机制♻️3、GC算法3.1 引用计数法3.2 标记清除法 4、闭包4.1 定义4.2 闭包的应用:实现数据的私有 5、变量提升 1、作用域 即一个范围,离开了这个范围,这个变量就不…

【从零开始学习RabbitMQ | 第一篇】从异步通信到交换机

目录 前言 1.什么是RabbitMQ? 2.同步调用的优缺点 3.异步调用的优缺点 3.1优点: 3.2异步调用的问题是什么? 4技术选型 4.1AMQP协议就是: 4.2kafka和RabbitMQ的使用场景 5.安装RabitMq 6.rabitmq的整体架构 7.RabibtM…

AI(学习笔记第二课) 使用langchain进行AI开发

文章目录 AI(学习笔记第二课) 使用langchain进行AI开发学习内容:1. 使用背景2.创建python(pycharm community版)开发环境并连接deepseek2.1 创建python(pycharm community版)开发环境2.2 创建python工程2.3 写入初始py…

基于Jenkins的DevOps工程实践之Jenkins共享库

文章目录 前言Jenkins共享库结构1、共享库演示2、知识点补充3、实践使用共享库格式化输出日志4、groovy基础语法4.1、 什么是 Groovy?4.2、groovy特点4.3、运行方法4.4、标识符4.5、基本数据类型4.5.1、string类型4.5.2、list类型 4.6、函数使用4.7、正则表达式 5、…

使用Qt自带的Qt assistant时如何添加需要查看的文档

当我们双击打开Qt Assistant时 左边目录栏只有自带的帮助文档,所以需要添加要查看的文档 点击左上角Edit中的Preferences,点击add 找到qdoc文件夹 全选里面的内容 点击Apply 点击ok 左边的目录栏就出现所有这个版本的Qt有关的文档啦

基于网络爬虫+Spark+Hadoop等大数据和SpringBoot技术实现的的汽车行业大数据分析与可视化平台系统(源码+论文+PPT+部署文档教程等)

博主介绍:CSDN毕设辅导第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围…