做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. Servlet3.0学习总结(四)——使用注解标注监听器(Listener)

    Servlet3.0提供@WebListener注解将一个实现了特定监听器接口的类定义为监听器,这样我们在web应用中使用监听器时,也不再需要在web.xml文件中配置监听器的相关描述信息了. 下面我 ...

  2. IIS中访问自己开发的Webservice site就自动停止,尝试重启IIS和重启服务器都不能解决。

    今天在加班的时候发现一个奇怪的问题,IIS里面我们自己开发的Webservice site一访问就自动停止.尝试重启IIS和重启服务器都不能解决.后台windows events报错信息是The Mo ...

  3. iOS开发——Block详解

    iOS开发--Block详解 1. Block是什么 代码块 匿名函数 闭包--能够读取其他函数内部变量的函数 函数变量 实现基于指针和函数指针 实现回调的机制 Block是一个非常有特色的语法,它可 ...

  4. c++学习_2

    这里承接上一篇文章,继续记录关于继承的那些事儿... NVI(non-Virtual Interface)和strategy模式 NVI模式和strategy模式是两种不同的方法,可以用来替代virt ...

  5. HW5.10

    public class Solution { public static void main(String[] args) { int count = 0; for(int i = 1; i < ...

  6. MySql避免全表扫描

    对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描: · 使用ANALYZE TABLE tbl_name为 ...

  7. 问题-"Record not found or changed by another user"

    回答1:===============================================================问题:clientdataset“Record not found ...

  8. iOS开发中打开本地应用、打开appStore应用、给app评分功能实现

    app开发中,通常会有邀请用户给app打分的功能.而在iOS中,正式应用都是通过appStore 下载的,因此给app 打分也只能在 appStore中.因此,需要从应用跳转到appStore.方法是 ...

  9. oracl使用DataBase Configuration Assistant创建、删除数据库

    原文:oracl使用DataBase Configuration Assistant创建.删除数据库 可以使用DataBase Configuration Assistant来创建一个心得数据库.Da ...

  10. 远程使用Gpupdate(Hash,哈希)

    function Start-GPUpdate {     param     (         [String[]]         $ComputerName     )       $code ...