Session & Cookie小知识~
Cookie
一个HTTP cookie的(也称为网络Cookie,互联网的cookie,浏览器cookie,或者干脆饼干)是一小块从发送的数据的网站用户的并存储在用户的计算机上的网页浏览器,而用户浏览。Cookie旨在成为网站记住有状态信息(例如在线商店购物车中添加的项目)或记录用户浏览活动(包括点击特定按钮,登录)的可靠机制,或记录过去访问过的页面)。它们还可用于记住用户先前在表单字段(如姓名,地址,密码和信用卡号)中输入的任意信息。
其他类型的cookie在现代网络中执行基本功能。也许最重要的是,身份验证cookie是Web服务器用于了解用户是否已登录以及用户登录的帐户的最常用方法。如果没有这样的机制,站点将不知道是否发送包含敏感信息的页面,或者要求用户通过登录进行身份验证。身份验证cookie的安全性通常取决于发布网站的安全性和用户的Web浏览器,以及cookie数据是否加密。安全漏洞可能允许黑客读取cookie的数据,用于访问用户数据,或用于访问cookie(使用用户的凭据)到cookie所属的网站(请参阅跨站点脚本和跨站点请求伪造示例)。[1]
跟踪cookie,尤其是第三方跟踪cookie,通常用作编制个人浏览历史记录的长期记录的方式 - 这是一个潜在的隐私问题,促使欧洲[2]和美国立法者在2011年采取行动。[3 ][4]欧洲法律要求所有针对欧盟成员国的网站在将非必要的cookie存储在其设备上之前,必须获得用户的“知情同意”。
Google Project Zero研究员Jann Horn描述了中间商(如Wi-Fi热点提供商)可以读取cookie的方式。他建议在这种情况下以隐身模式使用浏览器。[5]
session
在计算机科学中,特别是在网络中,会话是两个或更多个通信设备之间或计算机和用户之间的临时和交互式信息交换(参见登录会话)。会话在某个时间点建立,然后在某个稍后的时间点“拆除” - 结束。建立的通信会话可以在每个方向上涉及多于一个消息。会话通常是有状态的,这意味着至少有一个通信方需要保存当前状态信息并保存有关会话历史的信息以便能够进行通信,而不是无状态 通信,其中通信由具有响应的独立请求组成。
已建立的会话是执行面向连接的通信的基本要求。会话也是在无连接通信模式下传输的基本步骤。但是,任何单向传输都不会定义会话。[1]
通信传输可以被实现为在协议和服务的一部分的应用层,在会话层或在传输层中的OSI模型。
在不实现正式会话层(例如,UDP)的传输协议或者应用层的会话通常非常短暂(例如,HTTP)的情况下,会话由更高级别的程序使用定义的方法维护。在交换的数据中。例如,浏览器和远程主机之间的HTTP交换可以包括HTTP cookie,其识别状态,例如唯一会话ID,关于用户的偏好或授权级别的信息。
HTTP / 1.0被认为只允许在一个Web / HTTP会话期间发出单个请求和响应。协议版本HTTP / 1.1通过完成通用网关接口(CGI)改进了这一点,使维护Web会话和支持HTTP cookie和文件上载变得更加容易。
大多数客户端 - 服务器会话由传输层维护 - 单个会话的单个连接。但是,Web / HTTP会话的每个事务阶段都会创建一个单独的连接。维持阶段之间的会话连续性需要会话ID。的会话ID嵌入在<A HREF>或<FORM>的链路内动态网页,以便它被传递回给CGI。然后,CGI使用会话ID来确保事务阶段之间的会话连续性。每个连接一个连接的一个优点是它在低带宽(调制解调器)连接上运行良好。
ps:本博文摘自:
https://en.wikipedia.org/wiki/Session
https://en.wikipedia.org/wiki/HTTP_cookie
Session & Cookie小知识~的更多相关文章
- cookie 和 session 的基础知识
cookie 和 session 的基础知识 cookie 和session 的区别详解 这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会 ...
- PHP知识分享之session && cookie
<?php /* * @Content : session && cookie * @author : Mr.xml * @time : 2015-3-17 09:53:49 * ...
- 金九银十已到!Cookie 和 Session的这些知识你必须知道,面试必问!
前言 会话:一次会话中包含多次请求和响应 注:一次会话表示浏览器第一次给服务器发送请求,会话建立,直到有一方断开为止 功能:在一次会话的多次请求间共享数据 方式: (1) 客户端会话技术:Cookie ...
- 关于Cookie的知识的总结
Cookie的类型 会话cookie和持久cookie 会话cookie是一种临时cookie,它记录了用户访问站点时的设置和偏好,当用户退出浏览器时,会话cookie就会被删除. 持久cookie的 ...
- [转载]JavaEE学习篇之——Session&&Cookie
原文链接: http://blog.csdn.net/jiangwei0910410003/article/details/23337043 今天继续来看看JavaWeb的相关知识,这篇文章主要来讲一 ...
- Redis+Django(Session,Cookie)的用户系统
一.Django authentication django authentication提供了一个便利的user api接口,无论在py中 request.user,参见Request and re ...
- Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别
2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...
- Application,Session,Cookie,ViewState和Cache区别
在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...
- session cookie原理及应用
一.术语session在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的. session,中 ...
随机推荐
- Golang实现杨辉三角
杨辉三角,也算是一个经典的题目了.就简单的说说. 写代码之前,先分析要做的东西的特点,找到规律,再把这个规律描述一下. 然后把这个描述翻译成编程语言,就可以说是编程了. 那么杨辉三角有什么特点? 首先 ...
- JDK1.8 新特性
jdk1.8新特性知识点: Lambda表达式 函数式接口 *方法引用和构造器调用 Stream API 接口中的默认方法和静态方法 新时间日期API https://blog.csdn.net/qq ...
- 在 Linux 上使用 VirtualBox 的命令行管理界面
VirtualBox 拥有一套命令行工具,你可以使用 VirtualBox 的命令行界面 (CLI) 对远程无界面的服务器上的虚拟机进行管理操作.在这篇教程中,你将会学到如何在没有 GUI 的情况下使 ...
- Tomcat配置服务和自启动
Tomcat配置服务和自启动1.Tomcat配置服务 假设Tomcat的安装路径为/usr/local/tomcat 1 为Tomcat添加启动参数 catalina.sh在执行的时候会调用同级路径下 ...
- Jfinal集成Spring
JFinal框架也整合了spring框架,下面实现JFinal怎么去配置Spring框架.在JFinal中整合Spring使用到的类是SpringPlugin和IocInterceptor类 Spri ...
- linux的基本操作概览
目录 文件路径相关的命令 最重要的一个通配符:* zip相关命令 重定向 三种权限 一些网络操作 安装软件的三种方式 最近开始学习linux的一些基础操作,安装了ubantu 16版本的Linux操作 ...
- android -------- Retrofit + RxJava2.0 + Kotlin + MVP 开发的 WanAndroid 项目
简介 wanandroid项目基于 Retrofit + RxJava2.0 + Kotlin + MVP 用到的依赖 implementation 'io.reactivex.rxjava2:rxj ...
- itchat和wordcloud对微信好友的签名进行画像
获取好友列表的时候,返回的json信息中还看到了有个性签名的信息,脑洞一开,把大家的个性签名都抓下来,看看高频词语,还做了个词云. # coding:utf-8 import itchat # 先登录 ...
- css 常用布局
「前端那些事儿」③ CSS 布局方案 我们在日常开发中经常遇到布局问题,下面罗列几种常用的css布局方案 话不多说,上代码! 居中布局 以下居中布局均以不定宽为前提,定宽情况包含其中 1.水平居中 a ...
- python scrapy同时执行spiders多个爬虫
假设spiders文件夹下多个文件: name.py name = 'name' name1.py name = 'name1' name2.py name = 'name2' . ...