自定专用消息头可通过X-前缀来添加;

但是这种用法被IETF在2012年6月发布的 RFC5548 中明确弃用,原因是其会在非标准字段成为标准时造成不便;其他的消息头在 IANA 注册表中列出, 其原始内容在 RFC 4229 中定义。 此外,IANA 还维护着被提议的新HTTP 消息头注册表.

虽然已经被明确弃用,但是在平时还是能够看到大量的页面依旧在 Response Header 中会 附带 以 x- 开头的内容。

所以了解一些自定义报文头的东西还是很有必要的,下面是来自 keycdn 上的一篇文章,原文传送门


自定义HTTP headers 通常意味着提供一些对 web 开发者有用的附加信息,或者是方便故障排除(troubleshooting)。这些 headers 通常以 X- 开头,我们会在之后进一步讨论其命名规范。这篇文章可以帮助你更好的理解 自定义 HTTP header 的实质,以及为什么他们能够发挥作用和怎样去创建他们。

为什么要使用 自定义 HTTP Headers?

如上所述,自定义报文头对故障排除和传递附加信息特别有用,甚至能在服务端实现特定的逻辑。例如, KeyCDN 使用 X-Cache 来告诉用户请求的某个资源是来自 edge server(代理服务器?)还是来自源服务器。

如果资源是来自缓存自定义报文头会返回一个 HIT ,如果来自源服务器则会返回MISS。另外一个使用自定义 HTTP header 的例子是 X-Pull 。你可以使用这个自定义头做很多事,比如,限制源服务器上的带宽、限制 CDN 流量、在源服务器上创建自定义逻辑,等等。
自定义 headers有很多能够经常被用到的作用。即使你没有使用 CDN 亦或者没有在你的源服务器人为指定任何自定义 HTTP headers ,你可能仍然会发送带有自定义header 的响应。比如说,WorldPress 会发送以下 headers(虽然你可以手动禁止)。

X-Powered-By: PHP/5.2.17
X-Pingback: https://example.com/xmlrpc.php

命名规范

提到 HTTP 的自定义headers,这里面有一些来来往往的故事。最初,推荐自定义headers 以 X- 开头,这样用户就可以知道某个 header 是自定义的而不是标准的。然而,根据 RFC 5548 ,这种做法被弃用了。
虽然被弃用了,但是并不意味着不再支持。实际上,仍然还有很多场景用到 X- 。弃用的原因是以后某个特定的自定义 HTTP header 成为标准之后,浏览器需要支持两种命名,要不然开发者就需要更新之前命名的所有自定义header。现在推荐使用不含 X- 标记的名字来命名自定义 headers 。

设置自定义 HTTP Headers

如果你想在你的服务器 HTTP response 报文头中包含自定义的 HTTP header,流程将会很简单。我们将在接下来告诉你在 ApacheNginx 上配置自定义header所需要配置。

Apache

对于 Apache 用户来说,把下面的片段添加进 .htaccess 文件。将 Custom-Header-NameCustom Header Value 替换为想要的自定义header 名字和值就可以了。

Header set Custom-Header-Name "Custom Header Value"

Nginx

对于 Nginx 用户来说,将下面这个片段添加进 configuration 文件。

add_header Custom-Header-Name "Custom Header Value"

总结

自定义 HTTP headers 在某些场景下非常有用。虽然他设计的主要目的是为了提供附加信息,但是你可以使用它做更多的事。有一点值得注意的是避免将它用在改变 HTTP 原生方法的场景中。除此之外,可以尽情尝试不同的用法。

HTTP 自定义报文头相关推荐

  1. Jaxb对xml报文头的小修小改

    前言: 也是在实际工作中, 借助jaxb来实现xml到java对象的映射转换. 在实际应用中, 也遇到了一些有趣好玩的东西, 权当记录下来. 本文主要讲解jaxb如何生成约定的xml报文头的实现思路, ...

  2. ajax中设置请求头和自定义请求头

    回到文章总目录 1.创建在testfour文件夹并在这个文件夹里面 2.创建post.html文件 3.创建server.js文件 本篇文章使用了鼠标移动至方框则自动发送请求至服务端 通常设置请求头 ...

  3. 拦截器获取请求参数post_「SpringBoot WEB 系列」RestTemplate 之自定义请求头

    [WEB 系列]RestTemplate 之自定义请求头 上一篇介绍了 RestTemplate 的基本使用姿势,在文末提出了一些扩展的高级使用姿势,本篇将主要集中在如何携带自定义的请求头,如设置 U ...

  4. IP、TCP、UDP报文头说明

    IP报文头(大端字节序) 版本: 通常值为4(IPv4) 首部长度: IP头长度 表明包含多少个32Bit 包括可选头(如果有) 值为IP头大小除以4 如:没有可选头IP头为20字节 则该值为5 服务 ...

  5. 前端cookie 放到请求头_ajax请求携带cookie和自定义请求头header(跨域和同域)

    错误: 1.ajax请求时是不会自动带上cookie的,要是想让他带上的话,必须设置withCredential为true. 正确: 1.ajax同域请求下,ajax会自动带上同源的cookie: 2 ...

  6. 使用wireshark分析tcp/ip报文之报文头

    以太网报文的结构如下: 其中,以太网的帧头: 14 Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B. IP头部: TCP头部: http:// ...

  7. java 自定义http头_HttpClient自定义HTTP头

    HTTP消息可以包含许多描述消息属性的标头,例如内容长度,内容类型,授权等. HttpClient提供了检索,添加,删除和枚举标头的方法. 在下面的教程中,我们将演示如何将自定义HTTP头添加到Htt ...

  8. Ajax设置自定义请求头的两种方法

    用自定义请求头token为例 方法一 $.ajax({type: "post",url:"http://127.0.0.1:4564/bsky-app/template/ ...

  9. php设置请求头部,php curl如何设置自定义请求头

    php curl设置头的方法:首先设置自定义请求头:然后设置"curl_setopt($ch, CURLINFO_HEADER_OUT, );":最后执行"curl_ge ...

最新文章

  1. 将动画装入MicroPython I2C OLED
  2. bootsrap的font awesome的各种图标,包括动画图标
  3. HarmonyOS之AI能力·文字图像超分
  4. java手机号判断运营商_用Java对手机号所属运营商进行判断
  5. 用户登陆_华为路由器AAA用户密码登陆你了解吗?
  6. 亚太地区数学建模优秀论文_数学建模美赛强势来袭!
  7. 不借助任何变量进行变量交换
  8. Java执行外部命令,并把结果回显到控制台
  9. ufs2.0测试软件,UFS 2.1和UFS 2.0差距到底多大?跑分还有很多学问
  10. mysql 开源订阅模式_Canal(增量数据订阅与消费 )快速配置
  11. linux 内核 内存管理 bootmem alloctor 的初始化
  12. 万能表单资料管理系统
  13. android系统修改字体,安卓手机修改系统字体教程
  14. ios开发之使用bundle来管理资源文件
  15. 8.以微型计算机为中心,全国网络教育统一考试《计算机应用基础》复习要点
  16. matlab定义sliced类型,Sliced Variables
  17. c语言.jpg图片转成数组_Heic图片格式转换器
  18. 淘宝直通车定向推广怎么开技巧 直通车定向推广实操深度解析
  19. uni-app动态设置原生标题左侧按钮
  20. 斑斑驳驳。伤情时节,镌为别离的箫瑟

热门文章

  1. 析砂性土层php泥浆护壁,浅析泥浆护壁灌注桩化学泥浆
  2. STM32相关知识——u8是什么意思?
  3. html基础入门(一)
  4. DB2 开启归档模式
  5. 解决:显存充足 但却出现Internal: out of memory
  6. 会议论文投稿小trick
  7. 【小程序】728- 小程序如何生成海报分享朋友圈
  8. PPT的设计灵感从哪里来?
  9. 怎么使用小爱同学音响_小爱音箱mini怎么样如何使用 小爱音箱mini使用方法详细介绍...
  10. 工欲善其事,必先利其器(工具全集及其用途)