WebView设置Cookie
2017-08-21 20:21
148 查看
HTTP Cookie
HTTP Cookie(也叫Web cookie或者浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器上的一块数据,它会在浏览器下一次发起请求时被携带并发送到服务器上。比较经典的,可以它用来确定两次请求是否来自于同一个浏览器,从而能够确认和保持用户的登录状态。Cookie的使用使得基于无状态的HTTP协议上记录稳定的状态信息成为了可能。格式
从概念上我们不难发现HTTP Cookie是一种需要服务端和客户端相互配合才能发挥作用的技术。服务器使用Set-Cookie响应头部向用户代理(一般指浏览器)发送Cookie信息。一个简单的Cookie可能像这样:
Set-Cookie: <cookie名称>=<cookie值>
服务器告诉客户端要保存Cookie信息(服务端程序可以是PHP、Node.js、Python或者Ruby on Rails等语言写的), 响应的数据里面应该包含Set-Cookie头,浏览器收到之后会将Cookie保存。
HTTP/1.0 200 OK Content-type: text/html Set-Cookie: yummy_cookie=choco Set-Cookie: tasty_cookie=strawberry [页面内容]
现在,对该服务器发起的每一次新的请求,浏览器都会将之前保存的Cookie信息通过Cookie请求头发送给服务器。
GET /sample_page.html HTTP/1.1 Host: www.example.org Cookie: yummy_cookie=choco; tasty_cookie=strawberry
Set-Cookie语法大全
下面的代码展示了Set-Cookie会使用到的所有参数, 参数含义见https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Set-CookieSet-Cookie: <cookie-name>=<cookie-value> Set-Cookie: <cookie-name>=<cookie-value>; Expires=<date> Set-Cookie: <cookie-name>=<cookie-value>; Max-Age=<non-zero-digit> Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value> Set-Cookie: <cookie-name>=<cookie-value>; Path=<path-value> Set-Cookie: <cookie-name>=<cookie-value>; Secure Set-Cookie: <cookie-name>=<cookie-value>; HttpOnly Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Strict Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Lax // Multiple directives are also possible, for example: Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>; Secure; HttpOnly
注意事项
HttpOnly 可选设置了 HttpOnly 属性的 cookie 不能使用 JavaScript 经由 Document.cookie 属性、XMLHttpRequest 和 Request APIs 进行访问,以防范跨站脚本攻击(XSS)
第三方cookie
默认情况下,Internet Explorer只允许第三方cookie在P3P“CP”(紧凑策略)字段的陪同下进行, 参见https://grack.com/blog/2010/01/06/3rd-party-cookies-dom-storage-and-privacy/,https://en.wikipedia.org/wiki/HTTP_cookie
Android中通过WebView设置Cookie
CookieManager cookieManager = CookieManager.getInstance(); // cookie是一个格式正确拼接好的cookie字符串, //如id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly cookieManager.setCookie(url, cookie);
本文内容基本摘抄自https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookies,记录一下
相关文章推荐
- Android WebView Cookie的相关设置和自定义错误页面加载
- js与oc交互以及cookie设置 UIWebView与WKWebview兼容
- webView怎么保存设置Cookie
- android webview里设置cookie
- Android WebView设置Cookie
- 通过CookieManager给WebView设置Cookie
- 【android-Webview】设置多个cookie,实现webview中保存登录信息
- js与oc交互以及cookie设置 UIWebView与WKWebview兼容
- webView中设置cookie无效
- OkHttpClient设置Cookie到WebView
- 关于android webview 设置cookie的问题
- iOS 设置webView cookie
- Android Okhttp框架webView设置Cookie无效问题
- webView怎么保存设置Cookie
- webview cookie设置
- android webview 设置 Cookie
- 在Android的WebView中给一级域名设置cookie
- 用Okhttp框架登录之后的Cookie设置到webView中
- webView设置Cookie
- ndroid webview里设置cookie