从对HTTP的相应到HTTP的请求,在到学到后面的cookie开始,我就不清楚cookie与session的区别了,所有在哪些地方用cookie还是session我就更不用提了。所以我就下了点功夫,对它们详细介绍如下:
cookie机制---采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。
cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。
cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式 !
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
理解:session 可以看成超市购物里的托管箱,每当一个顾客(HTTP发送一个)请求,(服务员)服务器会给顾客一把钥匙(sessionID),而钥匙是顾客自己保存的(客户端保存服务端发送回来的ID到cookie里),这样当顾客下次要取回自己的东西的时候,是先给钥匙(sessionID)给服务员(服务器),最后服务器返回给顾客的东西! 呵呵,这样理解应该更容易吧!
当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。
保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发挥给服务器。一般这个cookie的名字都是类似于SEEESIONID。但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。
经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面。还有一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。比如:
<form name="testform" action="/xxx">
<input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764">
<input type="text">
</form>
实际上这种技术可以简单的用对action应用URL重写来代替。
分享到:
相关推荐
总结来说,Servlet是Web应用的基石,它结合HttpServletRequest和HttpServletResponse处理请求和响应,通过Cookie和Session管理会话,与JSP协同工作呈现动态内容。而Filter、文件上传和下载等特性则扩展了Servlet的...
从部分内容中,我们可以提取出以下知识点: HTTP协议是一种无状态协议,这意味着服务器不保存任何关于客户端请求的状态信息。为了弥补HTTP的无状态特性,诞生了Session和Cookie机制。 Session是一种服务器端的机制...
根据提供的文件信息,我们可以整理出一系列关于Java的重要知识点,这些知识点涵盖了Java基础...以上知识点总结涵盖了Java语言的核心概念和技术细节,对于准备Java面试或希望深入理解Java技术的开发者来说非常有价值。
本文将深入探讨如何使用Node.js、Koa框架和Nunjucks模板引擎实现登录验证,并关注"cookieAndSession.zip"中涉及的关键知识点。 首先,我们需要了解Node.js中的HTTP服务器。在"server.js"文件中,开发者通常会创建一...
ASP.NET中的Session和Cookie是两种常见的用户状态管理技术。... Session和Cookie的主要区别在于存储位置和生命周期。Session数据存储在服务器端,而...了解和熟练掌握这些知识点对于构建功能完善的Web应用程序至关重要。
5. Cookie与Session的区别 - 存储位置:Cookie存储在客户端,Session存储在服务器端。 - 数据安全:Session相对更安全,因为数据不直接暴露给客户端。 - 存储量:Cookie存储量有限,Session则无此限制。 - 网络传输...
【知识点详解】 1. **Cookie的基本概念** - Cookie是由服务器端生成,发送到客户端(浏览器)的一小块数据,用于存储用户会话信息。它的名字来源于英文单词"cookie",直译为饼干。 - 在Web应用中,Cookie主要用来...
以下是对JavaWeb知识点的详细总结: 1. **Servlet**: Servlet是Java Web应用的基础,它是Java编写的应用程序,用于扩展服务器的功能。通过实现Servlet接口或继承HttpServlet类,我们可以处理HTTP请求并生成响应。 ...
### Session与Cookie的相关知识点 #### 一、Session与Cookie的基本概念及作用 **Session** 和 **Cookie** 是Web开发中非常重要的两个概念,主要用于维护用户的会话状态。 1. **Session**: - Session 主要用于...
### 前端知识点总结 #### 一、前端基础知识概览 前端开发是现代网站建设和应用开发的重要组成部分,涉及HTML、CSS、JavaScript等核心技术。掌握前端基础知识不仅有助于提高开发效率,还能帮助开发者更好地应对面试...
总结,理解Session与Cookie的区别、部署Memcached实现Session共享,以及如何在Linux环境中配置LNMP服务器是Web开发和运维中的重要技能。在实际应用中,需要根据业务需求选择合适的技术,并优化配置,确保系统的稳定...
本知识点总结文档分为几个主要章节,从概述到具体测试流程,再到业务数据安全以及密码找回安全,详细阐述了与业务安全相关的各个方面。 ### 业务安全概述 #### 网络安全的重要性 随着互联网的普及,网络已经成为...
这份"php学习笔记之重要知识点总结"涵盖了PHP与MySQL的基础,旨在为学习者提供一个全面的指南。下面,我们将深入探讨这些核心概念。 首先,让我们从PHP的基础开始。PHP是一种服务器端的脚本语言,主要用于Web开发,...
本文将深入探讨这个主题,主要围绕"原生登录cookie保持提供webview使用"这一核心知识点进行展开。 首先,我们需要理解cookie的工作原理。Cookie是服务器在客户端存储的小型文本文件,通常用于跟踪用户会话、存储...
本文详细介绍了 Session 在 Web 开发中的作用、Tomcat 中 Session 的管理方式、Session 的持久化机制以及如何计算用户交互间隔等知识点。通过理解这些内容,开发者可以更好地管理和优化 Web 应用中的 Session 行为,...
这些知识点的掌握对于Java Web开发至关重要。JSP和Struts组合提供了动态网页和业务逻辑的处理能力,EL简化了页面表达,Session保证了用户会话的连贯性,JavaMail实现了邮件功能,而Eclipse作为开发工具,提高了开发...
在PHP编程中,Session是用于跟踪用户状态的一种机制,它在用户访问网站的不同页面时保持数据。当用户登录系统时,通常会创建一...只有全面理解并掌握这些知识点,才能有效地解决PHP Session管理中可能出现的各种问题。
接下来,我们将深入探讨Cookie、Session以及它们生命周期的相关知识点。 **1. Cookie的基本概念** Cookie是一种小型文本文件,由服务器发送到用户的浏览器并存储在那里。当用户再次访问同一网站时,浏览器将自动...
【JSP和Servlet知识点详解】 一、JSP与Servlet的区别 1. **本质与生成**:JSP(Java Server Pages)本质上是Servlet的一种简化形式,它将HTML代码和Java代码结合在一起,经过Web容器(如Tomcat)的处理,被编译成...
Session在服务器端存储用户信息,通过SessionID与客户端的Cookie关联,实现会话跟踪。而Cookie存储在客户端,每次请求时发送给服务器,以识别用户身份。 了解这些核心知识点,能有效应对大部分计算机网络相关的面试...