[HTTP 学习笔记]Cookie

2017-06-21  本文已影响0人  这名字真不对

Cookie

作用

Cookie 是一段由服务器通过在请求或响应报文发送给客户端的特殊信息,客户端会记录该信息,当下次发送请求时会在请求头中附带该信息,由服务器进行识别。

Cookie 通常有以下几种作用:

会话状态管理(如用户登录状态、购物车)
个性化设置(如用户自定义设置)
浏览器行为跟踪(如跟踪分析用户行为)

创建Cookie

Set-Cookie: <cookie名称>=<cookie值>

栗子:

HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: sid=1342077140226724
GET / HTTP/1.1
Cookie: sid=1342077140226724

期限

Set-Cookie: uuid=123456; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
//

作用域

Cookie作用域指需要发送的URL集合,它由Domain和Path指令定义。
Domain表示Cookie所在的域。如果没有指定,默认为当前的文档地址上的主机名(但是不包含子域名)。如果指定了Domain,则一般包含子域名。

如果设置了Domain=test.com,则Cookie包含在子域名中(如user.test.com或login.test.com)。

Path指令表明需要发送Cookie的URL路径。字符%x2F (即"/")用做文件夹分隔符,子文件夹也会被匹配到。

如设置Path=/docs,则下面这些地址都将匹配到:

"/docs",
"/docs/Web/",
"/docs/Web/HTTP"

JavaScript访问Cookie

可以通过document.cookie创建新的Cookie,或者通过该属性访问未指定的HttpOnly标志的Cookie。

document.cookie = "yummy_cookie=choco"; 
document.cookie = "tasty_cookie=strawberry"; 
console.log(document.cookie); 
// logs "yummy_cookie=choco; tasty_cookie=strawberry"

Session

对于Cookie来说,通过HTTP协议传输的信息均是明文传输,任何人都可以截获、篡改HTTP请求。因此客户端传来的信息是不可靠的,那么有什么办法来解决这个问题呢?

数据传输时,服务器与客户端之间不使用明文传输,而是传输加密后的密文,当服务器接收到密文后将密文解析,如果信息正确再通过解析后的密文找到对应数据返回给客户端。

这个过程我们成为会话(session),即客户端与服务器之间一对一的交互。

参考:
HTTP cookies

上一篇下一篇

猜你喜欢

热点阅读