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

HTTP协议简易入门

请求格式、响应格式与通信全流程

HTTP协议规定了客户端与服务器通信的标准格式和流程,下面用最清晰的方式解析核心内容:


🔧 HTTP请求格式(客户端 → 服务器)
POST /api/login HTTP/1.1          → 请求行(方法+路径+协议版本)
Host: www.example.com              ↗
User-Agent: Mozilla/5.0            │
Content-Type: application/json     ├─ 请求头(键值对元数据)
Authorization: Bearer token123      │
Content-Length: 46                 ↘{"username":"john","password":"123"} → 请求体(传输数据)

结构解析:

  1. 请求行:包含请求方法(GET/POST/PUT/DELETE)、资源路径和HTTP版本
  2. 请求头:每行一个键值对,描述客户端信息/数据格式等(必含Host字段)
  3. 请求体:仅POST/PUT方法包含,格式由Content-Type指定(如JSON/表单数据)

📬 HTTP响应格式(服务器 → 客户端)
HTTP/1.1 200 OK                     → 状态行(协议版本+状态码+描述)
Server: nginx/1.18                  ↗
Content-Type: application/json       │
Set-Cookie: session=abc123;         ├─ 响应头(元数据控制指令)
Cache-Control: max-age=3600          │
Content-Length: 34                  ↘{"status":"success","user_id":1001}  → 响应体(实际数据)

结构解析:

  1. 状态行:包含状态码(如200成功/404未找到/500服务器错误)
  2. 响应头:控制缓存/数据类型/认证信息等(Content-Type必须声明数据类型)
  3. 响应体:HTML/JSON/文件二进制等实际传输内容

🚦 通信全流程(以浏览器访问网站为例)
  1. TCP连接建立:客户端与服务器通过三次握手建立TCP连接

    客户端 服务器 SYN SYN-ACK ACK 客户端 服务器
  2. HTTP请求发送:浏览器构建完整HTTP请求(自动添加必要请求头)

  3. 服务器处理:服务器解析请求→执行业务逻辑→生成响应

  4. HTTP响应返回:服务器返回状态码+响应头+响应体

  5. 资源加载:浏览器解析响应体:

    • 遇到<img>/<script>标签 → 发起新的HTTP请求获取资源
    • 接收到Set-Cookie → 后续请求自动携带Cookie
  6. 连接关闭:默认关闭连接(HTTP/1.1可复用连接)


🛡 关键协议特性
  1. 无状态性:每次请求独立(需用Cookie/Session/JWT维持状态)
  2. 明文传输:HTTPS通过SSL/TLS加密解决
  3. 版本演进
    • HTTP/1.1:持久连接(减少TCP握手)
    • HTTP/2:二进制分帧 + 多路复用(解决队头阻塞)
    • HTTP/3:基于QUIC协议(UDP实现更快连接)

深度探索推荐:C++学习一站式分享

http://www.lryc.cn/news/570832.html

相关文章:

  • Velocity提取模板变量
  • php小偷程序实例代码
  • JavaWeb(cekditorsmartupload)
  • Asp.Net的简介
  • 安 利的骗局与真相,关于美国安 利的真实情况
  • 电磁场与电磁波篇---介质媒质导体
  • java实现分页数据每页按比率展示不同类型的数据
  • [转]Visual Studio 各版本区别
  • JDK和JRE官方下载地址
  • 操作系统期末复习整理知识点+习题练习
  • PHP基础篇:empty() 和 isset() 的区别介绍
  • 使用STM32的FLASH保存数据
  • HashiCorp Vault核心应用场景深度解析,国产化替代有什么备选方案
  • JDK1.6官方下载 JDK6官方下载地址
  • C# 取消按钮焦点 (非自定义控件)
  • C# DataTable 自动新增列并赋值
  • 优秀国外博客推荐
  • 史上最全的CSS hack方式一览
  • 第三方登录微信登录流程
  • 各种游戏搬砖ip工具,刷数据IP工具介绍
  • 彻底解决快播不可点播方法
  • 借网上盛传2000w记录介绍多进程处理
  • 启动应用程序出现taskmgr.exe找不到问题解决
  • 使用Garageband给iPhone设置铃声
  • Intel, AMD及VIA CPU的微架构(36)
  • Linux入门(十五)jq 命令解析JSON的安装、使用
  • BeckHoff <---> sartorius天平 采用 EL6002 (RS232)串口通讯
  • 网络端口号大全(附服务说明)
  • 硅钢片知识点
  • G21 Sensation XL x315e 刷机过程备忘