10 Cookie介绍
10.1Cookie简介
HTTP是一种无状态性的协议。这是因为此种协议不要求浏览器在每次请求中标明它自己的身份,并且浏览器以及服务器之间并没有保持一个持久性的连接用于多个页面之间的访问。
当用户访问http://example.com这个域名的时候,浏览器就会自动和服务器建立TCP/IP连接,然后发送HTTP请求到example.com的服务器的80端口。该个请求的语法如下所示:
GET/ HTTP/1.1
Host:example.org
在这个请求例子中,没有任何信息可以唯一标识当前这个发出请求的客户端。保持应用程序状态的第一步就是要知道如何来唯一地标识每个客户端。因为只有在HTTP中请求中携带的信息才能用来标识客户端,所以在请求中必须包含某种可以用来标识客户端唯一身份的信息。
Cookie是作为HTTP一个扩展诞生的,其主要用途是弥补HTTP的无状态特性,提供了一种保持客户端与服务器端之间状态的途径,Cookie机制采用的是在客户端保持状态的方案。
有两个HTTP头部是专门负责设置以及发送Cookie的,它们分别是Set-Cookie以及Cookie。当服务器返回给客户端一个http响应信息时,其中如果包含Set-Cookie这个头部时,意思就是指示客户端建立一个cookie,并且在后续的HTTP请求中自动发送这个Cookie到服务器端,直到这个cookie过期。如果Cookie的生存时间是整个会话期间的话,那么客户端会将cookie保存在内存中,客户端关闭时就会自动清除这个Cookie。另外一种情况就是保存在客户端的硬盘中,客户端关闭的话,该Cookie也不会被清除,下次打开客户端访问对应网站时,这个Cookie就会自动再次发送到服务器端。
Cookie有一个Expires(