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

简介: 自定义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进行规格选择与性能压测。
目录
相关文章
|
8月前
|
JSON Java 测试技术
【JMeter】(2)---HTTP压测
【JMeter】(2)---HTTP压测
102 0
|
4月前
|
测试技术
HTTP性能测试工具Siege 简介
HTTP性能测试工具Siege 简介
|
6月前
|
测试技术
【测试平台系列】第一章手撸压力机(三)自定义http请求
今天继续深入往下讲,上一篇咱们对http的客户端设置进行了结构化统一,现在咱们开始对http请求进行结构化统一,首先咱们梳理http请求包含的结构。
|
6月前
|
测试技术 Go
【测试平台系列】第一章手撸压力机(二)自定义http客户端配置
上一节简单实现了http发送get请求的客户端,但是在实际工作中,我们会对客户端有各种的设置,也会有各种的请求。
【测试平台系列】第一章手撸压力机(二)自定义http客户端配置
|
6月前
|
域名解析 存储 网络协议
七牛云创建存储空间并绑定自定义域名-https协议(申请ssl证书)
七牛云创建存储空间并绑定自定义域名-https协议(申请ssl证书)
222 0
|
7月前
|
缓存
SAP UI5 OData 请求的自定义 HTTP header 设置方法
SAP UI5 OData 请求的自定义 HTTP header 设置方法
39 0
|
7月前
Angular HTTP 请求自定义 timeout 值的一种实现思路
Angular HTTP 请求自定义 timeout 值的一种实现思路
30 1
|
8月前
|
存储 JSON BI
如何让 ABAP 服务器能够响应通过浏览器发起的自定义 HTTP 请求的试读版
如何让 ABAP 服务器能够响应通过浏览器发起的自定义 HTTP 请求的试读版
44 0
|
11月前
|
Serverless
在函数计算中实现定时触发自定义环境中的 HTTP 函数
在函数计算中实现定时触发自定义环境中的 HTTP 函数
66 0
|
2月前
|
前端开发
webpack如何设置devServer启动项目为https协议
webpack如何设置devServer启动项目为https协议
186 0