Cookie 与 sessonID

Http协议是无状态的,即服务端只能通过你本次提交的http请求来给出响应。cookie可用于服务端标记客户端。如登陆过后免输密码,购物车实现等。

1.cookie

Cookie可以通过js代码生成,也可以通过HttpResponse头部中的Set-Cookie属性向浏览器说明。

注意格式为   

Set-Cookie: =[; =]...
                    [; expires=][; domain=]
                    [; path=][; secure][; httponly]

一个例子,chrome中的截图见下。

Cookie 与 sessonID_第1张图片

图1 响应报文头中的设置cookie字段

一个cookie由name、value、domain等属性组成,可以看下图的

Cookie 与 sessonID_第2张图片

得到了cookie,下次访问的时候就会在Http请求里包含cookie,可以有很多个cookie。

Cookie 与 sessonID_第3张图片


SessinID

本质仍是cookie。sessionID在服务端对应一个对象,可以存出各种信息,一般放在内存中。
当客户端第一次请求session对象时候,服务器会为客户端创建一个session,并将通过特殊算法算出一个session的ID,用来标识该session对象,当浏览器下次(session继续有效时)请求别的资源的时候,浏览器会自动将sessionID放置到请求头中,服务器接收到请求后就得到该请求的sessionID,服务器找到该id的session返还给请求者(Servlet)使用。

微软的SessionID
Cookie 与 sessonID_第4张图片
jsp的sessionID
Cookie 与 sessonID_第5张图片

区别

cookie数据存放在客户的浏览器上,session数据放在服务器上。


你可能感兴趣的:(java)