cookie和session可能需要知道的知识

时间:2022-12-14 23:45:10

  做Android程序员,了解服务器的知识是相当重要的,比如cookie和session。

  首先介绍一点背景知识,我们知道HTTP的连接是无状态的,HTTPS只是增加了安全,有了SSL证书来验证,作为服务器怎么通过HTTP来知道客户端的状态呢?

比如如何识别来访问的每个连接都是哪个客户发起的连接,只凭字段或许可以知道是哪个浏览器平台,但是区别每个用户是不可以的,当初设计浏览器的公司netscape就开发出了一种机制,名叫cookie,用cookie来记录唯一的客户。在cookie上面给每个到来的连接标上一个唯一的识别id,如果发现有了id,就针对进行操作,各种交互和用户友好性行为。cookie是存储在浏览器端的,由浏览器的W3C标准来保持,每次都是由服务器的response流addCookie然后到客户端,由浏览器去判断cookie的一些字段来进行对应的处理,比如是序列化还是存储在内存,如果存储在内存,那么当关闭浏览器cookie就消失了,有点类似于隐私模式。cookie可能有这么些字段,MaxAge:-1表示内存的时间,0表示清除cookie,整数表示多少时间(通常单位为second秒)。有些网站还会把用户的id和密钥放在cookie中,不过现在的密钥一般都会进行加密才写入到cookie中,服务器访问的时候也会进行解密,id也会进行加密,比如百度的就加密了。我们可以用js的语法查看cookie。

javascript:{cStr=document.cookie;alert(cStr);}  或者简单地写alert(document.cookie)

Hm_lpvt_6859ce5aaf00fb00387e6434e4fcc925=1448292821; Hm_lvt_6859ce5aaf00fb00387e6434e4fcc925=1448206648,1448210112,1448292821,1448292821; IK_4A9653CF7DB7ACF29B1600233C8E8039=5; IK_CID_1=1; IK_CID_74=1; IK_CID_83=1; IK_CID_84=1; IK_CID_95=1; BAIDUID=4A9653CF7DB7ACF29B1600233C8E8039:FG=1; BIDUPSID=CFBBD1FD07741EDF61F7570768B3694D; H_PS_PSSID=17518_1421_18155_17949_17971_18042_15208_11816_18087_10633; MCITY=-%3A; PSTM=1447961566

以上是获取的我地百度上面的cookie,毕竟客户端的东西还是可以用js来操作的。

W3C的标准保证了不会有跨域读取cookie,这里面我们想当然的会有一个钻漏洞的想法,既然服务器可以读取cookie,那么服务器可以不读取自己的,读取用户访问过得,那不是泄露了用户隐私吗?其实只要用户使用了W3C标准的浏览器,那么浏览器就会保证不会把不属于该域名的cookie传递给不相关域名的服务器。

session是服务器端的一种保存机制,在服务器端的内存中加载一些用户的信息,储存在数据库中,不过一旦并发连接数多了,那么对于服务器的负担将是比较重的。

对于客户端还是需要一个cookie,cookie里面有一个叫做jsessionid的东西,这个用来和服务器的一一对应,客户端记录的信息比较少。不过对于用户来讲,可以禁用cookie,这时候怎么做呢,选择在url地址上面做手脚,可以在url地址上面带入一些id记录信息什么的,这种参数是不影响客户访问浏览器的具体资源的,关键是服务器端要做好相应地记录。

重点来了,如果是APP端,应该怎么做呢?APP端怎么去使用cookie,没错,java中有相关cookie的类,在这里面进行cookie的接受和处理。代码待编辑---

cookie和session可能需要知道的知识的更多相关文章

  1. cookie 和 session 的基础知识

    cookie 和 session 的基础知识 cookie 和session 的区别详解 这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会 ...

  2. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...

  3. 网络知识===cookie 、session、JSESSIONID的区别

    cookie .session ? 让我们用几个例子来描述一下cookie和session机制之间的区别与联系.笔者曾经常去的一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微 ...

  4. PHP7语法知识(四):目录文件操作、Cookie与Session、MySQL数据库的使用、Redis数据库、PHP处理XML与JSON

    目录文件操作 一.目录 1.判断文件类型: 2.创建和删除目录: 3.打开读取和关闭目录 4.获得路径中目录部分 5.目录磁盘空间 二.文件操作 1.打开文件: 2.读取文件: 3.获得文件属性: 4 ...

  5. 基础知识《十二》一篇文章理解Cookie和Session

    理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定 ...

  6. C#基础知识之理解Cookie和Session机制

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  7. django 中 cookie与session 相关的知识

    cookie :它是一个字典  

  8. cookie 和session 的区别详解

    这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...

  9. cookie与session的爱恨情仇

    这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...

随机推荐

  1. 15.用PHP写出显示客户端IP与服务器IP的代码,如何防止用户使用代理的情况?[添加更多详情]

    打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR'); 打印服务器IP:echo gethostbyname("ww ...

  2. ThreadPoolExecutor机制

    一.概述 1.ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务: 2.Execu ...

  3. uva 1572 self-assembly ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxQAAANxCAYAAAB9uv94AAAgAElEQVR4nOxdPW7tOpLWFrQGJb72vI ...

  4. maven自动化部署插件sshexec-maven-plugin

    在maven pom.xml 文件plugins里增加               <plugin>                 <groupId>com.github.g ...

  5. Fiddler界面详解

    Statistics 页签 完整页签如下图: Statistics 页签显示当前用户选择的 Sessions 的汇总信息,包括:选择的 Sessions 总数.发送字节数.接收字节数.响应类型的汇总表 ...

  6. 函数rec&lowbar;get&lowbar;nth&lowbar;field&lowbar;offs&lowbar;old

    /************************************************************//** The following function is used to ...

  7. python 3&period;5 用户登录验证和输入三次密码锁定用户

    #!/usr/bin/env python #encoding: utf-8 #登录程序,输入用户和密码输出欢迎信息,输入错误三次锁定用户,不让登录 import sys print (''' 欢迎登 ...

  8. Linux epoll源码--

    Linux系统运行源码剖析-epoll代码注释 理解了中断.等待队列.调度,你就能懂Linux的80%. --老子 转发的话,请注明出处哦:http://www.cnblogs.com/stoneha ...

  9. 【tmos】SpringBoot项目IDEA不识别依赖,但是能够运行时什么鬼?

    如下图,但是项目却能够正常运行 解决方法 方法1 方法2 方法3 删除项目的.idea文件,然后重新打开IDEA 方法4 删除项目的iml文件,然后reimport项目的pom.xml 文件,错误提示 ...

  10. EL函数库及用法

    导入标签库: <%@ tablib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%&g ...