Http协议是无状态的,即服务端仅仅能通过你本次提交的http请求来给出响应。
cookie可用于服务端标记client。如登陆过后免输password,购物车实现等。
1.cookie
Cookie能够通过js代码生成,也能够通过HttpResponse头部中的Set-Cookie属性向浏览器说明。
注意格式为
Set-Cookie: <name>=<value>[; <name>=<value>]...
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; httponly]
一个样例。chrome中的截图见下。
图1 响应报文头中的设置cookie字段
一个cookie由name、value、domain等属性组成,能够看下图的列。
得到了cookie,下次訪问的时候就会在Http请求里包括cookie,能够有非常多个cookie。
SessinID
本质仍是cookie。
sessionID在服务端相应一个对象。能够存出各种信息,一般放在内存中。
当client第一次请求session对象时候。server会为client创建一个session。并将通过特殊算法算出一个session的ID,用来标识该session对象,当浏览器下次(session继续有效时)请求别的资源的时候,浏览器会自己主动将sessionID放置到请求头中,server接收到请求后就得到该请求的sessionID,server找到该id的session返还给请求者(Servlet)使用。
微软的SessionID
jsp的sessionID
差别
cookie数据存放在客户的浏览器上,session数据放在server上。