Android 开发经验分享:挺重要的网络基础

本文分享了Android开发中的网络基础知识,包括Cookie的使用,解决WebView中Cookie问题的技巧,Https的安全机制,Http 2.0的改进,以及TCP的三次握手、四次挥手和滑动窗口协议。此外,还提及了流量控制和拥塞控制的重要性。
摘要由CSDN通过智能技术生成

四、Cookie

上面说了Http协议是无状态的,而Cookie就是用来在本地缓存记住一些状态的,一个Cookie一般都包含domin(所属域)、path、Expires(过期时间)等几个属性。服务端可以通过在响应头里的set-cookies来将状态写入客户端的Cookie里。下次客户端发起请求时可以将Cookie带上。

Android开发中遇到的问题及解决:

说起Cookie,一般如果平常只是做App开发,比较不经常遇到,但是如果是涉及到WebView的需求,则有可能会遇到。

下面就说一下我在项目里遇到过的一个关于WebView Cookie的揪心往事:需求是这样的,加载的WebView中的H5页面需要是已登录状态的,所以我们需要在原生页面登录后,手动将ticket写入WebView的Cookie,之后WebView里加载的H5页面带着Cookie里的ticket给服务端验证通过就好了。

但是遇到一个问题:通过Chrome inspect调试WebView,手动写的Cookie确实是已经写进去了,但是发 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 起请求的时候,Cookie就是没有带上,导致请求验证失败,之后通过排查,是WebView的属性默认关闭引起,通过下面的代码设置打开即可:

CookieManager cookieManager = CookieManager.getInstance();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

cookieManager.setAcceptThirdPartyCookies(mWebView, true);

} else {

cookieManager.setAcceptCookie(true);

}

五、Https

我们都知道Https保证了我们数据传输的安全,Https=Http+Ssl,之所以能保证安全主要的原理就是利用了非对称加密算法,平常用的对称加密算法之所以不安全,是因为双方是用统一的密匙进行加密解密的,只要双方任意一方泄漏了密匙,那么其他人就可以利用密匙解密数据。

而非对称加密算法之所以能实现安全传输的核心精华就是:公钥加密的信息只能用私钥解开,私钥加密的信息只能被公钥解开。

1.简述非对称加密算法为什么安全:

服务端申请CA机构颁发的证书,则获取到了证书的公钥和私钥,私钥只有服务器端自己知道,而公钥可以告知其他人,如可以把公钥传给客户端,这样客户端通过服务端传来的公钥来加密自己传输的数据,而服务端利用私钥就可以解密这个数据了。由于客户端这个用公钥加密的数据只有私钥能解密,而这个私钥只有服务端有,所以数据传输就安全了。

上面只是简单说了一下非对称加密算法是如何保证数据安全的,实际上Https的工作过程远比这要复杂(篇幅限制这里就不细说了,网上有很多相关文章):

一个是客户端还需要验证服务端传来的CA证书的合法性、有效性,因为存在传输过程CA证书被人调包的风险,涉及到客户端如何验证服务器证书的合法性的问题,保证通信双方的身份合法。

另一个是非对称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值