iOS之Cookie
iOS之Cookie使用
简介
概念:Cookie中文名称叫做“小型文本文件”,指某些网站为了辨别用户身份而存储在用户本地终端上的数据(通常经过加 密)。 Web服务器可以用过Set-Cookie或者Set-Cookie2 HTTP头部设置Cookie.
- 分类:Cokkie总是保存在客户端中,按在客户端中存储的位置,可分为:
内存Cookie:内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。
硬盘Cookie:硬盘Cookie保存在硬盘里面,有一个过期时间,除非用户手工清理或者到了过期时间,硬盘Cookie不会被清除,其存在时间是长期的。所有按照存在时间,分为非持久Cookie和持久Cookie。
- 用途:
- 因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的时间,有了Cookie,服务器可以设置或者读取Cookie中包含的信息,借此维护用户跟踪服务器会话中的状态。
- 另一种用途就是当我们登录一个网站的时候经常会勾选“下次自动登录”,那么下次就可以不用登录了。其实就是第一次登录时,服务器发送了包含登录凭据的Cookie到用户的硬盘上。第二次登录的时候(如果Cookie没有到期)浏览器会发送该Cookie,服务器验证凭据,因此不用输入用户名和密码就可以让用户登录了。
- 缺陷
Cookie会被附加在每个HTTP请求中,所以无形中增加了流量
HTTP请求Cookie是明文传递,安全性无法保障
- Cookie大小有限制,一般是4kb左右
Cookies的替代品
我们可以在与服务器传输数据的时候,在地址后面拼接一个唯一的查询串,让服务器识别是否合法用户
以上是对Cookie的简单介绍,多半是参考百度百科以及维基百科了解到的基础知识,下面开始进入正题:iOS中Cookie的使用。
iOS之Cookie的更多相关文章
- iOS的Cookie存取
当前一些公司为了快速出一款app,很多时候采用UINavigationController+WebView或者NavigationController+UITabbarVC+WebView的方式,这样 ...
- iOS中Cookie的管理
平常的app开发中只调用Rest Api可能用不到Cookie,但是当要在App中内嵌WebView就有可能要用到.最近用到了这一块的东西,总结一下. Cookie原理 关于cookie的原理简单描述 ...
- 【读书笔记】iOS网络-Cookie
Cookie是HTTP协议在首个版本之后加入的一个重要组件.它向服务器提供了追踪会话状态的能力,同时又无须维持客户端与服务器之间的连接.在浏览器客户端,Cookie值是由服务器通过请求提供的,,然后被 ...
- IOS - 打印COOKIE中的 CRFSToken
NSHTTPCookie 在iOS中使用NSHTTPCookie类封装一条cookie,通过NSHTTPCookie的方法读取到cookie的通用属性. - (NSUInteger)version; ...
- iOS保存cookie的方法
SURLRequest*request =[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/ ...
- iOS关于Cookie验证登录状态
1.第一次进入应用,登录获取Cookie,此时如果用到的是AFN去获取接口数据,Cookie已经写入了,所以无需处理,每次请求的时候,会自动将该cookie传给后台去验证 2.将Cookie缓存到本地 ...
- iOS swift cookie创建存储移除
保存网络请求的cookies,并存储到UserDefaults中 //保存COOKIES static func saveCookies(for urlStr: String){ if let url ...
- iOS使用cookie
// // ViewController.m // cookie // // Created by 谭启宏 on 16/3/4. // Copyright © 2016年 tqh. All right ...
- iOS:项目中用到的Cookie
1.介绍: 做了这么长时间开发,Cookie真是用的不多,可是现在不一样了,这次的项目我用到了Cookie.其实,Cookie的使用在项目中愈加的频繁,一般情况下,提供的接口是用Cookie来识别用户 ...
随机推荐
- K3 WISE开发手册
1.VB插件工程的命名.命名空间和生成的DLL命名要一致,否则导致注册不成功!
- ERB预处理ruby代码
cucumber.yml 文件可以用erb预处理,这样允许你在cucumber.yml文件中使用ruby代码生成值.所以如果你有几个配置要用相同值时,你可以这样写 # config/cucumber. ...
- 比较HTML元素和Native组件的区别
我们开发web应用,会使用到各种Html基本元素,比较<div>,<span>,<img>等. 当我们在开发React Native时,我们不能使用HTML元素,但 ...
- [Math] A love of late toward Mathematics - how to learn it?
Link: https://www.zhihu.com/question/19556658/answer/26950430 王小龙 ,数学,计算机视觉,图形图像处理 数学系博士怒答! 我想大家 ...
- Java泛型数组
文章来自http://blog.csdn.net/orzlzro/article/details/7017435 Java 不支持泛型数组.也就是说, List<String>[] ls ...
- Linux下修改PATH路径
1.#PATH=$PATH:/opt/lamp/mysql/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profi ...
- ok6410 android driver(6)
This is a short essay about the mistakes in compiling ok6410 android-2.3 source codes. If there is n ...
- 2015年百度之星初赛(1) --- B 找连续数
找连续数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 重构第29天 去除中间人对象(Remove Middle Man)
理解:本文中的”去除中间人对象”是指把 在中间关联而不起任何其他作用的类移除,让有关系的两个类直接进行交互. 详解:有些时候在我们的代码会存在一些”幽灵类“,设计模式大师Martin Fowler称它 ...
- 使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序
在 Linux 上开发 C/C++ 程序,或许你会直接(本机或远端)登入 Linux,打开编辑器写完代码后,就用 gcc/g++ 来编译,遇到要除错(debug)的时候,则会选择使用 gdb 来进行除 ...