HTTP协议 Cookie

Cookie的主要用途是用户识别及状态管理。

实现原理:方便管理用户状态,通过web浏览器将一些数据临时写入用户的计算机内,当用户访问时可通过通信方式取回之前发送的Cookie。

调用Cookie的时候,由于可以调用Cookie的有效期,以及发送方的域、路径、协议等信息,所以正规发布的Cookie不是因为来自其他web站点和攻击者的攻击而泄漏。

为Cookle服务的首部字段:

 

1、Set-Cookie字段的属性

1)expires

指定浏览器可发送Cookie的有效期。

若不指定则默认为会话时间段内。

一旦Cookie从服务端发送到客户端,服务器就不存在可显式删除Cookie的方法,但可通过覆盖已过期的Cookie,实现对客户端的实质性删除。

 

2)path

用于限制指定Cookie发送范围的文件目录。

 

3)domain

通过该属性指定的域名可做到与结尾匹配一致。

除了针对具体指定的多个域名发送的Cookie外,不指定domain属性显得更安全。

 

4)secure

限制web界面仅在HTTPS安全连接时,才可以发送Cookie。

发送Cookie时,指定属性的方法如下:

Set-Cookie:>

 

5)HttpCookie

Cookie的扩展功能,使JavaScript脚本无法获得Cookie。主要目的是为了防止跨站脚本攻击对Cookie的信息窃取。

发送指定HttpOnly属性的方法如下:

Set-Cookie:>

 

2、Cookie

告知服务器,客户端想获得http状态管理支持时,就会在请求中包含从服务器接收到的Cookie。接收多个时,同样可以以多个发送。