Skip to main content

7. Server Processing Model (服务器处理模型)

本节描述HSTS主机实现的处理模型. 该模型包含两个方面: 第一个是通过安全传输 (TLS [RFC5246] 或SSL [RFC6101]; 另请参见第14.1节 ("Underlying Secure Transport Considerations")) 接收的HTTP请求消息的处理规则, 第二个是通过非安全传输 (例如TCP) 接收的HTTP请求消息的处理规则.

7.1 HTTP-over-Secure-Transport Request Type (通过安全传输的HTTP请求类型)

在回复通过安全传输传达的HTTP请求时, HSTS主机应该 (SHOULD) 在其响应消息中包含必须 (MUST) 满足第6.1节 ("Strict-Transport-Security HTTP Response Header Field") 中指定的语法的STS头字段. 如果包含STS头字段, HSTS主机必须 (MUST) 仅包含一个这样的头字段.

在给定UA的上下文中, 将给定主机建立为已知HSTS主机可以 (MAY) 通过HTTP实现, 而HTTP又运行在安全传输上, 方法是通过正确地 (根据本规范) 向UA返回至少一个有效的STS头字段. 也可以 (MAY) 使用其他机制, 例如客户端预加载的已知HSTS主机列表; 例如, 参见第12节 ("User Agent Implementation Advice").

注意 (NOTE): 包含STS头字段被规定为"应该 (SHOULD)", 以适应各种服务器端和网络端缓存以及负载平衡配置, 在这些配置中, 可能很难代表给定HSTS主机统一发出STS头字段.

7.2 HTTP Request Type (HTTP请求类型)

如果HSTS主机通过非安全传输接收到HTTP请求消息, 它应该 (SHOULD) 发送包含指示永久重定向的状态码的HTTP响应消息, 例如状态码301 ([RFC2616] 第10.3.2节), 以及包含HTTP请求的原始有效请求URI (参见第9节 ("Constructing an Effective Request URI")) 的Location头字段值, 该URI已根据需要进行修改以具有"https"的URI方案, 或根据本地策略生成的具有"https"的URI方案的URI.

注意 (NOTE): 上述行为是"应该 (SHOULD)"而不是"必须 (MUST)", 原因如下:

  • 服务器端非安全到安全重定向的风险 [OWASP-TLSGuide].

  • 站点部署特性. 例如, 一个包含第三方组件的站点在通过非安全传输访问时执行服务器端非安全到安全重定向时可能无法正常工作, 但在统一通过安全传输访问时却能正常工作. 后者是在支持HSTS的UA已经 (通过任何方式, 例如, 先前的交互或UA配置) 将站点标注为已知HSTS主机的情况下的情况.

HSTS主机禁止 (MUST NOT) 在通过非安全传输传送的HTTP响应中包含STS头字段.