当前位置: 首页 > news >正文

网络和操作系统基础篇

网络和操作系统基础篇

TCP三次握手

  • 客户端——发送带有SYN标志的数据包——服务端一次握手Client进入syn_sent状态;
  • 服务端——发送带有SYN/ACK标志的数据包——客户端二次握手服务端进入syn_rcvd;
  • 客户端——发送带有ACK标志的数据包——服务端三次握手连接就进入Established状态;

为什么三次
主要是为了建立可靠的通信信道,保证客户端与服务端同时具备发送、接收数据的能力。

为什么两次不行?

  1. 防止已失效的请求报文又传送到了服务端,建立了多余的链接,浪费资源。
  2. 两次握手只能保证单向连接是畅通的。(为了实现可靠数据传输,TCP协议的通信双方,都必须维护一个序列号,以标识发送出去的数据包中,哪些是已经被对方收到的。三次握手的过程即是通信双方相互告知序列号起始值,并确认对方已经收到了序列号起始值的必经步骤;如果只是两次握手,至多只有连接发起方的起始序列号能被确认,另一方选择的序列号则得不到确认)。

TCP四次挥手过程

  • 客户端——发送带有FIN标志的数据包——服务端,关闭与服务端的连接,客户端进入FIN-WAIT-1状态。
  • 服务端收到这个FIN,它发回⼀个ACK,确认序号为收到的序号加1,服务端就进入了CLOSE-WAIT状态。
  • 服务端——发送⼀个FIN数据包——客户端,关闭与客户端的连接,客户端就进入FIN-WAIT-2状态。
  • 客户端收到这个FIN,发回ACK报⽂确认,并将确认序号设置为收到序号加1,TIME-WAIT状态。

为什么四次:
因为需要确保客户端与服务端的数据能够完成传输。

**CLOSE-WAIT:**这种状态的含义其实是表示在等待关闭。

**TIME-WAIT:**为了解决网络的丢包和网络不稳定所带来的其他问题,确保连接方能在时间范围内,关闭自己的连接。

常见网络服务分层

  • 应用层:HTTP、SMTP、DNS、FTP
  • 传输层:TCP、UDP
  • 网络层:ICMP、IP、路由器、防火墙
  • 数据链路层:网卡、网桥、交换机
  • 物理层:中继器、集线器

TCP与UDP区别及场景

类型特点性能应用场景首部字节
TCP面向连接、可靠、字节流传输效率慢、所需资源多文件、邮件传输20-60
UDP无连接、不可靠、数据报文段传输效率快、所需资源少语音、视频、直播8个字节

基于UDP的协议:RIP、DNS、SNMP
基于TCP的协议:HTTP、FTP、SMTP

HTTP与HTTPS之间的区别

HTTPHTTPS
默认端口80443
传输方式明文传输、数据未加密、安全性差传输过程ssl加密、安全性较好
性能响应速度快、消耗资源少响应速度较慢、消耗资源多、需要用到CA证书

HTTPS链接建立的过程:

  1. 首先客户端先给服务器发送一个请求;
  2. 服务器发送一个SSL证书给客户端,内容包括:证书的发布机构、有效期、所有者、签名以及公钥;
  3. 客户端对发来的公钥进行真伪校验,校验为真则使用公钥对对称加密算法以及对称密钥进行加密;
  4. 服务器端使用私钥进行解密并使用对称密钥加密确认信息发送给客户端;
  5. 随后客户端和服务端就使用对称密钥进行信息传输;

**对称加密算法:**双方持有相同的密钥,且加密速度快,典型对称加密算法:DES、AES

**非对称加密算法:**密钥成对出现(私钥、公钥),私钥只有自己知道,不在网络中传输;而公钥可以公开。相比对称加密速度较慢,典型的非对称加密算法有:RSA、DSA

HTTP请求、Get和Post请求区别

HTTP请求

方法描述
GET向特定资源发送请求,查询数据,并返回实体
POST向指定资源提交数据进行处理请求,可能会导致新的资源建立、已有资源修改
PUT向服务器上传新的内容
HEAD类似GET请求,返回的响应中没有具体的内容,用于获取报头响应中没有具体的内容,用于获取报头
DELETE请求服务器删除指定标识的资源
OPTIONS可以用来向服务器发送请求来测试服务器的功能性
TRACE回显服务器收到的请求,用于测试或诊断
CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

get和Post区别:

特性GETPOST
可见性数据在URL中对所有人可见数据不会显示在URL中
安全性与POST相比,GET的安全性较差,因为所发送的数据是URL的一部分安全,因为参数不会被保存在浏览器历史或web服务器日志中
数据长度受限制,最长2kb无限制
编码类型application/x-www-form-urlencodedmultipart/form-data
缓存能被缓存不能被缓存

HTTP常见响应状态码

  • 100:Continue—继续。客户端应继续其请求。
  • 200:OK—请求成功。一般用于GET与POST请求。
  • 301:Moved Permanently—永久重定向。
  • 302:Found—暂时重定向。
  • 400:Bad Request—客户端请求的语法错误,服务器无法理解。
  • 403:Forbideen—服务器理解请求客户端的请求,但是拒绝执行此请求。
  • 404:Not Found—服务器无法根据客户端的请求找到资源(网页)。
  • 500:Internal Server Error—服务器内部错误,无法完成请求。
  • 502:Bad Gateway—作为网关或者代理服务器尝试执行请求时,从远程服务器接收到了无效的响应。

重定向和转发区别

重定向:redirect:
地址栏发生变化
重定向可以访问其他站点(服务器)的资源
重定向是两次请求。不能使用request对象来共享数据
转发:forward:
转发地址栏路径不变
转发只能访问当前服务器下的资源
转发是一次请求,可以使用request对象共享数据

Cookie和Session区别

Cookie和Session都是用来跟踪浏览器用户身份的会话方式,但两者有所区别:

  • Cookie数据保存在客户端(浏览器端),Session数据保存在服务器端。
  • cookie不是很安全,别人可以分析存放在本地的COOKIE并进行欺骗,考虑到安全应当使用session。
  • Cookie⼀般⽤来保存⽤户信息,Session的主要作⽤就是通过服务端记录⽤户的状态

相关文章:

  • Python pip 缓存清理:全面方法与操作指南
  • 【算法通关村 Day9】二分查找与二叉树的中序遍历
  • 人工智能_大模型092_超简单_win10中安装deepseek_效果非常好_亲测_带RGA功能_桌面版---人工智能工作笔记0237
  • 【2025全网首发B站教程】YOLOv12训练数据集构建:标签格式转换-划分-YAML 配置 避坑指南 | 小白也能轻松玩转目标检测!
  • [oAuth2授权]Web前端+NodeCoze API Web后端程序+Coze授权服务器工作流程架构流程图详解
  • 在Ubuntu下通过Docker部署Nginx服务器
  • 6. Go接口
  • C++双指针:算法优化的“左右互搏术”与高效问题破解全指南
  • 蓝桥杯备赛-基础训练(三)哈希表 day16
  • 力扣-回溯-332 重新安排行程
  • 基于Flask的短视频流量数据可视化系统的设计与实现
  • 高速PCB电源层
  • Linux 使用nload 监控网络流量
  • Git入门:数据模型 to 底层原理
  • MQTT实现智能家居------2、写MQTT程序的思路
  • 电子技能大赛选题
  • 腿足机器人之十二-manipulation
  • 超过7万个AOI(地理围栏),北京市2025年2月15日更新的全类别AOI,本地矢量数据(全国22个超大特大城市AOI更新系列)
  • 【免费】1991-2017年地级以上城市气候数据
  • go-zero学习笔记(五)
  • 空调+零食助顶级赛马备战,上海环球马术冠军赛将焕新登场
  • 航海王亚洲巡展、工厂店直销……上海多区推出“五五购物节”活动
  • 比黄油年糕热量还高,这个火爆全网的甜品劝你慎吃
  • 中央宣传部、全国总工会联合发布2025年“最美职工”先进事迹
  • “五一”假期预计全社会跨区域人员流动量超14亿人次
  • 国台办:相关优化离境退税政策适用于来大陆的台湾同胞