JavaWeb | 基础

本文更新于 2026-04-09

HTTP

HTTP 是互联网上应用最为广泛的一种网络协议。它定义了浏览器(客户端)与服务器之间交换数据的格式和规则

HTTP 的基本特性

  • 应用层协议:运行在 TCP/IP 协议栈之上(默认端口 80,HTTPS 为 443)。
  • 请求-响应模型:必须由客户端发起请求,服务器给出响应。
  • 无状态 (Stateless):协议本身不保留之前的事务记忆。
    • 对策:在开发中通过 Cookie/SessionJWT (Token) 来维持登录状态。
  • 灵活:允许传输任意类型的数据对象,通过 Content-Type 加以标记。

HTTP 请求报文结构

一个标准的 HTTP 请求由四部分组成:

  1. 请求行 (Request Line)Method + URL + Version (如 GET /index.html HTTP/1.1)

  2. 请求头 (Request Headers):键值对格式,描述客户端环境和偏好。

    • Host: 目标主机。
    • User-Agent: 浏览器标识。
    • Accept: 客户端可接受的内容类型。
  3. 空行:必须存在,用于分隔头部和正文。

  4. 请求体 (Request Body):仅 POST/PUT 等方法使用,存放要提交的数据(如 JSON)。


HTTP 响应报文与状态码

响应报文同样由 状态行响应头空行响应体 组成。

核心状态码分类:

  • 2xx (成功)200 OK (请求成功)。
  • 3xx (重定向)301 (永久重定向)、302 (临时重定向)。
  • 4xx (客户端错误)
    • 400 Bad Request: 请求语法错误。
    • 403 Forbidden: 服务器拒绝执行。
    • 404 Not Found: 资源不存在。
    • 405 Method Not Allowed: 方法不支持(如用 GET 访问 POST 接口)。
  • 5xx (服务器错误)
    • 500 Internal Server Error: 后端代码抛出未处理的异常。
    • 502 Bad Gateway: 网关从后端收到了非法响应(如 Nginx 找不到 Java 服务)。
    • 504 Gateway Timeout: 后端处理超时。

长链接与短链接

HTTP应用层协议
TCP传输层协议
ip网络层协议
特性短连接 (Short Connection)长连接 (Keep-Alive)
底层表现一次请求/响应消耗一个 TCP 连接多次请求/响应复用一个 TCP 连接
HTTP 版本HTTP/1.0 默认HTTP/1.1 默认
HTTP HeaderConnection: closeConnection: keep-alive
握手开销高(每次请求都要三次握手)低(仅首次建立需要)
服务器压力CPU 压力较大(频繁建立/销毁连接)内存压力较大(需维持空闲连接的 socket)
适用场景偶尔交互的单次请求、请求频率极低的服务Web 页面浏览、前后端高频 API 交互、图片服务器

今日访问 ... 次 | 今日访客 ... 人 | 本页阅读 ...
小站已萌萌哒运行了 0 0 0
已累计耕耘 33 篇博文 · 共 115.17k 个字
总访问量 ...
备案图标 豫公网安备41019702004633号