📅  最后修改于: 2023-12-03 14:42:00.291000             🧑  作者: Mango
HTTP 标头(HTTP headers)是在 HTTP 请求和响应消息中传递附加信息的一种方法。 它们传递的信息可以用于调整服务器和客户端的行为,以达到最佳的服务质量和性能。公钥引脚(Public Key Pinning)是一种安全机制,在 HTTPS连接中,强制客户端验证服务器公钥的有效性,以防止中间人攻击和 SSL欺骗。
HTTP 请求和响应消息中的标头是以 键-值对 形式呈现的。请求标头传递了客户端的信息和所需的资源,而响应标头则传递了服务器的信息和返回的资源。
以下是一些常见的 HTTP 请求标头:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299
Accept-Language: en-US,en;q=0.8
Referer: https://www.google.com/
这些标头传递了以下信息:
以下是一些常见的 HTTP 响应标头:
Content-Type: text/html; charset=UTF-8
Content-Length: 287
Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
这些标头传递了以下信息:
HTTP 标头非常灵活,可以根据需要添加或修改标头。但是,必须谨慎,不应添加不必要的标头,因为它们会增加响应的大小,从而导致更慢的加载时间。
公钥引脚是一种安全机制,可以强制客户端验证服务器公钥的有效性。 公钥引脚可以帮助防止中间人攻击和 SSL欺骗。
公钥引脚是通过将公钥指纹添加到响应标头中来实现的。 一旦客户端接收到公钥引脚,它将只接受来自指定站点的公钥。 这可确保客户端连接到您的服务器,而不是连接到中间人或攻击者。
以下是示例公钥引脚响应标头:
Public-Key-Pins: max-age=2592000; pin-sha256="base64=="; pin-sha256="base64=="
这些标头使客户端只接受 pin-sha256 值与指定公钥 SHA256 摘要相匹配的证书。 max-age参数指定引脚的有效期,以秒为单位。
公钥引脚是一个强大的安全机制,但它需要被谨慎使用。 只有在您确实需要客户端始终连接到您的服务器时,才应使用公钥引脚。