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

HTTP报文格式

HTTP报文格式

  • HTTP报文格式
    • 一、HTTP 请求(客户端发给服务器)
    • 二、HTTP 响应(服务器发给客户端)
  • 思考
    • 1、发送大HTTP报文,如何确认对端缓存区的大小?

HTTP报文格式

一、HTTP 请求(客户端发给服务器)

请求由三部分构成:请求行 + 请求头 + 请求体(可选)。

  • 请求行:核心信息,格式为 请求方法 URL 协议版本
    例:GET /index.html HTTP/1.1(表示用 GET 方法获取/index.html资源,协议版本 1.1);
  • 请求头:键值对格式,传递额外信息(如客户端类型、支持的数据格式)
    例:User-Agent: Mozilla/5.0(告诉服务器 “我是浏览器”)、Cookie: sessionid=xxx(传递登录状态);
  • 请求体:仅 POST、PUT 等方法使用,存放提交的数据(如表单信息、JSON 参数)
    例:username=test&password=123(表单提交)、{“name”:“test”,“age”:20}(JSON 数据)。

常见 HTTP 请求方法:

  • GET:获取资源(如浏览网页、查询数据),请求体为空,参数拼在 URL 后;
  • POST:提交资源(如登录、上传文件),参数存放在请求体,更安全;
  • PUT:更新资源(全量更新);
  • DELETE:删除资源;
  • HEAD:仅获取响应头(不返回响应体,用于检查资源是否存在)。

二、HTTP 响应(服务器发给客户端)

响应由三部分构成:状态行 + 响应头 + 响应体。

  • 状态行:格式为 协议版本 状态码 状态描述
    例:HTTP/1.1 200 OK(协议 1.1,状态码 200 表示请求成功);
  • 响应头:键值对格式,传递服务器信息、数据格式等
    例:Content-Type: text/html; charset=utf-8(告诉客户端 “响应体是 UTF-8 编码的 HTML”)、Set-Cookie: sessionid=xxx(服务器给客户端设置 Cookie);
  • 响应体:服务器返回的核心数据(如 HTML 网页、JSON 结果、图片二进制数据)
    例:首页内容(HTML 网页)、{“code”:200,“data”:“success”}(JSON 接口响应)。

常见 HTTP 状态码(按大类划分):

  • 2xx(成功):
    • 200 OK(请求成功)、
    • 204 No Content(成功但无响应体);
  • 3xx(重定向):
    • 301 永久重定向、
    • 302 临时重定向、
    • 304 Not Modified(资源未修改,使用缓存);
  • 4xx(客户端错误):
    • 400 Bad Request(请求参数错误)、
    • 401 未授权(需登录)、
    • 403 禁止访问、
    • 404 Not Found(资源不存在);
  • 5xx(服务器错误):
    • 500 Internal Server Error(服务器内部错误)、
    • 503 Service Unavailable(服务器过载)。

思考

1、发送大HTTP报文,如何确认对端缓存区的大小?

  • 「小 HTTP 报文」:一个 TCP 段即可装下完整的 HTTP 报文(头部 + 载荷 = 完整 HTTP 数据);
  • 「大 HTTP 报文」(如上传大文件、返回大 HTML/JSON):TCP 会按「MSS(最大报文段长度)」拆分 HTTP 字节流,分成多个 TCP 段传输(MSS 是 TCP 协商的 “单个段的最大载荷长度”,默认约 1460 字节,避免超过 IP 层的 MTU 限制导致分片)

窗口大小(Window Size):告知对方 “我当前能接收的最大字节数”,用于流量控制(避免 HTTP 大报文撑爆接收方缓冲区)

http://www.dtcms.com/a/597013.html

相关文章:

  • 厦门网页建站申请费用怎么找出网站的备案号
  • maven专题
  • 渭南市住房和城乡建设局官方网站定制网站和模板网站及仿站的区别
  • Data Agent业务场景方案分析
  • AWS ALB 和目标组异常事件监控实战
  • python中模拟浏览器操作之playwright使用说明以及打包浏览器驱动问题
  • pnpm环境下防止误使用npm的方法
  • 服务器证书与网站不符2020中国企业500强榜单
  • 医疗电子试验箱 生物电子实验箱 生物医学教学平台 嵌入式生物医学电子实验箱
  • 网易云音乐解析(无损音乐均可下载)
  • android StateFlow和sharedflow
  • 幽冥大陆(十八)手机摄像头注册到电脑源码——东方仙盟炼气期
  • 2025年渗透测试面试题总结-240(题目+回答)
  • 防滑齿构型与牙体组织损伤风险的相关性分析
  • C#7、如何处理异常
  • 网站建设培训公司番禺厂家关键词优化
  • Oracle19c单机部署(本地)
  • 【vscode】vscode上plantuml安装和使用
  • Prompt 提示词工程
  • html5做网站总结邢台 网站建设
  • 黑马JAVAWeb -Vue工程化 - Element Plus
  • [Android] AR绘画素描1.0版(AR Draw - Sketch Anime Cartoon 1.0)
  • 微信网站用什么语言开发金融软件网站建设公司
  • 一个静态网站怎么做南宁网站建设怎么样
  • CGAL(计算几何算法库)
  • 数据中台:打破企业数据孤岛,实现全域资产化的关键一步
  • 如何保持自己的技术前沿性?
  • 『 QT 』显示类控件 二
  • 【Rust】m2 mac 编译linux 、aarch、win 程序
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — Network Kit