网络、HTTP、HTTPS、Session、Cookie、UDP、TCP

OSI 七层模型

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

TCP/IP 五层模型

  • 应用层:为用户的应用进程提供网络通信服务(协议:域名系统DNS协议,HTTP协议,SMTP协议
  • 传输层:负责数据从发送端传输到接收端(协议:TCP协议,UDP协议
  • 网络层:在复杂的网络环境中确定一个合适的路径(协议:IP协议
  • 数据链路层:将网络层交下来的数据报封装成帧,在同一中数据链路节点的两个设备之间传输(协议:MTU协议和ARP协议
  • 物理层:实现相邻两个计算机节点的比特流的透明传输

应用层

HTTP协议特点

  • 支持B/S架构
  • 简单快速:客户端向服务器端发送请求时,只需要传输请求方法和路径
  • 灵活:HTTP允许传输任意类型的数据对象
  • 无连接:每次只能处理一个请求,服务器处理完客户端的请求,并收到客户端的响应之后,就断开连接
  • 无状态:指协议本身对事物处理没有记忆能力。缺少状态意味着后续处理需要前面的信息,那他必须重传,这会导致每次传输的数据量增大,但是如果不需要的话,传输就会很快

GET和POST

  • GET()方法一般用于获取/查询资源信息,而POST()一般用于更新资源信息
  • GET方法用于从Web服务器请求数据。在使用GET方法时,浏览器向Web服务器发送一个请求,Web服务器将响应数据发送回浏览器。GET方法是无状态的,也就是说每个请求都是独立的,没有前后关系。GET方法通常用于请求静态数据,如HTML页面、图片和CSS文件等
  • POST方法用于向Web服务器提交数据。在使用POST方法时,浏览器将数据打包并发送到Web服务器。Web服务器收到数据后,可以根据数据执行相应的操作,并向浏览器发送响应。POST方法是有状态的,也就是说请求和响应之间存在关系,请求和响应之间的数据可以互相传递。POST方法通常用于向Web服务器提交表单数据和上传文件等操作

GET和POST区别

  • 使用get方法可以收藏为书签、可以被缓存、参数保留在历史记录中;而post方法这些都不行
  • 随数据长度的限制:GET方法对数据长度有限制,因为GET方法是再URL中的添加数据的,而URL的最大长度是2048;POST无限制
  • 数据类型的限制:GET方法只允许ASCII字符;POST无限制,也允许二进制
  • 安全性:GET安全性差,因为内容在URL里;POST请求数据可以在请求正文里
  • 可见性:GET对所有人可见。因为数据在URL中,POST数据不显示在URL中

状态码

分类分类描述
1**服务器收到请求,需要进一步操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步操作完成请求
4**客户端错误,请求包含语法错误或者无法完成请求
5**服务器错误,服务器在处理请求过程中发生了错误

在这里插入图片描述

Session和Cookie

  • Session指的是web系统的会话,指用户登录以后,再退出前都是一个会话;用户登录的时候,服务器保存用户的身份信息Map<Value,Session>),在之后的访问敏感资源的时候,通过请求key=value,服务器端通过key对应到value,然后再map中获取到用户的身份信息。
  • Cookie实际上是一段文本信息,原理是:客户端本地保存用户的身份信息(使用场景,登陆页面的多少天免登录/记住密码等)

Session和Cookie联系

  • 服务器在第一次收到请求后,开辟一块Session空间(创建Session对象),同时生成一个Session id,并通过响应头中的Set-Cookie:JSESSIONID = xxxxx命令,向客户端要求设置Cooike,客户端收到响应后,在本机客户端设置一个JSESSIONID=xxxxx的Cookie信息,这个Cookie的结束时间是本次会话结束;接下来每次客户端向同一个服务器发送请求时,请求头里都会带上Cookie信息,然后,服务器通过读取请求头中的Cookie信息,获取JSESSIONID的值,获得本次的Session id。
  • 服务器只会在第一次客户端的请求的响应中,在响应头中加上Set-Cookie:JSESSIONID = xxxxx信息,接下来同一个会话中不会再添加;而客户端必须每次请求头中带上Cookie:JSESSIONID = xxxxx

在这里插入图片描述

HTTP和HTTPS区别

  • HTTP是以http://开头的,HTTPS是以https://开头的
  • HTTP不安全,信息是明文传输的;HTTPS是安全的,具有安全性的SSL加密传输
  • HTTP标准端口是80;HTTPS标准端口是443
  • OSI模型中,HTTP工作于应用层;HTTPS工作于传输层
  • HTTP无需加密,无需证书;HTTPS对传输的数据需要加密,也需要认证证书,会消耗更多的CPU资源

传输层

五元组

源IP、源端口号、目的IP、目的端口号、协议号

UDP协议和TCP协议区别

  • 1、TCP面向连接,UDP面向无连接

TCP在通信前是需要三次握手的,UDP进行通信时,双方可以随时发数据

  • 2、TCP可靠,UDP不可靠

TCP保证数据的正确性以及顺序,UDP不保证还可能丢包。
UDP只会把想发的数据报文一股脑的丢给对方,并不在意数据有无安全完整到达。
在TCP协议中使用了接收确认和重传机制,使得每一个信息都能保证到达,是可靠的。
而UDP是尽力传送,没有应答和重传机制,UDP只是将信息发送出去,对方收不收到也不进行应答。所以UDP协议是不可靠的

  • 3、TCP/UDP传输方式

TCP因为有三次握手机制,所以只能一对一,而UDP不仅支持一对一,还支持一对多,多对多,多对一

  • 4、TCP面向字节流,UDP面向数据报

应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文;TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去

  • 5、TCP的头部开销大,UDP的头部开销小

UDP的头部很小,只有8个字节。TCP的头部至少要20个字节

  • 6、TCP会产生粘包问题,UDP会产生丢包问题

TCP产生粘包问题的主要原因是:TCP是面向连接的,所以在TCP看来,并没有把消息看成一条条的,而是全部消息在TCP眼里都是字节流,因此容易把多个消息混在一起后,TCP就分不清了
UDP是没有应答和重传机制,因此包很容易传丢了而且自己都不知道

TCP如何保证可靠性

协议头中的校验号和序列号
确认应答:发送数据包中携带序号,在响应数据报中有确认序号,发送数据段可以知道哪些数据被接收到了
超时重传:发送端A在一定时间内(最大时间*2)没有收到接收端的确认数据包,就会重新发送数据
连接管理机制:正常连接下,要进行三次握手建立连接和四次挥手断开连接
拥塞控制:发送端不清楚网络情况下,不会贸然发送大量数据包,以免造成网络拥堵
流量控制:接收端的接受能力有限的话(发送太快,会产生丢包),会告知发送端发送数据的大小

三次握手

在这里插入图片描述
三次握手流程(以A向B建立连接)

  • 1、建立主机A的连接:发送A的请求连接数据包(SYN)到B
  • 2、响应主机A的连接并建立主机B的连接:B发送响应数据包(ACK)和B的请求连接数据包(SYN)到A
  • 3、响应B的连接:A发送响应B连接的数据包(ACK)到A

四次挥手

TCP建立连接要三次握手,而断开连接要四次挥手,这是由于TCP的半关闭造成的。因为TCP连接是全双工的(数据在两个方向上可同时传递)所以进行关闭时就需要在每个方向上进行单独关闭。这个单方向的关闭就叫做半关闭,当一方完成它的数据传输时,就要发送一个FIN来向另一方通知将要终止这个方向的连接
四次挥手流程(以A向B断开连接):

  • 1、A向B发送断开连接请求FIN
  • 2、B响应A的断开连接请求,发送ACK响应包给A
  • 3、B向A发送断开连接请求FIN
  • 4、A响应B的断开连接请求,发送ACK响应给B
    在这里插入图片描述

拥塞控制

发送端在不清楚网络情况下,贸然发送大量数据会造成网络拥塞

  • 慢启动:一开始只发送少量数据,探测一下网络拥塞程度,然后增大传输的数据,拥塞窗口会指数增大
  • 拥塞避免:拥塞窗口到达慢启动的阈值时,拥塞窗口就不会指数增大了,会加法增大,按照线性规律缓慢增大
  • 快重传和快恢复:快速恢复丢失的数据包
  • TCP开始启动的时候,慢启动的阈值为最大值;超时重传时,阈值为最大值的一半

UDP实现可靠

UDP实现可靠,要解决丢包和包顺序问题:

  • 给每个数据包加编号,按照包的顺序接收存储
  • 接收端收到数据包后,发送确认信息给发送端,发送端接收到确认数据后再发送下一个数据包;如果接收到的确认信号不是预期的信号,就重新发送

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

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

相关文章

leetcode 530.二叉搜索树的最小绝对差 、501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先

leetcode 530.二叉搜索树的最小绝对差 、501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先 leetcode 530.二叉搜索树的最小绝对差 题目链接&#xff1a;https://leetcode.cn/problems/maximum-binary-tree/description/ 题目&#xff1a; 给你一个二叉搜索树的根节点 r…

【MATLAB源码-第214期】基于matlab的遗传算法GA最短路径路由优化算法仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 在现代网络通信和路径规划领域&#xff0c;最短路径路由优化算法是一项关键技术。它涉及在给定的网络拓扑中寻找从源点到目标点的最短或成本最低的路径。近年来&#xff0c;遗传算法&#xff08;GA&#xff09;因其出色的全局…

跟进2年弄丢1.8亿,你的大客管理错在哪里?

数量并非目的之所在&#xff0c;质量才是根本之道。重视1%的超级用户&#xff0c;才是提高效率的关键所在。 ——凯文凯利 在当今的商业环境中&#xff0c;大客户已成为销售服务型企业最宝贵的资产。他们不仅贡献了企业收入的重要一环&#xff0c;…

pinia持久化未生效

pinia官方文档 https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/ pinia持久化未生效的原因很有可能就是在main.js中重复创建了pinia&#xff0c;导致持久化未生效

sql注入利用group_concat函数

1.group_concat函数的作用&#xff1a; 首先根据group by指定的列进行分组&#xff0c;将同一组的列显示出来&#xff0c;并且用分隔符分隔。 2.group_concat运用 这里我使用的是sqllab-less1&#xff0c;通过对数据库的查询&#xff0c;我们发现数据库表名&#xff0c;列名&a…

手写电纸书天花板,阅读办公新体验 | 汉王手写电纸本 N10 2024 版使用评测

手写电纸书天花板&#xff0c;阅读办公新体验 | 汉王手写电纸本 N10 2024 版使用评测 请问如果说到电纸书&#xff0c;你的认知还只是Kindle吗&#xff1f;然而遗憾的是&#xff0c;Kindle亦是过去&#xff0c;智能才是未来。 哈喽小伙伴们好&#xff0c;我是Stark-C~&#x…

蓝桥杯嵌入式国赛笔记(4):多路AD采集

1、前言 蓝桥杯的国赛会遇到多路AD采集的情况&#xff0c;这时候之前的单路采集的方式就不可用了&#xff0c;下面介绍两种多路采集的方式。 以第13届国赛为例 2、方法一&#xff08;配置通道&#xff09; 2.1 使用CubeMx配置 设置IN13与IN17为Single-ended 在Parameter S…

内网安全-隧道搭建穿透上线内网穿透-nps自定义上线内网渗透-Linux上线-cs上线Linux主机

目录 内网安全-隧道搭建&穿透上线内网穿透-nps-自定义-上线NPS工具介绍搭建过程 nps原理介绍MSF上线CS上线 内网渗透-Linux上线-cs上线Linux主机1.下载插件2.导入插件模块3.配置监听器4.服务端配置5.配置C2监听器并生成木马6.执行木马 内网安全-隧道搭建&穿透上线 内网…

2024年新算法-秘书鸟优化算法(SBOA)优化BP神经网络回归预测

2024年新算法-秘书鸟优化算法(SBOA)优化BP神经网络回归预测 亮点&#xff1a; 输出多个评价指标&#xff1a;R2&#xff0c;RMSE&#xff0c;MSE&#xff0c;MAPE和MAE 满足需求&#xff0c;分开运行和对比的都有对应的主函数&#xff1a;main_BP, main_SBOA, main_BPvsBP_SB…

【计算机视觉 Mamba】MambaOut: Do We Really Need Mamba for Vision?

MambaOut: Do We Really Need Mamba for Vision? 在视觉任务上我们需要Mamba吗? 论文地址 代码地址 知乎解读&#xff1a;王牌飞行员申请出战&#xff01; 知乎解读&#xff1a;Mamba 模型解读 (一)&#xff1a;MambaOut&#xff1a;在视觉任务中&#xff0c;我们真的需要 …

Langchain-Chatchat之pdf转markdown格式

文章目录 背景开发环境loader文本解析步骤markdown格式的文本为什么选择markdown格式测试markdown格式提取表格原pdf表格markdown格式的表格 测试markdown格式的知识库运行项目修改文件加载器loader 其他问题运行项目报错查看系统当前的max_user_watches修改sysctl.conf配置 图…

AWS迁移与传输之AMS/MGN

AWS Application Migration Service&#xff08;AWS Application Migration Service简称为AWS MGN&#xff0c;MGN是migration的缩写。&#xff09;是一项全面的迁移服务&#xff0c;旨在帮助企业将其本地服务器和虚拟机迁移到云端&#xff0c;包括AWS和VMware Cloud on AWS。 …

OrangePi AIpro初体验:开启嵌入式开发之旅

概述 随着物联网和智能设备时代的到来&#xff0c;单板电脑因其独特的优势成为创新项目和教育实践的重要工具。在众多单板电脑中&#xff0c;香橙派以其出色的性能和亲民的价格&#xff0c;十分吸引博主这初涉嵌入式开发的新手。博主有幸被CSDN邀请对OrangePi AIpro进行测评。…

vivado设置Vscode为默认编辑器

D:\vscode\Microsoft VS Code\Code.exe -g [file name]:[line number]

鸿蒙ArkUI-X跨平台开发:【资源分类与访问】

资源分类与访问 应用开发过程中&#xff0c;经常需要用到颜色、字体、间距、图片等资源&#xff0c;在不同的设备或配置中&#xff0c;这些资源的值可能不同。 应用资源&#xff1a;借助资源文件能力&#xff0c;开发者在应用中自定义资源&#xff0c;自行管理这些资源在不同…

话术巧妙分隔沟通效果更佳看看这个小技巧

客服回复客户咨询&#xff0c;如果遇到比较复杂的问题&#xff0c;经常会有大段的文字回复&#xff0c;用聊天宝的分段符功能&#xff0c;在需要分段的地方点击右上角的“插入分隔符”&#xff0c;就可以在指定位置分段&#xff0c;实现多段发送的目的。 前言 客服回复客户咨询…

干冰清洗机的清洗原理及应用

干冰清洗机的清洗原理及应用可以详细阐述如下&#xff1a; 一、清洗原理 干冰清洗机的清洗原理主要基于干冰的低温冷冻作用。干冰在常温下会迅速升华&#xff0c;吸收大量的热量&#xff0c;使周围的温度迅速降低。当干冰颗粒通过特殊的干冰清洗机喷射到清洗物体表面时&#…

系统架构设计师【第1章】: 绪论 (核心总结)

文章目录 1.1 系统架构概述1.1.1 系统架构的定义及发展历程1.1.2 软件架构的常用分类及建模方法1.1.3 软件架构的应用场景1.1.4 软件架构的发展未来 1.2 系统架构设计师概述1.2.1 架构设计师的定义、职责和任务1.2.2 架构设计师应具备的专业素质1.2.3 架构设计师的知识…

Java入门基础学习笔记45——String使用的注意事项

String使用时的注意事项&#xff1a; 1&#xff09;String对象的内容不可改变&#xff0c;被称为不可变字符串对象。 Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are im…

C++代码使用ClangCL编译注意事项

遇到cmake指定模板类工程使用msvc的clang编译器编译代码&#xff0c;代码变量出现与预期不符的问题&#xff1b; 如下&#xff1a; clangcl将实现放到头文件里则不会出现这样的情况&#xff1b; 最后按照pcl的模板类写法则解决这个问题&#xff1b;