HTTP

HTTP 协议结构

报文:通信的基本单位,包含起始行、头部字段和报文主体。
实体:报文主体中的实际数据及其元数据。

请求报文 响应报文

实体首部核心字段

Content-Type:定义实体的媒体(MIME)类型,决定了浏览器和服务器如何解析和处理传输的数据。大白话就是定义传输数据的类型

  • 文本类数据
    • text/html:
    • text/plain:
    • application/javascript:
  • 结构化数据
    • applicationz/json:
    • application/xml:
  • 表单数据
    • application/x-www-form-urlencoded: 默认的表单提交类型,数据以 key = value 格式编码
    • multipart/form-data: 支持二进制数据(如文件上传)的分段传输格式
  • 高级用法
    • 自定义 MIME 类型:企业内部系统可使用私人命名空间,举例 Content-Type: application/vnd.company.invoice+json
      同时,Content-Type 还可以定义数据的编码格式,比如 Content-Type: text/html; charset=UTF-8

非标准化首部字段

  • X-Forwarded-For(XFF):格式为一个逗号分隔的 IP 地址列表,例如 X-Forwarded-For: client, proxy1, proxy2, ...
    • 列表中最左边的第一个 IP 就是客户端的原始 IP,后续的 IP 是请求经过的每一级代理服务器 (如Nginx、F5等) 的地址
    • Forwarded:官方标准,旨在代替 X-Forwarded-For,格式更丰富,但是不如 XFF 使用广泛;
    • 最后获取 IP 的手段:request.getRemoteAddr,获取到与服务器直接建立 TCP 连接的地址,如果请求经过了代理,这个地址将是最后一个代理服务器的IP,而不是客户端的真实IP。

参考文献

HTTP content-type
一文了解 HTTP Content-Type

posted @ 2025-08-22 10:10  千千菌  阅读(6)  评论(0)    收藏  举报