`

cookies与session深度分析

    博客分类:
  • HTTP
 
阅读更多

网上有很多关于cookies和session的资料和讨论,但是基本上没有能形象的、系统的、完善的说清楚这两个概念的,所以决定写一篇关于cookies和session的文章



 cookies

<1>首先说明,cookies是客户端上的数据,cookies数据是由客户端浏览器读写的,表现形式为cookies文件,cookies文件里保存着cookies数据;

<2>客户端每个浏览器都有其自己的cookie,这点要注意。相对于服务端,每个浏览器代表着一个客户端,而并不是一台客户电脑代表一个客户端,在开发过程中,有很多概念是相对的,比如,全局、并发、阻塞、事物等等都些相对的概念,分析具体情况的时候,要确认目前所处的层面和环境。所以,若果你电脑上装了多个浏览器firefox、chrome、ie等等吧,每个浏览器都有自己的cookies文件,每个浏览器也只能读写自己的cookies数据,并且具体的读写处理也不一样。举个例子,chrome的所有cookies数据是存放在一个文件中的,并且做了加密处理,所以chrome写cookies时会加密,读cookies会解密,如果你用文本处理工具打开chorme的cookies会发现乱码看不懂,就是因为chrome加密了不让你看,只有它自己懂;IE的cookies是分好多文件的,也没做加密处理,记事本打开就能看懂。

<3>再一点,就是大家要理清一个概念:cookies是浏览器保存的数据,跟服务器没有直接的关系,cookies要跟服务器扯关系的话也只是间接的,他们之间由浏览器作为桥梁。网上很多资料、包括很多书上讲

写道
cookies是服务器保存在客户端上的数据,用来标识用户

 没错,这个说法是对的,但是,这只说明了cookies技术的初衷,其中隐藏的很多具体东西没有说清楚。

<4>我要给大家提个问题:浏览器给服务器发送数据,发送的数据从何而来??大家都明白,用户输入表单提交啊,url带上查询串啊。这只是发送数据的一部分,不全,那另一部分从何而来呢,从cookies。当浏览器不禁用cookies的时候,浏览器每一次的WEB请求,都会自动读取cookies数据发送给服务器。

<5>那cookies数据是怎么发送给服务器的??cookies数据在浏览器读取后,放在http请求头里边发给服务器,所以cookies是有长度限制的,原因就是http协议头有长度限制。

<6>浏览器端运行的JS提供了cookies的读写能力。JS读写cookies的知识就不在这说了,感兴趣的自己查下吧。

<7>前面说了,cookies数据是浏览器直接读写的,跟服务器的关系只是间接的,但是,做过WEB开发的都知道,服务器端代码有写cookies的能力,其中的纽带就是浏览器、http请求头/响应头、WEB服务器。WEB服务器给服务端语言提供接口,让服务端语言有修改设置http响应头的能力,cookies数据只是http头中的一部分。

<8>通过前边分析,大家应该这样理解cookies:cookies是http头的一部分,属于http协议的范畴,所谓客户端的cookies文件,只是浏览器将cookies持久存储,以便再用。

 

说cookies就会提到session,大家肯定经历过面试环节这样的提问:“cookies和session的区别?”,我比较讨厌这个问题的问法。cookies和session不是一个层面上的东西,无法像“这女孩比那女孩好看”这样比较,只能讨论之间的联系。接下来说分析session。

 

session

<1>session存储在服务端。每个应用服务器都有自己的session,比如一台机器上装了两服务器:php、asp.net,各有各的seesion存储。这里要提醒初学者,服务器和服务机器是两个概念。

<2>服务器开启session的话,服务端(准确来说是WEB服务器)会为每个请求的客户端生成一个ID,站在服务器的角度讲,这个ID就是客户端的标识、身份证,服务端可以将一些执行过程的数据下挂到这个ID下保存起来,比如,php会为每个客户端建立以ID为文件名的文件,里边存放数据,这就是session。

<3>理解session的时候,要分两部分分析,sessionID、session数据。

<4>大家想下,sessiion会有哪些用??页面传值?下次请求用?还有呢??

 

未完待续……

 

  • 大小: 103.8 KB
分享到:
评论

相关推荐

    Sessions Applications Cookies Explorer v2.0 -ASP源码.zip

    《ASP技术深度解析与实战应用》 在信息技术领域,ASP(Active Server Pages)是一种由微软公司推出的服务器端脚本环境,用于创建动态交互式网页。本文将深入探讨ASP技术的核心概念、工作原理以及实际应用,结合提供...

    深度学习模型自动识别验证码,python爬虫库自动管理会话,通过简单易用的API,实现知乎数据的爬取.zip

    在当前的数字化时代,数据的重要性不言而喻,特别是在...通过使用深度学习模型解决验证码识别问题,结合Python库管理会话,以及构建用户友好的API,我们能够实现自动化数据采集,为数据分析、研究或产品开发提供便利。

    C#新浪微博采集分析平台

    《C#微博采集分析平台深度解析》 在当今大数据时代,社交媒体数据的挖掘与分析成为企业和研究者关注的焦点。本文将围绕"C#新浪微博采集分析平台"这一主题,深入探讨其背后的技术实现与应用价值。 首先,我们来看该...

    matlab开发-webbot

    - **处理cookies和session**:如果目标网站需要登录或有会话管理,Webbot需要能处理cookies和session来保持用户的登录状态。 - **错误处理和重试机制**:网络请求可能会失败,所以需要适当的错误处理代码来处理HTTP...

    Python和R爬取分析赶集网北京二手房数据.zip

    在Python中完成数据预处理后,可以将数据导入R环境中进行深度分析。R语言中的dplyr库提供了方便的数据操作功能,如筛选、排序、分组和汇总。ggplot2库则用于数据可视化,可以帮助我们创建各种图表,如房价与面积的...

    Ecshop之init.php文件分析

    ### Ecshop之init.php文件深度解析 #### 一、引言 `init.php`作为Ecshop框架中的核心初始化文件,承载着系统启动时的关键配置与环境检查任务。它不仅是Ecshop前台运行的基础,也是理解整个Ecshop架构和运作机制的...

    Python网络爬虫实战胡松涛编著

    5. 防爬策略与应对:讲解网站反爬机制,如User-Agent、Cookies、Session、验证码识别,以及如何使用代理IP、设置延时等方法避免被封禁。 6. 数据存储:介绍如何将抓取的数据存储到文件(如CSV、JSON格式),以及...

    爬虫脚本项目源码-人工智能

    通过分析这个压缩包中的源码,我们可以学习如何设置请求头、处理cookies和session、解析网页结构、提取所需数据,以及如何避免常见的反爬机制。 在人工智能方面,可能包含的源码可能涵盖了机器学习、深度学习、自然...

    2024最新python爬虫面试题《PPT文档》

    - Cookies与Session:处理登录状态,维持会话。 - IP代理和验证码识别:用于绕过IP限制和解决验证码问题。 5. **异步与多线程** - asyncio模块:Python的异步I/O框架,能实现高效的并发处理。 - Gevent:基于...

    零基础Python爬虫从入门到精通教程[视频课程].txt打包整理.zip

    学会如何设置请求头、处理cookies和session,以及处理重定向和错误处理是必备技能。 【BeautifulSoup库】 BeautifulSoup是对HTML和XML文档进行解析的库,它提供了一套方便的接口用于查找、遍历和修改文档树。通过...

    website crawler

    3. **处理cookies和session**:对于需要登录或有会话状态的网站,爬虫可能需要模拟用户登录,并处理cookies和session。 4. **反反爬策略**:许多网站有反爬机制,如IP限制、验证码等,需要采用代理IP、验证码识别...

    lesson7-爬虫入门.rar_python 爬虫_thisn6q_爬虫入门

    5. **处理cookies和session**:在网络爬虫中,有时需要模拟用户登录,这就涉及到cookies和session的管理。 6. **爬虫框架**:Scrapy是一个高级的Python爬虫框架,它包含了许多内置功能,如自动处理请求、中间件、...

    python爬虫_python爬虫详解_python爬虫_.zip

    - **cookies与session**:处理登录状态,模拟用户行为,例如使用requests库的Session对象。 - **爬虫调度与分布式**:Scrapy框架支持复杂的爬虫逻辑,如深度优先和广度优先搜索,还能通过多线程或多进程实现分布式...

    大众点评源码.zip

    2. **网络请求与反爬策略**:在DPspider-master中,开发者可能会用到模拟登录、处理cookies和session、处理验证码等功能,这些都是应对网站反爬策略的常见手段。同时,合理设置请求间隔和User-Agent,可以降低被目标...

    2023最新python爬虫详解

    同时,为了模拟浏览器行为,如处理cookies、session和登录状态,可以使用requests的Session对象。 网络爬虫还需要应对反爬虫策略,这可能涉及到User-Agent伪装、IP代理池、验证码识别等。例如,可以设置headers参数...

    京东评论爬虫,包含对数据的采集、清洗、可视化、分析等过程,作为数据库实战课程设计项目

    可以利用cookies和session进行模拟登录,使用代理IP池来规避IP封锁。同时,合理设置爬取间隔,避免对目标网站造成过大的压力。 3. **数据清洗**:获取的原始数据往往含有噪声和不一致性,需要进行数据清洗。这包括...

    雪球股票信息超级爬虫.zip

    它允许开发者高效地收集大量网页信息,如股票价格、交易量、用户讨论等,从而进行深度分析或构建预测模型。 雪球(XueQiu)是中国知名的投资者社区,提供了丰富的股票市场数据和用户交流平台。通过爬虫技术,可以...

    基于PHP的Google网页搜索抓取(php有后台免费版)源码.zip

    3. **处理cookies和session**:由于Google可能会对频繁的请求进行限制,因此需要处理cookies和session,模拟浏览器行为,防止被封IP。 4. **代理和轮换**:为了增加抓取的稳定性,可能会使用代理服务器,PHP可以...

Global site tag (gtag.js) - Google Analytics