图解HTTP(四)
响应首部字段
Accept-Ranges
用来告知客户端服务器是否能处理范围请求,以指定获取服务器端某个部分的资源。
Age
ETag
Location
实体首部字段
Allow
用于通知客户端能够支持Request-URI指定资源的所有HTTP方法。
Content-Encoding
Content-Language
Content-Length
Content-Location
Content-MD5
Content-Type
Expires
Last-Modified
为Cookie服务的首部字段
Cookie的工作机制是用户识别及状态管理。Web网站为了管理用户的状态会通过Web浏览器,把一些数据临时写入用户的计算机内。接着当用户访问该Web网站时,可通过通信方式取回之前发放的Cookie。
Set-Cookie
用于通知客户端能够支持Request-URI指定资源的所有HTTP方法。
Cookie
首部字段Cookie会告知服务器,当客户端想获得HTTP状态管理支持时,就会在请求中包含从服务器接收到的Cookie。
确保Web安全的HTTPS
HTTP的缺点
通信使用明文可能会被窃听
按TCP/IP协议族的工作机制,通信内容在所有的通信线路上都有可能遭到窥视。即使已经过加密处理的通信,也会被窥视到通信内容。
目前防止窃听的几种对策中,最普及的是加密技术。
一种是将通信加密。HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transporter Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容。与SSL组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)。
另一种是将参与通信的内容本身加密,即把HTTP报文里所含的内容进行加密处理。
不验证通信方的身份就可能遭遇伪装
在HTTP协议通信时,由于不存在确认通信方的处理步骤,任何人都可以发起请求。会存在以下隐患
- 无法确定请求发送至目标的Web服务器是否是按真实意图返回响应的那台服务器。有可能是已伪装的Web服务器。
- 无法确定响应返回到的客户端是否是按真实意图响应接收的那个客户端。有可能是已伪装的客户端。
- 无法确定正在通信的对方是否具备访问权限。因为某些Web服务器上保存着重要的信息,执行发给特定用户通信的权限。
- 无法判断请求时来自何方、出自谁手。
- 即使是无意义的请求也会照单全收。无法阻止海量请求下的DoS攻击(Denial of Service,拒绝服务攻击)。
虽然使用HTTP协议无法确定通信方,但如果使用SSL则可以。SSL不仅提供加密处理,而且还使用了一种被称为证书的手段,可用于确定方。
无法证明报文完整性,可能已遭篡改
没有任何办法确认,发出的请求/响应和接收到的请求/响应是前后相同的。
HTTP+加密+认证+完整性保护=HTTPS
HTTP加上加密处理和认证以及完整性保护后即是HTTPS
HTTPS是身披SSL外壳的HTTP
相互交互密钥的公开密钥加密技术
SSL采用公开密钥加密的加密处理方式。
近代的加密算法中加密算法公开,密钥保密。
公开密钥加密解决了共享密钥加密的困难。公开密钥加密使用一对非对称的密钥。一把叫做私有密钥,另一把叫做公开密钥
HTTPS采用共享密钥加密和公开密钥加密两者并用的混合加密机制。
HTTPS的安全通信机制
原文:大专栏 图解HTTP学习笔记(四)