WKWebView中cookie方案。
在http超文本传输应用层协议中Cookie是非常重要的角色。http是无状态协议不具有记录状态的特性即http不会记录之前的访问情况来处理下次请求,在很多涉及账号的网页中,页面需要根据是否已登录的状态来显示不同内容。为了避免每次访问都要重复登录,可以在第一次登录完成后将登录信息写入cookie保存,添加到之后的其他请求中,补充解决http不能记录状态的问题。从开发者层面说,cookie本质是包含了一系列key-value对的数组(外层为数组元素为词典(次级key-value对))。
客户端第一次向服务器发送请求的时候,没有cookie,服务器收到后,会生成可以表示客户端身份的cookie,服务器将cookie封装到响应包的头部的set-cookie字段,返回给客户端,客户端根据set-cookie的内容设置cookie,并在之后的请求中带上cookie内容,这样服务器就能识别到这个客户端了。
关于WKWebView
本文对WKWebView中的cookie问题做出一些总结,不会详细说明WKWebView的API的协议的使用。WKWebView是在iOS8后UIWebView替代品,具有低内存(实际是开启另外进程),与Safari具有相同的JavaScript引擎,高效的app与web的通信数据转移(注入JavaScript脚本,messageHandler回调JavaScript方法)等。
Starting in iOS 8.0 and OS X 10.10, use WKWebView to a
WKWebView之cookie分析
于 2020-06-17 19:50:11 首次发布
本文探讨了WKWebView在处理cookie时遇到的问题及其解决方案。WKWebView不同于UIWebView,它不会自动将NSHTTPCookieStorage中的cookie添加到请求中。文章列举了三种解决策略:1) 在loadRequest前手动设置请求头;2) 使用document.cookie设置同域页面的cookie;3) 通过decidePolicyForNavigationAction回调拦截并添加cookie。每个方案都有其局限性,如无法处理跨域或特定类型的请求。
摘要由CSDN通过智能技术生成