【JavaWeb】 Cookie和Session
Session和Cookie出现的原因:
由于Http是无状态的协议,会话之间没有任何关联,也就是上一次会话和下一次会话没有任何关联,因此出现了会话技术Cookie和Session
下面分别从Cookie和Session两方面来讨论:
Cookie:
Cookie是客户端的会话技术,当浏览器访问服务端时,服务端可以通过将Cookie信息存放到响应头Set-Cookie字段中,随着响应报文发送给浏览器
浏览器看到Set-Cookie字段后,会将该信息保存起来,下次请求时,将Cookie自动放到请求头的Cookie字段发送给服务器端,服务端解析Cookie信息可以
获得相关的信息,例如保存登录状态等等
以Java为例:
浏览器访问服务端的接口
/**
* Cookie测试
* @param httpServletResponse
* @return
*/
@GetMapping("/testCookie")
public Result testCookie(HttpServletResponse httpServletResponse){
//如何创建Cookie
Cookie cookie = new Cookie("test","xxxxx");
//如何将Cookie返回给客户端--通过Response响应给浏览器
httpServletResponse.addCookie(cookie);
return Result.success("success"); }
服务端响应给浏览器的信息如图:

下次浏览器再次与服务端通信的时候,会将次Cookie存放在请求头的Cookie字段,一起发送给服务端,如图

Cookie的相关参数

Cookie由于以文本形式保存到浏览器,因此不太安全,而且每个浏览器存放Cookie的数量和大小都有区别,因此出现了下面的服务端会话技术Session
Session:
Session存储在服务端,客户端只存储了SessionId,服务端将一次会话的重要信息存放在Session中,浏览器只记录SessionId,一个SessionId对象一次会话请求
同样的,服务端设置完Session之后,Session会随着响应一起发送给客户端,Session通过响应头中的Set-Cookie字段,数据格式以JSessionId=xxx
的方式来返回给浏览器
下面以Java代码为例:
/**
* Session测试
* @param httpServletRequest
* @return
*/
@GetMapping("/testSession")
public Result testSession(HttpServletRequest httpServletRequest){
//如何创建Session
HttpSession session = httpServletRequest.getSession();
session.setAttribute("testSession",222222);
//如何将Session返回给客户端--设置完Sesison的key-value后,服务端会生成SesisonId来记录本次会话信息,通过Response响应给浏览器
return Result.success("success"); }
服务端响应头中Set-Cookie字段来传递Session,生成一个唯一Id来记录本次会话

下次会话时,浏览器将自动将SessionId携带至请求头的Cookie字段来一起请求服务端,如图

Session即使我关闭浏览器,再次打开浏览器请求该站点时,值要Session没过期(默认30分钟),也会将该Session自动携带至请求头给服务端
【JavaWeb】 Cookie和Session的更多相关文章
- JavaWeb(二)cookie与session的应用
前言 前面讲了一堆虚的东西,所以这篇我们来介绍一下cookie和session的应用. 一.使用cookie记住用户名 1.1.思路介绍 1.2.实现代码 1)LoginServlet package ...
- JavaWeb:Cookie处理和Session跟踪
JavaWeb:Cookie处理和Session跟踪 Cookie处理 什么是Cookie Cookie 是存储在客户端计算机上的文本文件,保留了各种跟踪信息.因为HTTP协议是无状态的,即服务器不知 ...
- JavaWeb——Cookie,Session学习汇总
什么是Cookie Cookie的作用 安全性能 Cookie的语法 Cookie注意细节 Cookie实例练习 什么是会话Session Session语法 Session与浏览器窗口的关系 ses ...
- JavaWeb学习之转发和重定向、会话技术:cookie、session、验证码实例、URLConnection使用(下载网页)(4)
1.转发和重定向 HttpServletResponse response 转发: RequestDispatcher dispatcher = request.getRequestDispatche ...
- JavaWeb之Cookie和Session的区别
Cookie和Session的区别 一.cookie机制和session机制的区别 ********************************************************** ...
- JavaWeb(二)会话管理之细说cookie与session
前言 前面花了几篇博客介绍了Servlet,讲的非常的详细.这一篇给大家介绍一下cookie和session. 一.会话概述 1.1.什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接, ...
- JavaWeb系列之八(Cookie&Session)
1.jsp的入门 jsp就是一个servlet,终于会被编译成servlet,jsp:java server pages,java服务器端页面,包括html+java+jsp的指令 ...
- java基础学习:JavaWeb之Cookie和Session
一.会话概述 1.1.什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话其中不管浏览器发送多少请求,都视为一次会话,直到 ...
- 基于javaWeb阶段下的Cookie和Session总结
1. 会话技术 就是用户在使用浏览器浏览界面的时候,去访问多个页面后一次性关闭浏览器,这个过程叫会话,学习会话技术就是在客户端与服务器进行交互的时候为了能更好的保存数据.在java中会话技术只有C ...
- javaWeb核心技术第八篇之Cookie和Session
会话技术: 会话是什么? 浏览器和服务器交互,浏览器打开网页访问服务器,会话开始,正常交互. 浏览器关闭,会话结束. 会话能干什么? 会话可以共享数据. Cookie和session将数据保存在不同的 ...
随机推荐
- Docker下FastDFS环境搭建
本文使用docker进行搭建. #拉取镜像docker pull delron/fastdfs#创建tracker容器docker create --network=host --name trac ...
- TorchVision Faster R-CNN 微调,实战 Kaggle 小麦检测
本文将利用 TorchVision Faster R-CNN 预训练模型,于 Kaggle: 全球小麦检测 上实践迁移学习中的一种常用技术:微调(fine tuning). 本文相关的 Kaggle ...
- WEBAPI 的调用方式
示例是调用谷歌短网址的API. 1. HttpClient方式 public static async void DoAsyncPost() { DateTime dateBegin = DateTi ...
- HTTP 状态码(转载)
本文由 简悦 SimpRead 转码, 原文地址 www.cnblogs.com HTTP 状态码 (HTTP Status Code) 状态码并不是每个都有,为了后期扩展.[update201705 ...
- python列表,元组,字典,集合的比较总结
这四个都是python中的序列,用于存放数据,他们区别总结如下: 列表list 元组tuple 字典dictionary 集合set 是否可变 可变 不可变 可变 可变 是否有序 有序 有序 无序 ...
- go语言几个最快最好运用最广的web框架比较
比较一下常用的golang web框架 令人敬畏的Web框架 如果你为自己设计一个小应用程序,你可能不需要一个Web框架,但如果你正在进行生产,那么你肯定需要一个,一个好的应用程序. 虽然您认为自己拥 ...
- gsoap多wsdl集成
gsoap常规用法: 通过wsdl文件创建头文件 //通过wsdl文件创建头文件 wsdl2h [options] -o file.h ... WSDL and XSD files or URLs t ...
- 2018ICPC南京I. Magic Potion
题目: 题意:n个士兵打m个怪兽,每个士兵只能打一个,但是如果有魔法药水就可多打一个问最多能打几个. 题解:如果没有魔法药就是一道裸二分图,因为现在有魔法要我们可以这样建图: 多建一个i+n的节点存放 ...
- 攻防世界 reverse Windows_Reverse1
Windows_Reverse1 2019_DDCTF 查壳 脱壳 脱壳后运行闪退,(或许需要修复下IAT??),先IDA 静态分析一下 int __cdecl main(int argc, con ...
- nginx提供网站首页的一个实例
如果既想匹配'/'进行反向代理,同时又想通过nginx提供网站首页,可以在server中进行如下配置: user python; # 运行Nginx的用户 worker_processes auto; ...