全链路压测的必经之路:自定义http头

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 自定义HTTP标头通常用于提供可能与Web开发人员相关的其他信息,或用于故障排除目的。这些标题通常首先开始X-,但是,我们将进一步讨论命名约定。这篇文章应该有助于您更好地全面了解自定义HTTP标头实际是什么,它们有用的原因以及如何定义它们。自定义标头非常适合故障排除,信息用途,甚至在服务器端实现特定逻辑。例如,我非常喜欢利用'msg'字段来配合400~599错误编号来提供额外的错误消息。如果资产是从缓存传递的,则自定义标头返回HIT,如果是从源服务器传送,则返回MISS。使用自定义HTTP标头的另一个例子是实现X-Pull标头。您可以将此自定义标头用于各种用途,包括限制源服务器上的带宽,限

自定义HTTP标头通常用于提供可能与Web开发人员相关的其他信息,或用于故障排除目的。这些标题通常首先开始X-,但是,我们将进一步讨论命名约定。这篇文章应该有助于您更好地全面了解自定义HTTP标头实际是什么,它们有用的原因以及如何定义它们。

自定义标头非常适合故障排除,信息用途,甚至在服务器端实现特定逻辑。例如,我非常喜欢利用'msg'字段来配合400~599错误编号来提供额外的错误消息。如果资产是从缓存传递的,则自定义标头返回HIT,如果是从源服务器传送,则返回MISS。使用自定义HTTP标头的另一个例子是实现X-Pull标头。您可以将此自定义标头用于各种用途,包括限制源服务器上的带宽,限制CDN流量,在源服务器上创建自定义逻辑等。自定义标头有很多用途,它们非常常用。即使您没有使用CDN或未在源服务器上专门定义任何自定义HTTP标头,您仍可能使用自定义标头发送响应。例如,WordPress发送以下标头(但是可以禁用它们)。


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

HTTP自定义头的命名约定

最初,建议开始命名自定义标头,X-以便用户知道这些标头是自定义的而不是标准化的。但是,根据RFC 6648,此建议已被弃用。在应用程序协议的上下文中使用的新参数的创建者不应该在其参数名称前加上“X-”或类似的结构。虽然不推荐使用建议X-,但这并不意味着它不再受支持。事实上,仍有许多场景X-继续使用。弃用建议的原因X-是,如果特定的自定义HTTP标头变得标准化,浏览器将需要支持这两个名称,或者开发人员需要更新其自定义标头名称的所有实例。相反,现在建议只使用没有X-前缀的相关内容来命名自定义标头。


设置自定义HTTP标头

对于Apache用户,可以将以下代码段添加到.htaccess文件中。只需将自定义标题名称和“自定义标题值”替换为HTTP标头的实际名称和值即可。

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

对于Nginx用户,可以将以下代码段添加到配置文件中。请务必修改名称和值以满足您的需要,并在保存更改后重新加载Nginx。

add_header Custom-Header-Name "Custom Header Value"

Node.JS非常讨厌Apache和Nginx容器的配置方式, 非要以一种不伦不类的语法写在配置文件当中, 很不灵活, 还是喜欢nodejs'无容器'的管理模式, 全部配置都写在代码中:

Response.set('Content-Disposition', 'attachment; filename="file.zip"');

使用自定义头部的时候, 命名是时候记得要绕开浏览器的标准key-name就好了, 具体的标准名可以参考MDN(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
16天前
如何自定义一个dataDispatcher,用于收束http和websoket
【10月更文挑战第17天】如何自定义一个dataDispatcher,用于收束http和websoket
11 1
如何自定义一个dataDispatcher,用于收束http和websoket
|
3天前
|
消息中间件 测试技术
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
轻量消息队列(原MNS)以其简单队列模型、轻量化协议及按量后付费模式,成为阿里云产品间消息传输首选。本文通过创建主题、订阅、配置告警集成等步骤,展示了该产品在实际应用中的部分功能,确保消息的可靠传输。
14 2
|
1月前
|
Docker 容器
docker nginx-proxy 添加自定义https网站
docker nginx-proxy 添加自定义https网站
34 4
|
3月前
|
运维 Serverless 调度
函数计算产品使用问题之怎么在HTTP触发的函数里添加或读取自定义头部
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
测试技术 Python
我们假设要测试一个名为`http://example.com`的网站,并对其进行简单的GET请求性能测试。
我们假设要测试一个名为`http://example.com`的网站,并对其进行简单的GET请求性能测试。
|
6月前
|
Web App开发 Java 测试技术
秒懂HTTPS接口(JMeter压测篇)
【5月更文挑战第11天】秒懂HTTPS接口(JMeter压测篇)
1769 2
秒懂HTTPS接口(JMeter压测篇)
|
4月前
|
JSON 应用服务中间件 开发工具
Ngnix的http块自定义服务日志,access.log和error.log,log_format指定日志输出格式设置
Ngnix的http块自定义服务日志,access.log和error.log,log_format指定日志输出格式设置
|
6月前
|
负载均衡 NoSQL 关系型数据库
性能基础之全链路压测知识整理
【2月更文挑战第16天】性能基础之全链路压测知识整理
302 11
|
6月前
|
存储 缓存 中间件
高可用之全链路压测
【2月更文挑战第30天】全链路压测是提升系统可用性的关键方法,它模拟真实流量和业务场景在生产环境中测试,确保性能、容量和稳定性。
|
6月前
|
测试技术
HTTP性能测试工具Siege 简介
HTTP性能测试工具Siege 简介
109 0