当前位置: 首页 > news >正文

爬虫基础 2.4 会话和cookie

2.4 会话和cookie

2.4.1 静态网页和动态网页

    1 静态网页

        静态网页是标准的HTML文档,不可以传参数,只展示信息

    2 动态网页

        动态网页可以动态的解析网页中的URL的参数变化,关联到数据库,根据参数的不同呈现不同的页面,可以实现登录,注册,验证。

 

2.4.2 无状态 http

    无状态http 即使用该协议连接客户端以及服务器,服务器是不识别客户端是谁。

    为了保持浏览器和服务器连接的状态的保持,使用了新的技术: 会话和cookie

 

    Cookie 保存在客户端浏览器, 下次访问的时候会附带请求中发送给服务器,服务器通过cookie识别是哪个用户,判断是否登录,然后返回响应内容。

 

    1 会话

        会话 ,是相互的,双方均识别对方。当用户在应用程序的不同页面跳转的时候,在会话对象中的识别用户信息的变量不会丢失,会存在与整个会话中。会话过期,或者放弃,服务器会终止会话。

    2 cookies

        Cookies 即网站为了识别用户,进行会话维持跟踪,存储在浏览器本地的一组数据

    3 会话维持

怎样利用 Cookies 保持状态呢?当客户端第 次请求服务器时,服务器会返回以个请求头中带有 Set-Cookie 字段的响应给客户端,用来标记是哪一个用户,客户端浏览器会把 Cookies 保存起来 当浏览器下一次再请求该网站时,浏览器会把 Cookies 放到请求头 起提交给服务器,Cookies 携带了会话ID信息,服务器检查该 Cookies 即可找到对应的会话是什么,然后再判断会话来以此来辨认用户状态

 

在成功登录某个网站时,服务器会告诉客户端设置哪些 ookies 信息,在后续访问页面时客户端会把 Cookies 发送给服务器,服务器再找到对应的会话加以判断如果会话中的某些设置登录状态的变量是有效的,那就证明用户处于登录状态,此时返回登录之后才可以查看的网页内容,浏览器再进行解析便可以看到了

 

如果传给服务器的 Cookies 是无效的,或者会话已经过期了,我们将不能继续访问页面,此时可能会收到错误的响应或者跳转到登录页面重新登录所以, Cookies 和会话需要配合,一个处于客户端,一个处于服务端,二者共同协作,就实现了登录会话控

 

2.4.3 cookies 内容

    百度的登录cookies

    

    Name Cookie 的名称。一旦创建,该名称便不可更改

Value Cookie 的值 如果值为 Unicode 字符,需要为字符编码 如果值为二进制数据,则需要使用 BASE64 编码

Domain :可以访问 Cookie 的域 例如,如果设置为 zhihu.com ,则所有以 zh ihu .co 结尾的域名都可以访问该 Cookie

Max Age Cookie 失效的时间, 单位为秒,也常和 Expires 一起使用,通过它可以计算

有效时间 Max Age 果为正数Max Age 秒之后失效 如果为负数,则关闭浏览器时 Cookie 即失效,浏览器也不会以任何形式保存该 Cookie

Path Cookie 的使用路径 如果设置为/path/ ,则只有路径为 path/ 的页面可以访问该Cookie 果设置为/本域名下的所有页面都可以访问该 Cookie

Size 字段 Cookie

HTTP 字段: Cookie httponly 属性 属性为 true ,则只有在 HTTP 头中会带有此

Cookie 的信息,而不能通过 document.cookie 来访问此 Cookie

Secure Cookie 是否仅被使用安全协议传输 安全协议有 HTTPS SSL 等,在网络上传

输数据之前先将数据加密 默认为 false

转载于:https://www.cnblogs.com/binyang/p/10991090.html

相关文章:

  • Spring boot的简单rest服务(非xml方式配置)
  • Servlet
  • Confluence 6 配置自动备份
  • 微软云端套用新模型增加精准度 减少预测模型误差
  • 【多线程系列】AQS CAS简单介绍
  • CF1063F String Journey
  • JPA(三):JPA基本注解
  • 有哪些不用编写代码就能轻松制作生成HTML5页面的工具
  • Spring Session产生的sessionid与cookies中的sessionid不一样的问题 httpOnly 设置不起作用的问题??...
  • JS中的prototype、__proto__与constructor(图解)
  • 美丽的闭包,在js中实现函数重载
  • Android 自定义时钟控件 时针、分针、秒针的绘制这一篇就够了
  • 在树莓派2或3的kali上 RCA(a/v connector)接口的正确使用方法(多图)(原创)
  • 软件行业40岁前摸索出路,介绍小型软件项目是否可以收辛苦费?事实验证这个路子行不通...
  • Leetcode 13 罗马数字转整数
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Apache Spark Streaming 使用实例
  • Git的一些常用操作
  • Hibernate【inverse和cascade属性】知识要点
  • JAVA并发编程--1.基础概念
  • laravel5.5 视图共享数据
  • tweak 支持第三方库
  • 从0到1:PostCSS 插件开发最佳实践
  • 多线程 start 和 run 方法到底有什么区别?
  • 规范化安全开发 KOA 手脚架
  • 面试遇到的一些题
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 阿里云服务器购买完整流程
  • 移动端高清、多屏适配方案
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (笔试题)合法字符串
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原創) 未来三学期想要修的课 (日記)
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net 按比例显示图片的缩略图
  • .NetCore部署微服务(二)
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET企业级应用架构设计系列之技术选型
  • @property括号内属性讲解
  • @Repository 注解
  • @SuppressWarnings注解
  • @Transactional 竟也能解决分布式事务?
  • [383] 赎金信 js
  • [ACTF2020 新生赛]Upload 1
  • [android学习笔记]学习jni编程