RFC 7230 (HTTP / 1.1消息语法和路由)指定应按照RFC 2119中的描述解释“必须”,“必须”,“应该”和“可以”。除了那些需求说明符之外,RFC 7230似乎还在文档的23个不同位置中使用“应该”作为需求说明符。
我最初假设“应该”等同于“应该”,但是在某些情况下,将其解释为“应该”可能更有意义。我发现的单词定义支持这两种用法。
所以我的问题如下:在rfc7230(及其兄弟姐妹)中遇到“应该”应该怎么解释?
答案 0 :(得分:1)
根据RFC 7230,第6.4节,“客户端应限制其维护到给定服务器的同时打开的连接数”。 HTTP / 1.1规范的先前版本规定了特定的最大值,但是用RFC 7230的话来说:“发现对于许多应用程序来说这是不切实际的……相反,在打开多个连接时要保守一些。”
这里的“应该”有两个含义:以前是“应该”,放松到了“应该”。但肯定与有区别。
在this answer中,有人也强烈认为“应该”不是“应该”,
请注意,这里的弱“应该”远非必须。但是至少net / http是完全正确的,因为这种响应是错误的,可以当作错误来处理。但这不是必须视为错误。
但是,当然可能只是在特定情况下,它不是“应该”。
在What's difference between HTTP 301 and 308 status codes?中的所有示例中,我还感到“应该”的意思是“应该”。
最后,从纯粹的语言学角度来看,我认为“应该”并不是完全普通或自然的选择-没有人会随意使用该词-之所以选择该词是有原因的,而该原因始终是因为作者不能承诺“应该”或“必须”。
因此,在这一点上,我想说的是,如果您确定“应该”应该是“应该”,那么很可能是文档中的错误,或者更接近于我的第一个示例历史上是“应该”。
无论如何,最好是向专家特别询问您关心的条款。