iOS开发之App 开发者应该知道的 cookie 和 session
白羽 2018-07-16 来源 :网络 阅读 3102 评论 0

摘要:本文将带你了解iOS开发之App 开发者应该知道的 cookie 和 session,希望本文对大家学IOS有所帮助。




现在的移动端的 App 已经基本被 Android 和 iOS 两者瓜分天下,我们知道: Android 应用目前使用 Android/Kotlin 开发,iOS 应用使用 Object-C / Swift 开发。它们的共同点都是调用手机原生组件,这样的方式能充分利用手机原有性能。无论从界面美观性方面,还是从使用流畅性方面,相比 React-Native 方式开发的应用都有很大的优势。它们的发展又同时在 PC 端之后,为了方便地对 PC 端页面进行兼容,都具有特定的组件用来加载网页: Andriod 中使用 WebView, iOS 中使用 UIWebView/WKWebView。所以作为移动端的开发者,对传统网页的前端请求/后台响应的实现流程,需要有基本了解。
我们知道一个完整的请求流程包括请求/响应两个过程:



请求/响应

第一步 PC 端发送请求,通过请求行、请求头和请求体来发送详细的请求;第二步服务器收到对请求进行处理,根据请求的具体内容来响应。在这样的 PC 端和服务端对话中,服务器想要管理会话,需要解决以下两个问题:
1 如何标识不同的 PC ?
2 如何标识服务端的不同请求?
问题 1 是为了识别客户端。假如为会话的客户端定义了 ID 身份标识,那么服务器就能对该客户端进行个性化服务。这就像一个人去一家新的理发厅理发,那么理发厅开始时只能按照对待新人的既定流程提供服务:比如 “极力的推荐办卡”、“询问你喜欢哪种发型” 等。但是如果你成为了该理发店的 VIP ,拥有了会员卡 (有了身份标识),那么该理发店就能根据对你的服务记录来提供服务,比如推荐你喜欢的发型、询问你对上次理发的感受等。
实际网络请求中解决的方式和上面的流程很相似,通过 cookie 来作为标识客户端的 ID 。第一次网络请求会话过程中,服务器端定义标识客户端的 cookie ,返回给客户端并存放在客户端的缓存中。客户端再次发送请求时,会把自身的 cookie 传递给服务器,被服务器识别后就能定制化提供响应。比如我们浏览论坛时常常看到的上一次浏览时间、还有在购物网站看到的历史浏览记录等,都是基于 cookie 来实现。下面是通过 google 开发者工具在访问简书时生成的 cookie :





 cookie 

cookie 具有以下特点:
1 具有有效期, 就像理发卡里面的余额,过期就失效了;
2 同一个请求也可以设置多个 cookie ,类似一个人可以在一家理发店办理
多个 VIP,来享受不同的服务类型;
3 同一个 PC 端可以有不同的 cookie,来对应不同的服务器;
问题 2 中服务端通过 session 来实现区别不同的网络请求。就像一个人去理发店后,店长(服务器)安排一个理发师(网络请求)来为他服务。所以 session 和 cookie 一一对应,二者都是有服务端创建、定义。不同的是 session 存放在服务端,而 cookie 由服务端创建后存储在客户端,使用 session 同样能达到 cookie 实现的效果。存放在
服务端的 session 能够避免信息存储在客户端后被用户手动清除的问题,但是从另一方面来说,也增加了服务端的存储压力。
综上,cookie / session 是一个网络请求中相互对应的标识符。cookie 用在客户端,session 存储在服务端。利用 cookie / session 服务端能实现对一个网络请求的定制响应。
可以利用 IDEA 来模拟一个 PC 端网页请求/响应的流程。需要以下环境:
1  Tomcat 服务器;
2 以 Java Servlet 作为后台服务程序;
3 IntelliJ IDEA 作为 IDE ;
如果不知道如何用 IntelliJ IDEA 配置 Tomcat 和 Java Servlet ,请参考  


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 3 不喜欢 | 0
看完这篇文章有何感觉?已经有3人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved