[Linux复习]:网络

网络

网络基础1


网络套接字

本质可以看成是进程间通信

网络基础2

应用层

HTTP协议

概念

超文本传输协议

就是超过了普通的文本,也可以传输图片文字音频视频...这些都叫做超文本
常见状态码

1xx

表示中间状态

2xx

成功

3xx

资源重定向

4xx

客户端错误

5xx

服务端错误
常见字段

HOST

服务器域名

Content-Length

数据长度

Connection

决定长短链接:keep-alive(长连接) / close(短连接)

Content-Type

数据格式(如 text/html、application/json、image/jpeg)

Content-Encoding

数据压缩方法(如 gzip、deflate)
GET/POST

区别

GET从服务器获取资源(查)

POST向服务器提交数据(改 / 增)

安全

GET低(参数暴露在地址栏)POST相对高(参数不直接暴露)

幂等

GET是(多次请求结果一致),POST不是(多次请求可能产生不同结果)
特性
HTTP/1.0

短连接,性能不好,一般不考虑
HTTP/1.1
核心改进:长连接(Keep-Alive)。

一次 TCP 连接可以处理多次 HTTP 请求和响应。
性能优化:管道(Pipelining) ,客户端可以一次性发多个请求,不用等上一个返回。

优点:简单、灵活、跨平台、应用最广。

缺点:

  1. 明文传输,不安全。
  2. 无状态(需要 Cookie/Session 维持状态)。
  3. 队头阻塞:响应必须按顺序返回,前面一个响应卡住,后面所有都得等。
  4. 头部冗余:每次请求都带重复的 Header。
    HTTP/2.0
    优点
    1. 头部压缩
    2. 并发传输
      注意一下并发传输,说的是在一条TCP连接中可以有多个Stream(流),
      每一个流里面有Message(消息),
      Message里面放的Frame(帧),
      真正实现了并发,不同流的数据可以乱序发送,解决队头阻塞
    3. 服务器推送(Server Push):
      客户端请求 index.html,服务端可以主动把 CSS、JS 推送给客户端 ,不用客户端再请求。
      缺点
      TCP层的队头阻塞问题没有解决
      HTTP/3.0
      直接把底层协议换成UDP,但是普及很慢
缓存

减少请求,提升性能,避免重复从服务器拿数据。
实现方式

把请求和响应的数据缓存在本地,如果请求的方式是一样的,那么直接从本地拿响应的数据
强制缓存

原理:服务端返回响应时,带上一个过期时间(如 Cache-Control: max-age=300)。

流程:

客户端请求 → 检查本地缓存是否过期。

没过期 → 直接用本地缓存,不发请求。

过期了 → 发请求去服务器。
协商缓存

原理:缓存过期了,客户端发请求问服务器:"资源变了吗?"

流程:

客户端带缓存标识(If-Modified-Since / If-None-Match)请求服务器。

服务器对比:

没变 → 返回 304,客户端用本地缓存。

变了 → 返回 200 和新资源。
对比:强制缓存不用发请求

HTTPS协议

解决问题

窃听,篡改,冒充
途径

信息加密,校验机制,身份证书

传输层

UDP

特性

  1. 无连接
    只要知道对端地址就可以发数据
    2. 不可靠
    不关心是否安全送达
  2. 面向数据包
    只能整个整个发,但是不会粘包问题
    协议字段
    源端口、目的端口、数据报长度、校验和
    如果校验和出错就会丢弃
    数据包长度的特性
    数据类型:uint16_t
    数据报长度:≤64k
    面向数据报
TCP
字段
  1. 源端口/目的端口
    2. 序号/确认序号
  2. 首部长度
    4. 标志位
    URG 紧急指针是否有效
    ACK 确认号是否有效
    PSH 让接收端赶快读取数据
    RST 重新建立连接 复位报文段
    SYN 请求建立连接 同步报文段
    FIN 提示本端要关闭了 结束报文段
    5. 窗口大小
    6. 校验和
    7. 紧急指针
    特性
    1. 面向连接
      三次握手和四次挥手
      第三次握手是可以携带数据的
    2. 可靠传输
      确认应答、超时重传、序号排序、丢包重传
    3. 面向字节流
      会产生粘包问题
相关推荐
GeW43 分钟前
新质生产力路线图Linux、数据库、国产化替代一次讲透
linux
aningx3 小时前
cachyos 从 GRUB 切换到 rEFInd
linux
第404号工位4 小时前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
骑着蜗牛撵大象3276 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
众壹新能源科技6 小时前
逆变器自带无功不够用,加装5MVar SVG后功率因数从0.85回到0.99
运维·人工智能·自动化
..Dauntless..6 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
裕晟资质规划6 小时前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
QMCY_jason6 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特6 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
轻舟技术A6 小时前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络