计网复习Day01

HTTP 1.0 和 2.0 有什么区别?

HTTP 2.0 和 3.0 有什么区别?

常见的 HTTP 状态码有哪些?

HTTP 请求包含哪些内容,请求头和请求体有哪些类型?

请求和响应报文

  • 请求行 (Request Line): 包含请求方法 (GET、POST)、请求的资源路径(/test.html) 已经 HTTP 的版本 (HTTP/1.1)
  • 请求头 (Request Headers): 包含各种键值对,传递客户端环境、请求内容和认证信息
  • 空行 (Blank Line): 用于分隔请求头和请求体
  • 请求体 (Request Body): 仅在 POST 、PUT 等方法中存在,包含需要发送到服务器的数据
  • 状态行(Status Line): 包含 HTTP 的版本(如 HTTP/1.1)、状态码(如 200)和状态描述(如 OK)
  • 响应头(Response Headers): 包含服务器返回的各种键值对,用于描述响应的元信息。
  • 常见的响应头:
    • Date:服务器时间戳,指示响应生成的时间。
    • Server:服务器的应用程序信息(如 Apache/1.3.29)
    • Last-Modified:资源的最后修改时间。
    • ETag:资源的唯一标识,用于缓存验证。
    • Content-Type:响应内容的 MIME 类型(如 text/html)
    • Content-Length:响应内容的字节长度
    • Connection:指示连接是否保持打开(如 close 或 keep-alive)
    • Accept-Ranges:指示服务器支持的部分内容请求(如 bytes)
  • 空行 (Blank Line): 用于分隔请求头和请求体
  • 响应体 (Response Body): 包含服务器返回的实际内容(如 HTML 文档、图片、JSON 数据等)

HTTP 方法

方法 作用 效果
GET 获取资源
HEAD 获取报文首部 GET 方法一样,但是不返回报文实体主体部分。主要用于确认 URL 的有效性以及资源更新的日期时间等。
POST 传输实体主体 POST 主要用来传输数据,而 GET 主要用来获取资源
PUT 上传文件 由于自身不带验证机制,任何人都可以上传文件
PATCH 对资源进行部分修改 PUT 也可以用于修改资源,但是只能完全替代原始资源,PATCH 允许部分修改。
DELETE 删除文件 与 PUT 功能相反,并且同样不带验证机制。
OPTIONS 查询支持的方法 查询指定的 URL 能够支持的方法。 会返回 Allow: GET, POST, HEAD, OPTIONS
CONNECT 要求在于代理服务器通信时建立隧道 使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。 示例 CONNECT www.example.com:443 HTTP/1.1
TRACE 追踪路径 服务器会将通信路径返回给客户端。

HTTP 和 HTTPS 有什么区别?

HTTP 中 GET 和 POST 的区别是什么?

WebSocket 与 HTTP 有什么区别?

服务端是如何解析 HTTP 请求的数据?(考察 HTTP 请求格式的了解程度)

到底什么是 TCP 连接?

一台服务器,最多能建立多少 TCP 连接?

TCP 和 UDP 有什么区别?

TCP 的粘包和拆包能说说吗?

粘包与拆包是什么?

  • 正常情况下,接收端正常收到两个数据包,即没有发生拆包和粘包的现象。
  • TCP 接收数据时有滑动窗口控制接收数据大小,可理解为缓冲区大小,缓冲区满了就发送数据,数据包大小不固定。
  • 当一次请求发送的数据量小,没达到缓冲区大小,TCP 会合并多个请求发送,形成粘包问题。
  • 当一次请求发送的数据量大,超过缓冲区大小,TCP 会拆分数据为多次发送,即拆包,把一个大包拆成多个小包发送。

为什么会发生粘包与拆包

  • TCP 粘包与拆包

  • TCP 是面向连接的流式传输协议,数据以无明确起止边界的字节流形式传输,需手动划分边界。

  • 粘包情况:当发送方每次写入数据小于接收方套接字缓冲区大小时发生。

  • 要发送的数据小于TCP发送缓冲区的大小,TCP将多次写入缓冲区的数据一次发送出去,将会发生粘包。

  • 接收数据端的应用层没有及时读取接收缓冲区中的数据,将发生粘包。

  • 拆包情况:当发送方每次写入数据大于接收方套接字缓冲区大小时发生。

  • 要发送的数据大于TCP发送缓冲区剩余空间大小,将会发生拆包。

  • 待发送数据大于MSS(最大报文长度),TCP在传输前将进行拆包。

  • UDP 无粘包问题:UDP 有保护消息边界,每个 UDP 包带有消息头(含 UDP 长度、源端口、目的端口、校验和)。

  • 问题发生层面:粘包拆包问题在数据链路层、网络层、传输层都可能出现,但日常网络应用开发多在传输层,因 UDP 特性,该问题仅在 TCP 协议中发生。

说说 TCP 的三次握手?

TCP 初始序列号 ISN 怎么取值的?

TCP 三次握手时,发送 SYN 之后就宕机了会怎么样?

什么是 SYN Flood 攻击?

TCP 协议是如何保证可靠传输的?

说说 TCP 的四次挥手?

为什么 TCP 挥手需要有 TIME_WAIT 状态?

除了四次挥手,还有什么方法断开连接?

TCP 超时重传机制是为了解决什么问题?

TCP 中何时会出现 RST(reset)报文?

TCP 有超时重传为什么还需要快速重传机制?

TCP 的 SACK 的引入是为了解决什么问题?

TCP 滑动窗口的作用是什么?

说说 TCP 拥塞控制的步骤?

Cookie、Session、Token 之间有什么区别?

JWT Token 能说说吗?

相关推荐
VelinX2 小时前
【个人学习||spring boot】
spring boot·后端·学习
浅念-2 小时前
Linux 进程与操作系统
linux·运维·服务器·网络·数据结构·笔记·网络协议
Qinti_mm2 小时前
Linux NUMA自动优化机制全解析
linux·服务器·numa balancing
开开心心就好2 小时前
桌面图标乱了怎么办,一键恢复固定位置工具
运维·服务器·windows·pdf·excel·3dsmax·houdini
Lyyaoo.2 小时前
Spring Boot自动配置
java·spring boot·后端
呆毛cyan2 小时前
K8s与CICD 部署 - 3. Harbor
后端
呆毛cyan2 小时前
K8s与CICD 部署 - 3. Jenkins - 1.k8s安装jenkins
后端
大地的一角2 小时前
(计算机网络)传输层协议原理
网络协议·计算机网络·udp
zb200641202 小时前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
运维·服务器