在 HTTP 标头中表示 true 和 false 值的标准格式是什么?

Dan*_*son 12 http http-headers

我需要向 HTTP 请求添加自定义标头,其值的类型将为布尔值。但是,HTTP 标头值都是字符串。那么在这种情况下表示布尔值的常见做法是什么?0/ 1false/ trueFalse/ Trueoff/ on, ETC?

例如

My-Header: 1
Run Code Online (Sandbox Code Playgroud)

或者一般推荐什么,即最常用的约定?

stu*_*art 7

更新:使用此处暗示的header existsvsdoesn't exist约定可能是最有意义的

HTTP 标头操作 http header .EXISTS

如果指定标头类型的实例存在,则返回布尔值 TRUE。下面是一个例子:

http.req.header("CacheControl").exists


我认为答案是?0vs?1

HTTP 的结构化字段值 > 3.3.6。布尔值

布尔值可以在结构化字段中传递。

布尔值的 ABNF 为:

sf-布尔值=“?” 布尔值

布尔值=“0”/“1”

布尔值用前导“?”表示。字符后跟“1”表示真值,“0”表示假值。例如:

布尔值示例:?1

查看Sec-Fetch-User

句法

秒获取用户:?0

秒获取用户:?1

价值观

该值是布尔结构化标头。

?0 导航请求是由用户激活触发的。

?1 导航请求是由用户激活以外的其他原因触发的。

但fwiw,Save-Data似乎也是一个标准/官方“布尔”标头,它接受值"on""off"

保存数据

一个布尔值,指示用户代理对减少数据使用的偏好。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers

指示客户端是否想要选择减少数据使用模式的数值。on表示是,而off(默认)表示否。

同样令人困惑的是,ABNF 页面实际上说:

布尔值=(“真”/“1”)/

(“假”/“0”)