1、为什么会有COOKIE这种机制
首先一种场景, 在一个网站上面, 我发起一次请求,那服务器怎么知道我是谁?是谁发起的这次请求呢, HTTP协议是无状态的协议, 浏览器的每一次请求,服务器都当做一次新请求, 但是在实际应用中我们需要知道这个请求来自于谁,需要查找哪些信息返回给访问者,
这个时候就引入了COOKIE机制, COOKIE机制是什么呢? 其实就是服务器给客户端返回数据的时候,中间加了一个标识, 然后客户端再次请求数据的时候,数据中带上这个标识, 那么服务器接收到请求消息时就知道这个请求来自于谁了(相当于服务器接收到请求时,如果没有带识别码,生成一个识别码给客户端, 如果有识别码,就把这个识别码需要的对应内容返回给客户端)
COOKIE主要有哪些字段呢:
1、name COOKIE的名字
2、value COOKIE对应的值
3、domain 域名 就是说这个COOKIE对应哪一个域名有效
4、path 路径 , COOKIE对应的哪一个路径才会有效
5、expires/Max-Age 字段为此cookie超时时间。若设置其值为一个时间,那么当到达此时间后,此cookie失效。不设置的话默认值是Session,意思是cookie会和session一起失效。当浏览器关闭(不是浏览器标签页,而是整个浏览器) 后,此cookie失效。
举一个例子,看看我们的浏览器怎么样去决定要带哪些COOKIE值,假设浏览器有如下COOKIE值
Set-Cookie: id=123456789; expires=Wed, 25-Apr-2018 06:04:48 GMT; domain = 119.29.100.135 path=/pro/
如下四个请求:
1、http://119.29.100.138:/pro/
2、http://119.29.100.135:/pro/
3、http://119.29.100.135:/pro/test/
4、http://119.29.100.135:/pro11/
结果:
2、3访问的时候会带上对应的COOKIE id =123456789
1、不会带上因为域名不对
4、不会带上因为路径不对