??xml version="1.0" encoding="utf-8" standalone="yes"?>网络捕鱼游戏外挂http://www.oiklr.tw/misc专注于Java技?/description>zh-cnWed, 22 Jan 2020 04:33:51 GMTWed, 22 Jan 2020 04:33:51 GMT60史上最强Android保活思\Q深入剖析腾讯TIM的进E永生技?/title><link>http://www.oiklr.tw/jb2011/archive/2020/01/14/435035.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Tue, 14 Jan 2020 06:33:00 GMT</pubDate><guid>http://www.oiklr.tw/jb2011/archive/2020/01/14/435035.html</guid><wfw:comment>http://www.oiklr.tw/jb2011/comments/435035.html</wfw:comment><comments>http://www.oiklr.tw/jb2011/archive/2020/01/14/435035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.oiklr.tw/jb2011/comments/commentRss/435035.html</wfw:commentRss><trackback:ping>http://www.oiklr.tw/jb2011/services/trackbacks/435035.html</trackback:ping><description><![CDATA[     摘要: 1、引a随着Androidpȝ的不断升U,x通讯|技术群和社区里的IM和推送开发的E序员们Q对于进E保z这件事是越来越悲观Q必竟系l对各种保活黑科技的限制越来越多了Q想越pȝ的挚肘,隑ֺ来大。但保活qg事就?#8220;Ȁ?#8221;之后的余呻IL让hƲŞ不能Q想攑ּ又不甘心。那么,除了像上?020q了QAndroid后台保活q有戏吗Q看我如何优雅的实现Q》这L正经白名单方?..  <a href='http://www.oiklr.tw/jb2011/archive/2020/01/14/435035.html'>阅读全文</a><img src ="http://www.oiklr.tw/jb2011/aggbug/435035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.oiklr.tw/jb2011/" target="_blank">Jack Jiang</a> 2020-01-14 14:33 <a href="http://www.oiklr.tw/jb2011/archive/2020/01/14/435035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IM的扫码登录功能如何实玎ͼ一文搞懂主的扫码d技术原?/title><link>http://www.oiklr.tw/jb2011/archive/2020/01/08/435024.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Wed, 08 Jan 2020 05:39:00 GMT</pubDate><guid>http://www.oiklr.tw/jb2011/archive/2020/01/08/435024.html</guid><wfw:comment>http://www.oiklr.tw/jb2011/comments/435024.html</wfw:comment><comments>http://www.oiklr.tw/jb2011/archive/2020/01/08/435024.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.oiklr.tw/jb2011/comments/commentRss/435024.html</wfw:commentRss><trackback:ping>http://www.oiklr.tw/jb2011/services/trackbacks/435024.html</trackback:ping><description><![CDATA[     摘要: 1、引a扫码dq个功能Q最早应该是微信的PC端开始搞Q虽然有点反人类的功能(不扫码也没别的方式登录)Q但不得不说q是很酷的。下面这张图Q不是IM开发者还是普通用P应该很熟悉: 于是Q搞IM产品的老板和品经理们Q从此又多了一个要抛给E序员们的需?#8212;—“Z么微信有扫一扫登录,而我们的没有Q?#8221;。好吧,每次只要是微信有的功能,IME序员们...  <a href='http://www.oiklr.tw/jb2011/archive/2020/01/08/435024.html'>阅读全文</a><img src ="http://www.oiklr.tw/jb2011/aggbug/435024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.oiklr.tw/jb2011/" target="_blank">Jack Jiang</a> 2020-01-08 13:39 <a href="http://www.oiklr.tw/jb2011/archive/2020/01/08/435024.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> IM“扫一扫”功能很好做Q看看微信“扫一扫识物”的完整技术实?/title><link>http://www.oiklr.tw/jb2011/archive/2020/01/02/435013.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Thu, 02 Jan 2020 12:54:00 GMT</pubDate><guid>http://www.oiklr.tw/jb2011/archive/2020/01/02/435013.html</guid><wfw:comment>http://www.oiklr.tw/jb2011/comments/435013.html</wfw:comment><comments>http://www.oiklr.tw/jb2011/archive/2020/01/02/435013.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.oiklr.tw/jb2011/comments/commentRss/435013.html</wfw:commentRss><trackback:ping>http://www.oiklr.tw/jb2011/services/trackbacks/435013.html</trackback:ping><description><![CDATA[     摘要: 本文p讯WXG应用研究员breezecheng原创发表于公众号“腾讯技术工E?#8221;Q原?#8220;微信「扫一扫识物?的背后技术揭U?#8221;。一、引a现在市面上主的Ud端IM应用于都?#8220;扫一?#8221;功能Q看h好像也就能扫一扫加好友、加,但实际上作ؓ一个IM产品的重要信息入口,“扫一?#8221;功能也可以很强大?#9650;...  <a href='http://www.oiklr.tw/jb2011/archive/2020/01/02/435013.html'>阅读全文</a><img src ="http://www.oiklr.tw/jb2011/aggbug/435013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.oiklr.tw/jb2011/" target="_blank">Jack Jiang</a> 2020-01-02 20:54 <a href="http://www.oiklr.tw/jb2011/archive/2020/01/02/435013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 2020q了QAndroid后台保活q有戏吗Q看我如何优雅的实现Q?/title><link>http://www.oiklr.tw/jb2011/archive/2019/12/27/434996.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Fri, 27 Dec 2019 06:51:00 GMT</pubDate><guid>http://www.oiklr.tw/jb2011/archive/2019/12/27/434996.html</guid><wfw:comment>http://www.oiklr.tw/jb2011/comments/434996.html</wfw:comment><comments>http://www.oiklr.tw/jb2011/archive/2019/12/27/434996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.oiklr.tw/jb2011/comments/commentRss/434996.html</wfw:commentRss><trackback:ping>http://www.oiklr.tw/jb2011/services/trackbacks/434996.html</trackback:ping><description><![CDATA[<h1>1、引a</h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">对于Ud端IM应用和消息推送应用的开发者来_Android后台保活qg事是再熟悉不q了?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">自从Android PQ即Android 8.0Q出C后,Android已经从系l层面将后台保活q条路给堉|了(详见Q?a href="http://www.52im.net/thread-1832-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Android P正式版即到来:后台应用保活、消息推送的真正噩梦</a>》)Q曾今那些层ZIL保活黑科技能用的也来少了(详见Q?a href="http://www.52im.net/thread-2176-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">全面盘点当前Android后台保活Ҏ的真实运行效果(截止2019q前Q?/a>》。虽然可以自已对接厂商的ROOMU推送通道Q但一斚w各厂商的推送接口都不一P而且同一厂商不同的系l版本间也存在推送接口的兼容性问题)Q很不方ѝ另一斚w要一家家引入各自的推送服务SDK包会让APP变的很大Q这让APP的下载变的很不友好?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">MQAndroid应用的后Czd某些场景下,q是有持l的需求。除了之前那些耳熟能详的保z黑U技以外Q在Android 9.0Q甚至Android 10Q时代,我们q有哪些保活Ҏ可以用?那么Q请跟着本文作者的思\Q看看更优雅的后Czd现方法吧?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">Q本文同步发布于Q?a href="http://www.52im.net/thread-2881-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">http://www.52im.net/thread-2881-1-1.html</a>Q?/p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div> </div><div data-width="486" data-height="313"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191227144558127-2034727322.jpg" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><h1>2、关于作?/h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">|名NanBoxQ毕业于华中U技大学Q现?悦跑圈APP”高Android开发工E师。主要负责公?Android 目Q核心模块的开发。涉?GPS 定位、地图、图片编辑等功能。独立开发了手表应用目?在项目中应入?Flutter 跨^台开发技术,实现了原生和 Flutter 的؜合开发?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">本文作者乐于分享,qx会写技术文章ƈ分n在多个^収ͼ是掘金专栏作者的一员,文章总阅读量过 10 万。在 <a href="https://github.com/NanBox" target="_blank" style="color: #1d58d1; text-decoration-line: none;">GitHub</a> 上有多个开源项目,多次在团队内部进行技术分享。是 Android ?Flutter 官方中文文档译者?/p><h1>3、相x?/h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>如果你想详细了解目前Androidq_上后CzL术的挑战Q请阅读Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1832-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Android P正式版即到来:后台应用保活、消息推送的真正噩梦</a>》?/p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>如果你想回顾那些曾今出现的Android保活黑科技Q以下文章值得好好读读Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2176-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">全面盘点当前Android后台保活Ҏ的真实运行效果(截止2019q前Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1135-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">应用保活l极ȝ(一)QAndroid6.0以下的双q程守护保活实践</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1138-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">应用保活l极ȝ(?QAndroid6.0及以上的保活实践(q程防杀?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1140-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">应用保活l极ȝ(?QAndroid6.0及以上的保活实践(被杀复活?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-438-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Androidq程保活详解Q一文章解决你的所有疑?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-341-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Android端消息推送ȝQ实现原理、心跳保zR遇到的问题{?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-771-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">深入的聊聊Android消息推送这件小?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-281-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">ZZTCP协议的移动端IM仍然需要心跳保zLӞ</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-210-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信团队原创分nQAndroid版微信后Czd战分?q程保活?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2744-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">融云技术分享:融云安卓端IM产品的网l链路保zL术实?/a>?/p></blockquote><h1>4、Android保活现状</h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">我们知道QAndroid pȝ会存在杀后台q程的情况,q且随着pȝ版本的更斎ͼ杀q程的力度还有越来越大的势Q见Q?a href="http://www.52im.net/thread-1832-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Android P正式版即到来:后台应用保活、消息推送的真正噩梦</a>》)?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">pȝq种做法本n出发Ҏ好的Q因为可以节省内存,降低功耗,也避免了一些流氓行为?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">但有一部分应用Q应用本w的使用场景需要在后台q行Q用户也是愿意让它在后台q行的,比如跑步cd用、一些懒得对接厂商推送通道的IM应用、消息推送资讯类应用{?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">一斚w氓软g用各U流氓手D进行保z,另一斚wpȝ加大杀后台的力度,D我们一些真正需要在后台q行的应用被误杀Q苦不堪a?/p><h1>5、优雅的保活Q?/h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">Z做到保活Q出C不少「黑U技」,比如 1 个像素的 ActivityQ播放无声音频,双进E互相守护等Q可以读读这个系列:?a href="http://www.52im.net/thread-1135-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">应用保活l极ȝ(一)QAndroid6.0以下的双q程守护保活实践</a>》、?a href="http://www.52im.net/thread-1138-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">应用保活l极ȝ(?QAndroid6.0及以上的保活实践(q程防杀?</a>》、?a href="http://www.52im.net/thread-1140-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">应用保活l极ȝ(?QAndroid6.0及以上的保活实践(被杀复活?</a>》)?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">q些做法可以说是很流氓了Q甚至破坏了 Android 的生态,好在随着 Android pȝ版本的更斎ͼq些非常规的保活手段很多都已失效了?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">对于那些实需要在后台q行的应用,我们如何做到优雅的保zdQ?/p><h1>6、加入后台运行白名单Q可以优雅的实现保活</h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">?Android 6.0 开始,pȝZ省电增加了休眠模式,pȝ待机一D|间后Q会杀d台正在运行的q程。但pȝ会有一个后台运行白名单Q白名单里的应用不会受到媄响,在原生系l下Q通过Q「设|?- 「电池?- 「电池优化?- 「未优化应用」,可以看到q个白名单?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>通常会看C面这两位Q?nbsp;</strong></p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div data-width="450" data-height="295"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191227144629648-1046597679.jpg" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">下次被品说?nbsp;XXX 都可以保z,Z么我们不行!」的时候,你就知道怎么怼回M。大厂通过和手机厂商的合作Q将自己的应用默认加入到白名单中。如果你在一个能谈成q种合作的大厂,也就不用往下看了?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">好在pȝq没有抛弃我们,允许我们甌把应用加入白名单?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">首先Q在 AndroidManifest.xml 文g中配|一下权限:</p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;"><uses-permissionandroid:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/></p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>可以通过以下ҎQ判断我们的应用是否在白名单中:</strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">@RequiresApi(api = Build.VERSION_CODES.M)</p><p style="margin-top: 10px; margin-bottom: 10px;">private boolean isIgnoringBatteryOptimizations() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    boolean isIgnoring = false;</p><p style="margin-top: 10px; margin-bottom: 10px;">    PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);</p><p style="margin-top: 10px; margin-bottom: 10px;">    if(powerManager != null) {</p><p style="margin-top: 10px; margin-bottom: 10px;">        isIgnoring = powerManager.isIgnoringBatteryOptimizations(getPackageName());</p><p style="margin-top: 10px; margin-bottom: 10px;">    }</p><p style="margin-top: 10px; margin-bottom: 10px;">    return isIgnoring;</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>如果不在白名单中Q可以通过以下代码甌加入白名单:</strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">@RequiresApi(api = Build.VERSION_CODES.M)</p><p style="margin-top: 10px; margin-bottom: 10px;">public void requestIgnoreBatteryOptimizations() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    try{</p><p style="margin-top: 10px; margin-bottom: 10px;">        Intent intent = newIntent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);</p><p style="margin-top: 10px; margin-bottom: 10px;">        intent.setData(Uri.parse("package:"+ getPackageName()));</p><p style="margin-top: 10px; margin-bottom: 10px;">        startActivity(intent);</p><p style="margin-top: 10px; margin-bottom: 10px;">    } catch(Exception e) {</p><p style="margin-top: 10px; margin-bottom: 10px;">        e.printStackTrace();</p><p style="margin-top: 10px; margin-bottom: 10px;">    }</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>甌Ӟ应用上会出现q样一个窗口:</strong></p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div data-width="450" data-height="278"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191227144649758-1876519394.jpg" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">可以看到Q这个系l弹H会有媄响电池箋航的提醒Q所以如果想让用L允许Q必要有相关的说明。如果要判断用户是否点击了允许,可以在申L时候调?startActivityForResultQ在 onActivityResult 里再判断一ơ是否在白名单中?/p><h1>7、加入后台运行白名单的多厂商适配Ҏ</h1><h2>7.1 基本说明</h2><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">Android 开发的一个难点在于,各大手机厂商对原生系l进行了不同的定ӞD我们需要进行不同的适配Q后台管理就是一个很好的体现。几乎各个厂商都有自q后台理Q就应用加入了后台q行白名单,仍然可能会被厂商自己的后台管理干掉?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">如果能把应用加入厂商pȝ的后台管理白名单Q可以进一步降低进E被杀的概率。不同的厂商在不同的地方q行讄Q一般是在各自的「手机管家」,但更隄是,q同一个厂商的pȝQ不同的版本也可能是在不同地方设|?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">最理想的做法是Q我们根据不同手机,甚至是不同的pȝ版本Q给用户呈现一个图文操作步骤,q且提供一个按钮,直接跌{到指定页面进行设|。但需要对每个厂商每个版本q行适配Q工作量是比较大的。我使用真机试了大部分L Android 厂商的手机后Q整理出了部分手机的相关资料?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>首先我们可以定义q样两个ҎQ?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">/**</p><p style="margin-top: 10px; margin-bottom: 10px;"> * 跌{到指定应用的首页</p><p style="margin-top: 10px; margin-bottom: 10px;"> */</p><p style="margin-top: 10px; margin-bottom: 10px;">private void showActivity(@NonNull String packageName) {</p><p style="margin-top: 10px; margin-bottom: 10px;">    Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);</p><p style="margin-top: 10px; margin-bottom: 10px;">    startActivity(intent);</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p><p style="margin-top: 10px; margin-bottom: 10px;"> </p><p style="margin-top: 10px; margin-bottom: 10px;">/**</p><p style="margin-top: 10px; margin-bottom: 10px;"> * 跌{到指定应用的指定面</p><p style="margin-top: 10px; margin-bottom: 10px;"> */</p><p style="margin-top: 10px; margin-bottom: 10px;">private void showActivity(@NonNull String packageName, @NonNull String activityDir) {</p><p style="margin-top: 10px; margin-bottom: 10px;">    Intent intent = new Intent();</p><p style="margin-top: 10px; margin-bottom: 10px;">    intent.setComponent(newComponentName(packageName, activityDir));</p><p style="margin-top: 10px; margin-bottom: 10px;">    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);</p><p style="margin-top: 10px; margin-bottom: 10px;">    startActivity(intent);</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">以下是部分手机的厂商判断Q蟩转方法及对应讄步骤Q蟩转方法不保证在所有版本上都能成功跌{Q都需要加 try catch?/p><h2>7.2 华ؓ</h2><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>厂商判断Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">public boolean isHuawei() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    if(Build.BRAND == null) {</p><p style="margin-top: 10px; margin-bottom: 10px;">        return false;</p><p style="margin-top: 10px; margin-bottom: 10px;">    } else{</p><p style="margin-top: 10px; margin-bottom: 10px;">        return Build.BRAND.toLowerCase().equals("huawei") || Build.BRAND.toLowerCase().equals("honor");</p><p style="margin-top: 10px; margin-bottom: 10px;">    }</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>跌{华ؓ手机家的启动管理页Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">private void goHuaweiSetting() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    try{</p><p style="margin-top: 10px; margin-bottom: 10px;">        showActivity("com.huawei.systemmanager",</p><p style="margin-top: 10px; margin-bottom: 10px;">            "com.huawei.systemmanager.startupmgr.ui.StartupNormalAppListActivity");</p><p style="margin-top: 10px; margin-bottom: 10px;">    } catch(Exception e) {</p><p style="margin-top: 10px; margin-bottom: 10px;">        showActivity("com.huawei.systemmanager",</p><p style="margin-top: 10px; margin-bottom: 10px;">            "com.huawei.systemmanager.optimize.bootstart.BootStartActivity");</p><p style="margin-top: 10px; margin-bottom: 10px;">    }</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>操作步骤Q?/strong><em>应用启动理 -> 关闭应用开?-> 打开允许自启?/em>?/p><h2>7.3 米</h2><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>厂商判断Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">public static boolean isXiaomi() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    return Build.BRAND != null&& Build.BRAND.toLowerCase().equals("xiaomi");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>跌{米安全中心的自启动理面Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">private void goXiaomiSetting() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    showActivity("com.miui.securitycenter",</p><p style="margin-top: 10px; margin-bottom: 10px;">        "com.miui.permcenter.autostart.AutoStartManagementActivity");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>操作步骤Q?/strong><em>授权理 -> 自启动管?-> 允许应用自启?/em>?/p><h2>7.4 OPPO</h2><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>厂商判断Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">public static boolean isOPPO() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    return Build.BRAND != null&& Build.BRAND.toLowerCase().equals("oppo");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>跌{ OPPO 手机家Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">private void goOPPOSetting() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    try{</p><p style="margin-top: 10px; margin-bottom: 10px;">        showActivity("com.coloros.phonemanager");</p><p style="margin-top: 10px; margin-bottom: 10px;">    } catch(Exception e1) {</p><p style="margin-top: 10px; margin-bottom: 10px;">        try{</p><p style="margin-top: 10px; margin-bottom: 10px;">            showActivity("com.oppo.safe");</p><p style="margin-top: 10px; margin-bottom: 10px;">        } catch(Exception e2) {</p><p style="margin-top: 10px; margin-bottom: 10px;">            try{</p><p style="margin-top: 10px; margin-bottom: 10px;">                showActivity("com.coloros.oppoguardelf");</p><p style="margin-top: 10px; margin-bottom: 10px;">            } catch(Exception e3) {</p><p style="margin-top: 10px; margin-bottom: 10px;">                showActivity("com.coloros.safecenter");</p><p style="margin-top: 10px; margin-bottom: 10px;">            }</p><p style="margin-top: 10px; margin-bottom: 10px;">        }</p><p style="margin-top: 10px; margin-bottom: 10px;">    }</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>操作步骤Q?/strong><em>权限隐私 -> 自启动管?-> 允许应用自启?/em>?/p><h2>7.5 VIVO</h2><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>厂商判断Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">public static boolean isVIVO() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    return Build.BRAND != null&& Build.BRAND.toLowerCase().equals("vivo");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>跌{ VIVO 手机家Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">private void goVIVOSetting() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    showActivity("com.iqoo.secure");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>操作步骤Q?/strong><em>权限理 -> 自启?-> 允许应用自启?/em>?/p><h2>7.6 族</h2><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>厂商判断Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">public static boolean isMeizu() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    return Build.BRAND != null&& Build.BRAND.toLowerCase().equals("meizu");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>跌{族手机家Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">private void goMeizuSetting() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    showActivity("com.meizu.safe");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>操作步骤Q?/strong><em>权限理 -> 后台理 -> 点击应用 -> 允许后台q行</em>?/p><h2>7.7 三星</h2><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>厂商判断Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">public static boolean isSamsung() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    return Build.BRAND != null&& Build.BRAND.toLowerCase().equals("samsung");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>跌{三星理器:</strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">private void goSamsungSetting() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    try{</p><p style="margin-top: 10px; margin-bottom: 10px;">        showActivity("com.samsung.android.sm_cn");</p><p style="margin-top: 10px; margin-bottom: 10px;">    } catch(Exception e) {</p><p style="margin-top: 10px; margin-bottom: 10px;">        showActivity("com.samsung.android.sm");</p><p style="margin-top: 10px; margin-bottom: 10px;">    }</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>操作步骤Q?/strong><em>自动q行应用E序 -> 打开应用开?-> 甉|理 -> 未监视的应用E序 -> d应用</em>?/p><h2>7.8 乐视</h2><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>厂商判断Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">public static boolean isLeTV() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    return Build.BRAND != null&& Build.BRAND.toLowerCase().equals("letv");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>跌{乐视手机家Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">private void goLetvSetting() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    showActivity("com.letv.android.letvsafe",</p><p style="margin-top: 10px; margin-bottom: 10px;">        "com.letv.android.letvsafe.AutobootManageActivity");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>操作步骤Q?/strong><em>自启动管?-> 允许应用自启?/em>?/p><h2>7.9 锤子</h2><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>厂商判断Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">public static boolean isSmartisan() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    return Build.BRAND != null&& Build.BRAND.toLowerCase().equals("smartisan");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>跌{手机理Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">private void goSmartisanSetting() {</p><p style="margin-top: 10px; margin-bottom: 10px;">    showActivity("com.smartisanos.security");</p><p style="margin-top: 10px; margin-bottom: 10px;">}</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>操作步骤Q?/strong>权限理 -> 自启动权限管?-> 点击应用 -> 允许被系l启动?/p><h1>8、友商致敬?</h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">在之前做的跑步应用中Q我在设|里增加了一个权限设|页面,上面提到的讄攑֜q里面?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>最q发现友商某咚也跟进了,?1 是我们做的,?2 是某咚做的: </strong></p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div data-width="900" data-height="804"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191227144833834-518654767.jpg" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">某咚从设计、从我写的不够好的文案,甚至是我从十几台手机上一张一张截下来的图Q进行了全方位的致敬。感谢某咚的认可Q但最q在某个发布会上听到q么一句话Q在致敬的同Ӟ能不能说一句谢谢?</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">某咚的致敬,一斚w说明了目前确实存在进E容易被杀Q保z难度大的问题,另一斚w也说明了q种引导用户q行白名单设|的手段是有效的?/p><h1>附录Q更多相x术文?/h1><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1135-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">应用保活l极ȝ(一)QAndroid6.0以下的双q程守护保活实践</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1138-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">应用保活l极ȝ(?QAndroid6.0及以上的保活实践(q程防杀?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1140-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">应用保活l极ȝ(?QAndroid6.0及以上的保活实践(被杀复活?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-438-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Androidq程保活详解Q一文章解决你的所有疑?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-341-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Android端消息推送ȝQ实现原理、心跳保zR遇到的问题{?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-771-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">深入的聊聊Android消息推送这件小?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-281-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">ZZTCP协议的移动端IM仍然需要心跳保zLӞ</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-210-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信团队原创分nQAndroid版微信后Czd战分?q程保活?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-209-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信团队原创分nQAndroid版微信后Czd战分?|络保活?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-120-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ud端IM实践Q实现Android版微信的心蟩机制</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-121-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ud端IM实践QWhatsApp、Line、微信的心蟩{略分析</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1832-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Android P正式版即到来:后台应用保活、消息推送的真正噩梦</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2176-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">全面盘点当前Android后台保活Ҏ的真实运行效果(截止2019q前Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2697-1-1.html" target="_blank" style="color: #1d58d1;">一文读懂即旉讯应用中的|络心蟩包机Ӟ作用、原理、实现思\{?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2744-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">融云技术分享:融云安卓端IM产品的网l链路保zL术实?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2799-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">正确理解IM长连接的心蟩及重q机Ӟq动手实玎ͼ有完整IM源码Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2881-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">2020q了QAndroid后台保活q有戏吗Q看我如何优雅的实现Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">>> <a href="http://www.52im.net/forum.php%3Fmod%3Dcollection%26action%3Dview%26ctid%3D17" target="_blank" style="color: #1d58d1; text-decoration-line: none;">更多同类文章 ……</a></p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">Q本文同步发布于Q?a href="http://www.52im.net/thread-2881-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">http://www.52im.net/thread-2881-1-1.html</a>Q?/p><img src ="http://www.oiklr.tw/jb2011/aggbug/434996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.oiklr.tw/jb2011/" target="_blank">Jack Jiang</a> 2019-12-27 14:51 <a href="http://www.oiklr.tw/jb2011/archive/2019/12/27/434996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>P2P技术详??QP2P中的NATI越(打洞)Ҏ详解(q阶分析?http://www.oiklr.tw/jb2011/archive/2019/12/24/434985.htmlJack JiangJack JiangTue, 24 Dec 2019 03:25:00 GMThttp://www.oiklr.tw/jb2011/archive/2019/12/24/434985.htmlhttp://www.oiklr.tw/jb2011/comments/434985.htmlhttp://www.oiklr.tw/jb2011/archive/2019/12/24/434985.html#Feedback0http://www.oiklr.tw/jb2011/comments/commentRss/434985.htmlhttp://www.oiklr.tw/jb2011/services/trackbacks/434985.html阅读全文

Jack Jiang 2019-12-24 11:25 发表评论
]]>
微信团队分nQ极致优化,iOS版微信编译速度3倍提升的实践ȝhttp://www.oiklr.tw/jb2011/archive/2019/12/19/434974.htmlJack JiangJack JiangThu, 19 Dec 2019 12:22:00 GMThttp://www.oiklr.tw/jb2011/archive/2019/12/19/434974.htmlhttp://www.oiklr.tw/jb2011/comments/434974.htmlhttp://www.oiklr.tw/jb2011/archive/2019/12/19/434974.html#Feedback0http://www.oiklr.tw/jb2011/comments/commentRss/434974.htmlhttp://www.oiklr.tw/jb2011/services/trackbacks/434974.html阅读全文

Jack Jiang 2019-12-19 20:22 发表评论
]]>
史上最通俗Q彻底搞懂字Wؕ码问题的本质http://www.oiklr.tw/jb2011/archive/2019/12/17/434969.htmlJack JiangJack JiangTue, 17 Dec 2019 11:36:00 GMThttp://www.oiklr.tw/jb2011/archive/2019/12/17/434969.htmlhttp://www.oiklr.tw/jb2011/comments/434969.htmlhttp://www.oiklr.tw/jb2011/archive/2019/12/17/434969.html#Feedback0http://www.oiklr.tw/jb2011/comments/commentRss/434969.htmlhttp://www.oiklr.tw/jb2011/services/trackbacks/434969.html阅读全文

Jack Jiang 2019-12-17 19:36 发表评论
]]>
你知道,HTTPS用的是对U加密还是非对称加密Q?/title><link>http://www.oiklr.tw/jb2011/archive/2019/12/10/434947.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Tue, 10 Dec 2019 04:15:00 GMT</pubDate><guid>http://www.oiklr.tw/jb2011/archive/2019/12/10/434947.html</guid><wfw:comment>http://www.oiklr.tw/jb2011/comments/434947.html</wfw:comment><comments>http://www.oiklr.tw/jb2011/archive/2019/12/10/434947.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.oiklr.tw/jb2011/comments/commentRss/434947.html</wfw:commentRss><trackback:ping>http://www.oiklr.tw/jb2011/services/trackbacks/434947.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body" "="" style="margin-bottom: 20px; word-break: break-word; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><h1>1、引a</h1><p style="margin-top: 10px; margin-bottom: 10px;">随着互联|安全意识的普遍提高Q对安全要求E高的应用中QHTTPS的用是很常见的Q甚臛_1q前Q苹果公司就用HTTPS作ؓAPP上架Ҏ应用市场的先x件之一Q详见:?a href="http://www.52im.net/thread-664-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ҏ卛_强制实施 ATSQ你的APP准备好切换到HTTPS了吗Q?/a>》)?/p><p style="margin-top: 10px; margin-bottom: 10px;">所以,无论是即旉讯IMq是其它应用Q在|络安全意识增强的今天,很多场景下用HTTPS是肯定没错的。对于即旉讯IM的开发h员来_长连接用TLSq没疑问Q短q接用HTTPS也没问题Q但我想问你一个最基础的面视问题:HTTPS到底用的是对U加密还是非对称加密Q?/p><p style="margin-top: 10px; margin-bottom: 10px;">要回{这个问题,昄需要再梳理一下HTTPS的技术原理了Q本文将带你了解HTTPS到底用的是对U加密还是非对称加密Q以及具体又是怎么使用的?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>学习交流Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px;"><p style="margin-top: 10px; margin-bottom: 10px;">- x通讯/推送技术开发交?:<a href="https://shang.qq.com/wpa/qunwpa%3Fidkey%3Dd236d62403fd8aea8658a9cdf9c315e78af63d4321bb924ce5c66163350c2045" target="_blank" style="color: #1d58d1; text-decoration-line: none;">215477170</a> [推荐]</p><p style="margin-top: 10px; margin-bottom: 10px;">- Ud端IM开发入门文章:?a href="http://www.52im.net/thread-464-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">新手入门一就够:从零开发移动端IM</a>?/p></blockquote><p style="margin-top: 10px; margin-bottom: 10px;">Q本文同步发布于Q?a href="http://www.52im.net/thread-2866-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">http://www.52im.net/thread-2866-1-1.html</a>Q?/p><h1>2、相x?/h1><p style="margin-top: 10px; margin-bottom: 10px;"><strong>?要理解HTTPSQ须对HTTP协议有所了解Q以下文章可能是您需要的Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1677-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q深入浅出,全面理解HTTP协议</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1751-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">脑残式网l编E入??QHTTP协议必知必会的一些知?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2456-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">不ؓ人知的网l编E??Q从数据传输层深度解密HTTP</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1709-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">从HTTP/0.9到HTTP/2Q一文读懂HTTP协议的历史演变和设计思\</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1258-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">WebSocket详解Q四Q:刨根问底HTTP与WebSocket的关p?上篇)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1266-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">WebSocket详解Q五Q:刨根问底HTTP与WebSocket的关p?下篇)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2680-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">可能会搞怽的面试:你知道一个TCPq接上能发v多少个HTTPh吗?</a>?/p></blockquote><p style="margin-top: 10px; margin-bottom: 10px;"><strong>?x好的理解本文有关HTTPS的知识,一q以下HTTPS的基文章Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2027-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">一分钟理解 HTTPS 到底解决了什么问?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1890-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(七)Q如果这h理解HTTPSQ一就够了</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2446-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">一读懂HTTPSQ加密原理、安全逻辑、数字证书等</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-606-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">HTTPS时代已来Q打更C的HTTP服务了吗Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2172-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">图App的移动端DNS优化实践QHTTPSh耗时减小q半</a>?/p></blockquote><p style="margin-top: 10px; margin-bottom: 10px;"><strong>?本文是IM通讯安全知识pd文章中的W?,此系列ȝ录如下:</strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-216-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(一Q:正确地理解和使用Android端加密算?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-217-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(二)Q探讨组合加密算法在IM中的应用</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-219-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(三)Q常用加解密法与通讯安全讲解</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-312-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(四)Q实例分析Android中密钥硬~码的风?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-642-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(五)Q对U加密技术在Androidq_上的应用实践</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-653-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(六)Q非对称加密技术的原理与应用实?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1890-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(七)Q如果这h理解HTTPS原理Q一就够了</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2866-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(八)Q你知道QHTTPS用的是对U加密还是非对称加密Q?/a>》(本文Q?/p></blockquote><h1>3、HTTPS灵魂拷问</h1><p style="margin-top: 10px; margin-bottom: 10px;">随着 HTTPS 建站的成本下降,现在大部分的|站都已l开始用?HTTPS 协议。大安知道 HTTPS ?HTTP 安全Q也听说q与 HTTPS 协议相关的概忉| SSL 、非对称加密?CA证书{?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>但对于以下灵三拷问可能q不上了:</strong></p><ul style="margin-left: 30px; padding-left: 0px;"><li style="list-style-type: disc;">1Qؓ什么用?HTTPS 是安全的?</li><li style="list-style-type: disc;">2QHTTPS 的底层原理如何实玎ͼ</li><li style="list-style-type: disc;">3Q用?HTTPS ׃定安全吗Q?/li></ul><p style="margin-top: 10px; margin-bottom: 10px;">不用担心Q本文将在解{?#8220;HTTPS到底用的是对U加密还是非对称加密Q?#8221;的同时层层深入,从原理上?HTTPS 的安全性讲透,您也同时理解上q问题?/p><h1>4、HTTPS 的实现原?/h1><p style="margin-top: 10px; margin-bottom: 10px;">大家可能都听说过 HTTPS 协议之所以是安全的是因ؓ HTTPS 协议会对传输的数据进行加密,而加密过E是使用了非对称加密实现。但其实QHTTPS 在内容传输的加密上用的是对U加密,非对U加密只作用在证书验证阶Dc?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>HTTPS的整体过E分书验证和数据传输阶段Q具体的交互q程如下Q?nbsp;</strong></p><div><div><div data-width="800" data-height="777"><img src="https://upload-images.jianshu.io/upload_images/1500839-c716371c51031663.png" alt="" data-original-src="http://upload-images.jianshu.io/upload_images/1500839-c716371c51031663.png" data-original-width="800" data-original-height="777" data-original-format="image/png" data-original-filesize="49418" data-image-index="0" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px;"><strong>① 证书验证阶段Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px;"><p style="margin-top: 10px; margin-bottom: 10px;">1Q浏览器发v HTTPS hQ?/p><p style="margin-top: 10px; margin-bottom: 10px;">2Q服务端q回 HTTPS 证书Q?/p><p style="margin-top: 10px; margin-bottom: 10px;">3Q客L验证证书是否合法Q如果不合法则提C告警?/p></blockquote><p style="margin-top: 10px; margin-bottom: 10px;"><strong>② 数据传输阶段Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px;"><p style="margin-top: 10px; margin-bottom: 10px;">1Q当证书验证合法后,在本地生成随机数Q?/p><p style="margin-top: 10px; margin-bottom: 10px;">2Q通过公钥加密随机敎ͼq把加密后的随机C输到服务端;</p><p style="margin-top: 10px; margin-bottom: 10px;">3Q服务端通过U钥寚w机数q行解密Q?/p><p style="margin-top: 10px; margin-bottom: 10px;">4Q服务端通过客户端传入的随机数构造对U加密算法,对返回结果内容进行加密后传输?/p></blockquote><h1>5、ؓ什么数据传输是用对U加密?</h1><p style="margin-top: 10px; margin-bottom: 10px;">首先Q非对称加密的加解密效率是非怽的,?http 的应用场景中通常端与端之间存在大量的交互Q非对称加密的效率是无法接受的?/p><p style="margin-top: 10px; margin-bottom: 10px;">另外Q在 HTTPS 的场景中只有服务端保存了U钥Q一对公U钥只能实现单向的加解密Q所?nbsp;HTTPS 中内容传输加密采取的是对U加密,而不是非对称加密?/p><h1>6、ؓ什么需?CA 认证机构颁发证书Q?/h1><p style="margin-top: 10px; margin-bottom: 10px;">HTTP 协议被认Z安全是因Z输过E容易被监听者勾U监听、伪造服务器Q?HTTPS 协议主要解决的便是网l传输的安全性问题?/p><p style="margin-top: 10px; margin-bottom: 10px;">首先我们假设不存在认证机构,M人都可以制作证书Q这带来的安全风险便是经典的“中间人攻?#8221;问题?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>“中间人攻?#8221;的具体过E如下: </strong></p><div><div><div data-width="940" data-height="391"><img src="https://upload-images.jianshu.io/upload_images/1500839-59141bd36fe88cf4.png" alt="" data-original-src="http://upload-images.jianshu.io/upload_images/1500839-59141bd36fe88cf4.png" data-original-width="940" data-original-height="391" data-original-format="image/png" data-original-filesize="38679" data-image-index="1" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px;"><strong>如上图所以,q程原理如下Q?/strong></p><ul style="margin-left: 30px; padding-left: 0px;"><li style="list-style-type: disc;">1Q本地请求被劫持Q如DNS劫持{)Q所有请求均发送到中间人的服务器;</li><li style="list-style-type: disc;">2Q中间h服务器返回中间h自己的证书;</li><li style="list-style-type: disc;">3Q客L创徏随机敎ͼ通过中间书的公钥寚w机数加密后传送给中间人,然后凭随机数构造对U加密对传输内容q行加密传输Q?/li><li style="list-style-type: disc;">4Q中间h因ؓ拥有客户端的随机敎ͼ可以通过对称加密法q行内容解密Q?/li><li style="list-style-type: disc;">5Q中间h以客L的请求内容再向正规网站发赯求;</li><li style="list-style-type: disc;">6Q因Z间h与服务器的通信q程是合法的Q正规网站通过建立的安全通道q回加密后的数据Q?/li><li style="list-style-type: disc;">7Q中间h凭借与正规|站建立的对U加密算法对内容q行解密Q?/li><li style="list-style-type: disc;">8Q中间h通过与客L建立的对U加密算法对正规内容q回的数据进行加密传输;</li><li style="list-style-type: disc;">9Q客L通过与中间h建立的对U加密算法对q回l果数据q行解密?/li></ul><p style="margin-top: 10px; margin-bottom: 10px;">׃~少对证书的验证Q所以客L虽然发v的是 HTTPS hQ但客户端完全不知道自己的网l已被拦截,传输内容被中间h全部H取?/p><h1>7、浏览器是如何确?CA 证书的合法性?</h1><h2>7.1 证书包含什么信息?</h2><ul style="margin-left: 30px; padding-left: 0px;"><li style="list-style-type: disc;">1Q颁发机构信息;</li><li style="list-style-type: disc;">2Q公钥;</li><li style="list-style-type: disc;">3Q公怿息;</li><li style="list-style-type: disc;">4Q域名;</li><li style="list-style-type: disc;">5Q有效期Q?/li><li style="list-style-type: disc;">6Q指U;</li><li style="list-style-type: disc;">7Q?.....</li></ul><h2>7.2 证书的合法性依据是什么?</h2><ul style="margin-left: 30px; padding-left: 0px;"><li style="list-style-type: disc;">1Q首先:权威机构是要有认证的Q不是随便一个机构都有资格颁发证书,不然也不叫做权威机构Q?/li><li style="list-style-type: disc;">2Q另外:证书的可信性基于信dQ权威机构需要对光发的证书q行信用背书Q只要是权威机构生成的证书,我们p为是合法的?/li></ul><p style="margin-top: 10px; margin-bottom: 10px;">所以权威机构会对申误的信息q行审核Q不同等U的权威机构对审核的要求也不一P于是证书也分为免费的、便宜的和贵的?/p><h2>7.3 览器如何验证证书的合法性?</h2><p style="margin-top: 10px; margin-bottom: 10px;"><strong>览器发?HTTPS hӞ服务器会q回|站?SSL 证书Q浏览器需要对证书做以下验证:</strong></p><p style="margin-top: 10px; margin-bottom: 10px;">1Q验证域名、有效期{信息是否正:证书上都有包含这些信息,比较Ҏ完成验证Q?/p><p style="margin-top: 10px; margin-bottom: 10px;">2Q判断证书来源是否合法:每䆾{֏证书都可以根据验证链查找到对应的根证书,操作pȝ、浏览器会在本地存储权威机构的根证书Q利用本地根证书可以对对应机构签发证书完成来源验证(如下图所C)Q?nbsp;</p><div><div><div data-width="600" data-height="270"><img src="https://upload-images.jianshu.io/upload_images/1500839-d461f2e4d303a2ab.png" alt="" data-original-src="http://upload-images.jianshu.io/upload_images/1500839-d461f2e4d303a2ab.png" data-original-width="600" data-original-height="270" data-original-format="image/png" data-original-filesize="37516" data-image-index="2" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px;">3Q判断证书是否被改Q需要与 CA 服务器进行校验;</p><p style="margin-top: 10px; margin-bottom: 10px;">4Q判断证书是否已吊销Q通过CRLQCertificate Revocation List 证书注销列表Q和 OCSPQOnline Certificate Status Protocol 在线证书状态协议)实现Q其?OCSP 可用于第3步中以减与 CA 服务器的交互Q提高验证效率?/p><p style="margin-top: 10px; margin-bottom: 10px;">以上L一步都满的情况下览器才认ؓ证书是合法的?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>q里插一个我想了很久的但其实{案很简单的问题Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px;"><p style="margin-top: 10px; margin-bottom: 10px;">既然证书是公开的,如果要发起中间hdQ我在官|上下蝲一份证书作为我的服务器证书Q那客户端肯定会认同q个证书是合法的Q如何避免这U证书冒用的情况Q?/p><p style="margin-top: 10px; margin-bottom: 10px;">其实q就是非加密对称中公U钥的用处,虽然中间人可以得到证书,但私钥是无法获取的,一份公钥是不可能推出其对应的U钥Q中间h即拿到证书也无法伪装成合法服务端,因ؓ无法对客L传入的加密数据进行解密?/p></blockquote><h2>7.4 只有认证机构可以生成证书吗?</h2><p style="margin-top: 10px; margin-bottom: 10px;">如果需要浏览器不提C安全风险,那只能用认证机构签发的证书。但览器通常只是提示安全风险Qƈ不限制网站不能访问,所以从技术上谁都可以生成证书Q只要有证书可以完成网站的 HTTPS 传输?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>例如早期?12306 采用的便是手动安装私有证书的形式实现 HTTPS 讉KQ?nbsp;</strong></p><div><div><div data-width="695" data-height="289"><img src="https://upload-images.jianshu.io/upload_images/1500839-420543ebf3d0b08a.png" alt="" data-original-src="http://upload-images.jianshu.io/upload_images/1500839-420543ebf3d0b08a.png" data-original-width="695" data-original-height="289" data-original-format="image/png" data-original-filesize="52299" data-image-index="3" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><h1>8、本地随机数被窃取怎么办?</h1><p style="margin-top: 10px; margin-bottom: 10px;">证书验证是采用非对称加密实现Q但是传输过E是采用对称加密Q而其中对U加密算法中重要的随机数是由本地生成q且存储于本地的QHTTPS 如何保证随机C会被H取Q?/p><p style="margin-top: 10px; margin-bottom: 10px;">其实 HTTPS q不包含寚w机数的安全保证,HTTPS 保证的只是传输过E安全,而随机数存储于本圎ͼ本地的安全属于另一安全范畴Q应对的措施有安装杀毒Y件、反木马、浏览器升修复漏洞{?/p><h1>9、用?HTTPS 会被抓包吗?</h1><p style="margin-top: 10px; margin-bottom: 10px;">HTTPS 的数据是加密的,常规下抓包工具代理请求后抓到的包内容是加密状态,无法直接查看?/p><p style="margin-top: 10px; margin-bottom: 10px;">但是Q正如前文所_览器只会提C安全风险,如果用户授权仍然可以l箋讉K|站Q完成请求。因此,只要客户端是我们自己的终端,我们授权的情况下Q便可以l徏中间人网l,而抓包工具便是作Z间h的代理。通常 HTTPS 抓包工具的用方法是会生成一个证书,用户需要手动把证书安装到客L中,然后l端发v的所有请求通过该证书完成与抓包工具的交互,然后抓包工具再{发请求到服务器,最后把服务器返回的l果在控制台输出后再q回l终端,从而完成整个请求的闭环?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>既然 HTTPS 不能防抓包,?HTTPS 有什么意义?</strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px;"><p style="margin-top: 10px; margin-bottom: 10px;">HTTPS 可以防止用户在不知情的情况下通信链\被监听,对于d授信的抓包操作是不提供防护的Q因个场景用h已经寚w险知情。要防止被抓包,需要采用应用的安全防护,例如采用U有的对U加密,同时做好Ud端的防反~译加固Q防止本地算法被破解?/p></blockquote><h1>10、本文小l?/h1><p style="margin-top: 10px; margin-bottom: 10px;">以下用简短的Q&A形式q行全文ȝ?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>Q: HTTPS Z么安全?</strong></p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>A: </strong>因ؓ HTTPS 保证了传输安全,防止传输q程被监听、防止数据被H取Q可以确认网站的真实性?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>Q: HTTPS 的传输过E是怎样的?</strong></p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>A: </strong>客户端发?HTTPS hQ服务端q回证书Q客L对证书进行验证,验证通过后本地生成用于改造对U加密算法的随机敎ͼ通过证书中的公钥寚w机数q行加密传输到服务端Q服务端接收后通过U钥解密得到随机敎ͼ之后的数据交互通过对称加密法q行加解密?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>Q: Z么需要证书?</strong></p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>A: </strong>防止”中间?#8220;dQ同时可以ؓ|站提供w䆾证明?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>Q: 使用 HTTPS 会被抓包吗?</strong></p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>A: </strong>会被抓包QHTTPS 只防止用户在不知情的情况下通信被监听,如果用户d授信Q是可以构徏“中间?#8221;|络Q代理Y件可以对传输内容q行解密?/p><p style="margin-top: 10px; margin-bottom: 10px;">好了Q回归到本文标的问题Q我们来ȝ回顾一下?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>Q: HTTPS用的是对U加密还是非对称加密Q?/strong></p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>Q: </strong>HTTPS 在内容传输的加密上用的是对U加密,非对U加密只作用在证书验证阶Dc?/p><p style="margin-top: 10px; margin-bottom: 10px;"><strong>手 po 一张学习的q程图(点击查看大图Q:</strong></p><div><div><div data-width="1315" data-height="2286"><img src="https://upload-images.jianshu.io/upload_images/1500839-8bcd9e93efa3dee0.png" alt="" data-original-src="http://upload-images.jianshu.io/upload_images/1500839-8bcd9e93efa3dee0.png" data-original-width="1315" data-original-height="2286" data-original-format="image/png" data-original-filesize="125187" data-image-index="4" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><h1>附录Q更多有关IM安全的文?/h1><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-327-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">传输层安全协议SSL/TLS的Javaq_实现介和Demo演示</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-283-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">理论联系实际Q一套典型的IM通信协议设计详解Q含安全层设计)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-310-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信C代通信安全解决ҎQ基于TLS1.3的MMTLS详解</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-215-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">来自阉KOpenIMQ打造安全可靠即旉讯服务的技术实践分?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-763-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">q实旉视频聊天中端到端加密QE2EEQ的工作原理</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-764-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ud端安全通信的利?#8212;—端到端加密(E2EEQ技术详?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-793-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Web端即旉讯安全Q跨站点WebSocket劫持漏洞详解(含示例代?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-970-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">通俗易懂Q一掌握即旉讯的消息传输安全原?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1525-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q正理解HTTP短连接中的Cookie、Session和Token</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1604-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">快速读懂量子通信、量子加密技?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1890-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(七)Q如果这h理解HTTPS原理Q一就够了</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2027-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">一分钟理解 HTTPS 到底解决了什么问?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2446-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">一读懂HTTPSQ加密原理、安全逻辑、数字证书等</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2866-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯安全(八)Q你知道QHTTPS用的是对U加密还是非对称加密Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">>> <a href="http://www.52im.net/forum.php%3Fmod%3Dcollection%26action%3Dview%26ctid%3D6" target="_blank" style="color: #1d58d1; text-decoration-line: none;">更多同类文章 ……</a></p></blockquote><p style="margin-top: 10px; margin-bottom: 10px;">Q本文同步发布于Q?a href="http://www.52im.net/thread-2866-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">http://www.52im.net/thread-2866-1-1.html</a>Q?nbsp;</p></div><div id="MySignature" style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div id="AllanboltSignature"></div></div><img src ="http://www.oiklr.tw/jb2011/aggbug/434947.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.oiklr.tw/jb2011/" target="_blank">Jack Jiang</a> 2019-12-10 12:15 <a href="http://www.oiklr.tw/jb2011/archive/2019/12/10/434947.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IM开发基知识补课(?Q主移动端账号d方式的原理及设计思\http://www.oiklr.tw/jb2011/archive/2019/12/07/434944.htmlJack JiangJack JiangSat, 07 Dec 2019 11:38:00 GMThttp://www.oiklr.tw/jb2011/archive/2019/12/07/434944.htmlhttp://www.oiklr.tw/jb2011/comments/434944.htmlhttp://www.oiklr.tw/jb2011/archive/2019/12/07/434944.html#Feedback0http://www.oiklr.tw/jb2011/comments/commentRss/434944.htmlhttp://www.oiklr.tw/jb2011/services/trackbacks/434944.html1、引a

在即旉讯|经常能看到各种高大上的高ƈ发、分布式、高性能架构设计斚w的文章,qx大家参加的众多开发者大会,主题也都是各U高大上的话?#8212;—什?G啦、AI人工啦、什么阿里双11分分钟多万QPS高ƈ发等{?/p>

但实际上Q对于普通的开发者(包括IM开发h员)来说Q多数公司、多数团队也都是q着默默无闻、^淡无奇的产品开发,q没有那么多高ƈ发、高大上的事情可以做?/p>

拿一个IMpȝ来说Q无Z的架构设计考虑了多分布式、高吞吐、高可用Q所有这些事情只要落圎ͼ那编码的W一件事情就是要实现几乎所有信息系l都要面对的d——如何设计账号d功能Q?/p>

本文分享几U典型的Ud端̎L陆方式的技术原理,以及设计思\Q理解后Q完全可以快速实施于你的各种应用pȝQƈ不限于IMpȝQ中。本文阅d像主要ؓ刚入门的开发h员,L序老司Z嘴下留情哦?/p>

 

通过本篇文章Q?你可以学刎ͼ

1Q主̎L陋技术方案细节;

2Q相应的表设计;

3Q相应的程设计?/p>

通过本篇文章Q?你无法学刎ͼ

与其他原理性的文章一P本篇不涉及具体代码实现细节(对于E序员来_只要思\搞通,代码咋写都不会太烂,大家应该都有体会Q?/p>

学习交流Q?/p>

- x通讯/推送技术开发交?:215477170[推荐]

- Ud端IM开发入门文章:?a href="http://www.52im.net/thread-464-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">新手入门一就够:从零开发移动端IM?/p>

Q本文同步发布于Q?a href="http://www.52im.net/thread-2863-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">http://www.52im.net/thread-2863-1-1.htmlQ?/p>

2、IM开发干货系列文?/h1>

本文是系列文章中的第20,ȝ录如下:

?a href="http://www.52im.net/thread-294-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM消息送达保证机制实现(一)Q保证在U实时消息的可靠投?/a>?/p>

?a href="http://www.52im.net/thread-594-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM消息送达保证机制实现(?Q保证离U消息的可靠投?/a>?/p>

?a href="http://www.52im.net/thread-714-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">如何保证IM实时消息?#8220;时序?#8221;?#8220;一致?#8221;Q?/a>?/p>

?a href="http://www.52im.net/thread-715-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM单聊和群聊中的在U状态同步应该用“?#8221;q是“?#8221;Q?/a>?/p>

?a href="http://www.52im.net/thread-753-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM聊消息如此复杂Q如何保证不丢不重??/p>

?a href="http://www.52im.net/thread-783-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">一UAndroid端IM心蟩法的设计与实现探讨Q含样例代码Q?/a>?/p>

?a href="http://www.52im.net/thread-787-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ud端IMd时拉取数据如何作到省量Q?/a>?/p>

?a href="http://www.52im.net/thread-802-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">通俗易懂Q基于集的Ud端IM接入层负载均衡方案分?/a>?/p>

?a href="http://www.52im.net/thread-867-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">谈Ud端IM的多点登陆和消息漫游原理?/p>

?a href="http://www.52im.net/thread-1351-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(一)Q正理解前|HTTP SSO单点登陆接口的原?/a>?/p>

?a href="http://www.52im.net/thread-1356-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q如何设计大量图片文件的服务端存储架构??/p>

?a href="http://www.52im.net/thread-1366-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q快速理解服务端数据库读写分d理及实践?/p>

?a href="http://www.52im.net/thread-1525-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q正理解HTTP短连接中的Cookie、Session和Token?/p>

?a href="http://www.52im.net/thread-1611-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM聊消息的已d执功能该怎么实现Q?/a>?/p>

?a href="http://www.52im.net/thread-1616-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM聊消息I竟是存1?x散读)q是存多?x散写)Q?/a>?/p>

?a href="http://www.52im.net/thread-1979-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q通俗易懂Q正理解ƈ用好MQ消息队列?/p>

?a href="http://www.52im.net/thread-866-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">一个低成本保IM消息时序的方法探?/a>?/p>

?a href="http://www.52im.net/thread-2759-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q数据库用NoSQLq是SQLQ读q篇够了!?/p>

?a href="http://www.52im.net/thread-2827-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM?#8220;附近的h”功能实现原理是什么?如何高效率地实现它??/p>

?a href="http://www.52im.net/thread-2863-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q主移动端账号d方式的原理及设计思\》(本文Q?/p>

3、最l典的用户名密码注册登陆方式

一个典型的用户名密码注册登陆功能类g下面q样Q?/strong>

 

q种账号登陆方式很经怹很常用,先注册、再q行dQ尤其在老一点的CMSpȝ、网站系l、聊天应用中都能扑ֈq个影子?/p>

它的技术原理流E图如下Q?/strong>

 
 

如上图所C,详细的流E说明如下:

  • 1Q前端将用户名、密码发送到服务器,服务器进行常规的判断Q判断用户名、密码长度是否满I用户名是否重复等条gQ条件不通过直接q回对应错误码给到前端,q里密码字段Qؓ了防止传输过E中被截胡,加密再上传,我们的传输密码默认都是会q行一个md5加密Q然后记录到数据库再q行一层加密,q是脱库也没事Q密码不要明文存储?/li>
  • 2Q校验通过后,将用户名密码写入数据库Qƈq行后面U分发放{操作,q里不展开?/li>
  • 3Q现在进行登录,前端用户名Q密码发送给到服务端Q服务端首先会校验登录次数是否超q设|的阈|如果过只能l箋{待被关黑屋?/li>
  • 4Q如果未过l箋d逻辑Q判断用户名、密码是否正,不正密码则q行阈值的判断Q如果超q则兛_黑屋Q记住小黑屋必须讄q期旉Q要不然׃怹关上了,q个可以用redis的过期来做?/li>
  • 5Q登录成功后q行后箋的一切后|逻辑Q比如加U分。。。等操作?/li>

q种l典的注册登陆方式,具体怎么设计׃在这里赘qCQ谁都懂?/p>

4、现今最L的手机号注册登陆方式

4.1 基本原理

典型的手机号注册登陆功能cM于下图:

 

典型的手机号注册技术原理流E图如下Q?/strong>

 
 

如上图所C,详细的流E说明如下:

  • 1Q首先输入手机号Q然后发送到服务端,服务端将手机可录在我们数据库中Q然后生成随机验证码Qƈ手机号和验证码l定C个redis里面Q然后记录过期时_q个q期旉一般是10分钟左右Q这是我们一般手机验证码的有效期Q?/li>
  • 2Q手机接收到手机短信后:那么在界面填写验证码发送服务端Q服务端收到验证码后׃在redis里面查询到这个手机号对应的验证码Q失败就q回错误码?/li>
  • 3Q成功后Q就q行d操作?/li>

q里看v来没有明的注册d操作Q其实在发送手机号码就可以认ؓ是一个常规的注册Q然后后面的验证码输入就是一个登陆操作?/p>

但这U区别于常见的用户名密码注册方式Q是没有密码的的?/p>

问: 那我要密码咋办?

{: 在后l品里面增加一个手机号码密码补录的功能卛_Q这也是现在很常规的手法Q但是现在移动互联网大爆炸时代,密码已经昑־不是那么重要了,反正我从来记不住密码Q如果手机号码能操作的appQ绝对不用密码来操作?/p>

4.2 具体的数据库设计

表结构: 

说明Q?/strong>

q里只是单纯说明需要用到的数据Q没有扩展具体场?q个表结构能够满上面两个方案的设计?/p>

5、一U辅助的登陆方式Q第3方̎L?/h1>

5.1 基本原理

现在很多应用Z降低新用L使用门槛Q都会对接第3方̎可行登陆(比如Q用微信L陆、QQL陆、微博̎L陆等Q?/p>

q里我以QQ的开攑^台登录逻辑Zq行讲解?/p>

某团外卖的QQ账号登陆功能如下图:

 

我们先来一波时序图Q?/strong>

 
 

时序程详细说明Q?/strong>

  • 1Q客L自己调vd的界面,q行输入用户名、密码,q里的是W三方的用户名,密码Q登录成功后Q会q回access_token openid expire_in,q过E会使用到oauth2.0Q不q在sdk里面q行内置回调获取了,后面我们会说明我们自w实现的oauth2.0Q?/li>
  • 2Q客L拿到access_token、openid、login_typeQqq、wechat...Q请求应用服务器Q应用服务器拿到q些数据后就会根据对应的login_typed应的用户中心q行access_token和openidq行校验。校验不通过则返回对应错误码Q?/li>
  • 3Q校验通过后就会判断本地是否有q个login_type和openid是否存在Q不存在则进行获取远E的用户名、头像等基础信息来作为本地基数据Qƈ且返回code|
  • 4Q如果已l存在,那就是进行登录操作,q回code|
  • 5Q客L拿到code值后q行token值的换取Q这个完全遵照oauth2.0的协议来走的Q后l每ơ请求必d上tokenQtoken值在服务端的旉比较久,因ؓ我们惌做的是那U永不下U的操作Q所以每ơ请求我们都tokenq期旉q行累加?/li>

惌深入了解W?方̎L陆,可以读读q两:?a href="https://www.jianshu.com/p/f33b12045cae" target="_blank" style="color: #1d58d1; text-decoration-line: none;">W三方登录:QQd接入指南》、?a href="https://links.jianshu.com/go?to=https%3A//blog.csdn.net/belalds/article/details/80653432" target="_blank" style="color: #1d58d1; text-decoration-line: none;">W三方̎L录功能接入完全流E?/a>》?/p>

5.2 具体的数据库设计

表结构:

对于读者的Q我q里做一下数据库的整理?/p>

 

用户基础表(usersQ:

 

用户验证兌表(user_auth_relQ: 

 

本地用户表(user_local_authQ:

 

W三方用戯Quser_third_authQ: 

 

表结说明Q?/em>

  • 1Qusers表只是单U针Ҏ们业务侧的登录,主要是做自n业务的oauth2.0业务Q?/li>
  • 2Quser_local_auth是做自己用户名、密码登录,手机Ld信息记录Q?/li>
  • 3Quser_third_auth是我们第三方用户体系的数据记录;
  • 4Quser_auth_rel是用来关联我们users表与user_local_auth、user_third_authQ?/li>
  • 5Q整个设计理念就是将自徏用户与第三方在存储上区分Q这在架构演q上也是合乎情理的,开始用户体pd多自建,而后才是对外接入?/li>

6、本文小l?/h1>

ȝ来讲Q̎h册登录功能在一般的pȝ里都是入口功能,一般情况下都不会太复杂?/p>

对于W三方用L接入技术,也同h较简单,我文章里设计多一个user_thirds是可以支持够多的第三方接入Q当然一般我们也׃三个d好Q太多登录方不仅自nl护成本Q界面摆盘也不好看不是?/p>

希望大家能够通过以上学习Q能够对于̎h册登录有一个比较好的认知,文章里设计方案不包含分表分库、没有服务化Q就是简单直接的设计Q当然用户量和需要的不一P在这个基上还要加很多东西Q谢谢大安诅R?/p>

附录Q更多IM开发方面的文章

[1] IM开发综合文章:

?a href="http://www.52im.net/thread-464-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">新手入门一就够:从零开发移动端IM?/p>

?a href="http://www.52im.net/thread-1587-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ud端IM开发者必?一)Q通俗易懂Q理解移动网l的“?#8221;?#8220;?#8221;?/p>

?a href="http://www.52im.net/thread-1588-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ud端IM开发者必??Q史上最全移动弱|络优化Ҏȝ?/p>

?a href="http://www.52im.net/thread-1470-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">从客L的角度来谈谈Ud端IM的消息可靠性和送达机制?/p>

?a href="http://www.52im.net/thread-1413-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">CUd端网l短q接的优化手D|ȝQ请求速度、弱|适应、安全保?/a>?/p>

?a href="http://www.52im.net/thread-1391-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">腾讯技术分享:C交|络囄的带宽压~技术演q之?/a>?/p>

?a href="http://www.52im.net/thread-1686-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">白必读Q闲话HTTP短连接中的Session和Token?/p>

?a href="http://www.52im.net/thread-1351-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课Q正理解前|HTTP SSO单点登陆接口的原?/a>?/p>

?a href="http://www.52im.net/thread-133-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ud端IM开发需要面对的技术问?/a>?/p>

?a href="http://www.52im.net/thread-150-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">开发IM是自p计协议用字节好q是字符好Q?/a>?/p>

?a href="http://www.52im.net/thread-175-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">请问有h知道语音留言聊天的主实现方式吗Q?/a>?/p>

?a href="http://www.52im.net/thread-866-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">一个低成本保IM消息时序的方法探?/a>?/p>

?a href="http://www.52im.net/thread-280-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">完全自已开发的IM该如何设?#8220;p|重试”机制Q?/a>?/p>

?a href="http://www.52im.net/thread-802-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">通俗易懂Q基于集的Ud端IM接入层负载均衡方案分?/a>?/p>

?a href="http://www.52im.net/thread-195-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信对网l媄响的技术试验及分析Q论文全文)?/p>

?a href="http://www.52im.net/thread-218-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯pȝ的原理、技术和应用Q技术论文)?/p>

?a href="http://www.52im.net/thread-447-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">开源IM工程“蘑菇街TeamTalk”的现Ӟ一场有始无l的开源秀?/p>

?a href="http://www.52im.net/thread-1208-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">QQ音乐团队分nQAndroid中的囄压羃技术详解(上篇Q?/a>?/p>

?a href="http://www.52im.net/thread-1212-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">QQ音乐团队分nQAndroid中的囄压羃技术详解(下篇Q?/a>?/p>

?a href="http://www.52im.net/thread-675-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">腾讯原创分n(一)Q如何大q提升移动网l下手机QQ的图片传输速度和成功率?/p>

?a href="http://www.52im.net/thread-696-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">腾讯原创分n(?Q如何大q压~移动网l下APP的流量消耗(上篇Q?/a>?/p>

?a href="http://www.52im.net/thread-697-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">腾讯原创分n(?Q如何大q压~移动网l下APP的流量消耗(下篇Q?/a>?/p>

?a href="http://www.52im.net/thread-684-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">如约而至Q微信自用的Ud端IM|络层跨q_lg库Mars已正式开?/a>?/p>

?a href="http://www.52im.net/thread-1191-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">ZC交|络的Yelp是如何实现v量用户图片的无损压羃的??/p>

?a href="http://www.52im.net/thread-1559-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">腾讯技术分享:腾讯是如何大q降低带宽和|络量?囄压羃??/p>

?a href="http://www.52im.net/thread-1560-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">腾讯技术分享:腾讯是如何大q降低带宽和|络量?韌频技术篇)?/p>

?a href="http://www.52im.net/thread-1693-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">字符~码那点事:快速理解ASCII、Unicode、GBK和UTF-8?/p>

?a href="http://www.52im.net/thread-1802-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">全面掌握Ud端主图片格式的特点、性能、调优等?/p>

?a href="http://www.52im.net/thread-1961-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">子弹短信光鲜的背后:|易云信首席架构师分享亿UIMq_的技术实?/a>?/p>

?a href="http://www.52im.net/thread-1998-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信技术分享:微信的v量IM聊天消息序列L成实践(法原理)?/p>

?a href="http://www.52im.net/thread-2671-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">自已开发IM有那么难吗?手把手教你自怸个Andriod版简易IM (有源??/p>

?a href="http://www.52im.net/thread-2747-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">融云技术分享:解密融云IM产品的聊天消息ID生成{略?/p>

?a href="http://www.52im.net/thread-2768-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">适合新手Q从零开发一个IM服务端(ZNettyQ有完整源码Q?/a>?/p>

?a href="http://www.52im.net/thread-2775-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">拿v键盘是qԌ跟我一起徒手开发一套分布式IMpȝ?/p>

>> 更多同类文章 …… 

[2] 有关IM架构设计的文章:

?a href="http://www.52im.net/thread-307-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">谈IMpȝ的架构设?/a>?/p>

?a href="http://www.52im.net/thread-289-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">q移动端IM开发的那些坑:架构设计、通信协议和客L?/p>

?a href="http://www.52im.net/thread-812-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">一套v量在U用LUd端IM架构设计实践分n(含详l图??/p>

?a href="http://www.52im.net/thread-151-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">一套原创分布式x通讯(IM)pȝ理论架构Ҏ?/p>

?a href="http://www.52im.net/thread-152-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">从零到卓:京东客服x通讯pȝ的技术架构演q历E?/a>?/p>

?a href="http://www.52im.net/thread-31-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">蘑菇街即旉讯/IM服务器开发之架构选择?/p>

?a href="http://www.52im.net/thread-158-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">腾讯QQ1.4亿在U用L技术挑战和架构演进之\PPT?/p>

?a href="http://www.52im.net/thread-895-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信后台Z旉序的量数据L分架构设计实践?/p>

?a href="http://www.52im.net/thread-200-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信技术ȝ谈架构:微信之道——大道至简(演讲全文)?/p>

?a href="http://www.52im.net/thread-201-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">如何解读《微信技术ȝ谈架构:微信之道——大道至简?/a>?/p>

?a href="http://www.52im.net/thread-168-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">快速裂变:见证微信强大后台架构??的演q历E(一Q?/a>?/p>

?a href="http://www.52im.net/thread-159-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">17q的实践Q腾讯v量品的技术方法论?/p>

?a href="http://www.52im.net/thread-1221-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ud端IM中大规模消息的推送如何保证效率、实时性??/p>

?a href="http://www.52im.net/thread-1230-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">CIMpȝ中聊天消息的同步和存储方案探?/a>?/p>

?a href="http://www.52im.net/thread-1356-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q如何设计大量图片文件的服务端存储架构??/p>

?a href="http://www.52im.net/thread-1366-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q快速理解服务端数据库读写分d理及实践?/p>

?a href="http://www.52im.net/thread-1525-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q正理解HTTP短连接中的Cookie、Session和Token?/p>

?a href="http://www.52im.net/thread-1542-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">WhatsApp技术实践分享:32人工E团队创造的技术神?/a>?/p>

?a href="http://www.52im.net/thread-1569-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信朋友圈千亿访问量背后的技术挑战和实践ȝ?/p>

?a href="http://www.52im.net/thread-1595-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">王者荣耀2亿用户量的背后:产品定位、技术架构、网l方案等?/p>

?a href="http://www.52im.net/thread-1647-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IMpȝ的MQ消息中间仉型QKafkaq是RabbitMQQ?/a>?/p>

?a href="http://www.52im.net/thread-1811-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">腾讯资深架构师干货ȝQ一文读懂大型分布式pȝ设计的方斚w?/a>?/p>

?a href="http://www.52im.net/thread-1910-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">以微博类应用场景ZQȝ量C交pȝ的架构设计步?/a>?/p>

?a href="http://www.52im.net/thread-1950-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">快速理解高性能HTTP服务端的负蝲均衡技术原?/a>?/p>

?a href="http://www.52im.net/thread-1961-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">子弹短信光鲜的背后:|易云信首席架构师分享亿UIMq_的技术实?/a>?/p>

?a href="http://www.52im.net/thread-1968-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">知乎技术分享:从单机到2000万QPSq发的Redis高性能~存实践之\?/p>

?a href="http://www.52im.net/thread-1979-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q通俗易懂Q正理解ƈ用好MQ消息队列?/p>

?a href="http://www.52im.net/thread-1998-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信技术分享:微信的v量IM聊天消息序列L成实践(法原理)?/p>

?a href="http://www.52im.net/thread-1999-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">微信技术分享:微信的v量IM聊天消息序列L成实践(容灾Ҏ)?/p>

?a href="http://www.52im.net/thread-2007-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">新手入门Q零基础理解大型分布式架构的演进历史、技术原理、最佛_?/a>?/p>

?a href="http://www.52im.net/thread-2015-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">一套高可用、易伸羃、高q发的IM聊、单聊架构方案设计实?/a>?/p>

?a href="http://www.52im.net/thread-2050-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">阉K技术分享:深度揭秘阉K数据库技术方案的10q变q史?/p>

?a href="http://www.52im.net/thread-2072-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">阉K技术分享:阉K自研金融U数据库OceanBase的艰辛成长之?/a>?/p>

?a href="http://www.52im.net/thread-2202-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">C交软gU包技术解?一)Q全面解密QQU包技术方?#8212;—架构、技术实现等?/p>

?a href="http://www.52im.net/thread-2519-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">C交软gU包技术解??Q解密微信摇一摇红包从0?的技术演q?/a>?/p>

?a href="http://www.52im.net/thread-2533-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">C交软gU包技术解??Q微信摇一摇红包雨背后的技术细?/a>?/p>

?a href="http://www.52im.net/thread-2548-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">C交软gU包技术解??Q微信红包系l是如何应对高ƈ发的?/p>

?a href="http://www.52im.net/thread-2564-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">C交软gU包技术解??Q微信红包系l是如何实现高可用性的?/p>

?a href="http://www.52im.net/thread-2568-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">C交软gU包技术解??Q微信红包系l的存储层架构演q实?/a>?/p>

?a href="http://www.52im.net/thread-2573-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">C交软gU包技术解??Q支付宝U包的v量高q发技术实?/a>?/p>

?a href="http://www.52im.net/thread-2576-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">C交软gU包技术解??Q全面解密微博红包技术方?/a>?/p>

?a href="http://www.52im.net/thread-2583-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">C交软gU包技术解??Q谈谈手QU包的功能逻辑、容灾、运l、架构等?/p>

?a href="http://www.52im.net/thread-2600-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯新手入门Q一文读懂什么是NginxQ它能否实现IM的负载均衡??/p>

?a href="http://www.52im.net/thread-2620-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">x通讯新手入门Q快速理解RPC技?#8212;—基本概念、原理和用?/a>?/p>

?a href="http://www.52im.net/thread-2625-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">多维度对?ƾ主分布式MQ消息队列Q妈妈再也不担心我的技术选型?/a>?/p>

?a href="http://www.52im.net/thread-2675-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">从游击队到正规军(一)Q马蜂窝旅游|的IMpȝ架构演进之\?/p>

?a href="http://www.52im.net/thread-2796-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">从游击队到正规军(?Q马蜂窝旅游|的IM客户端架构演q和实践ȝ?/p>

?a href="http://www.52im.net/thread-2759-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发基知识补课(?Q数据库用NoSQLq是SQLQ读q篇够了!?/p>

?a href="http://www.52im.net/thread-2807-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">瓜子IM客服pȝ的数据架构设计(整理自现场演Ԍ有配套PPTQ?/a>?/p>

?a href="http://www.52im.net/thread-2848-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">阉K钉钉技术分享:企业UIM王?#8212;—钉钉在后端架构上的过Z?/a>?/p>

>> 更多同类文章 ……

Q本文同步发布于Q?a href="http://www.52im.net/thread-2863-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">http://www.52im.net/thread-2863-1-1.htmlQ?/p>

Jack Jiang 2019-12-07 19:38 发表评论
]]>面视必备Q史上最通俗计算机网l分层详?/title><link>http://www.oiklr.tw/jb2011/archive/2019/12/01/434941.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Sun, 01 Dec 2019 07:59:00 GMT</pubDate><guid>http://www.oiklr.tw/jb2011/archive/2019/12/01/434941.html</guid><wfw:comment>http://www.oiklr.tw/jb2011/comments/434941.html</wfw:comment><comments>http://www.oiklr.tw/jb2011/archive/2019/12/01/434941.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.oiklr.tw/jb2011/comments/commentRss/434941.html</wfw:commentRss><trackback:ping>http://www.oiklr.tw/jb2011/services/trackbacks/434941.html</trackback:ping><description><![CDATA[<h1>1、引a</h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">整个暑假去面试,面试了很多家公司Q无论是厂q是大厂Q问到的深度不同Q网l原理是面试最Ҏ问到的问题,虽然我们在项目中很少d践它Q但是了解其原理Q会让我们背后网l通信是如果工作的Q既能在面试官面前体现出你的基础是否扎实Q也能对以后深入|络q部分学习有更多的了解?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">很多同学面试在准备这部分的时候,都会去背Q这部分实很难掌握Q我个hȝ的最好的学习|络原理的方法就是不用刻意的去记忆而是完全的结合实际去讲整个原理融会诏通。虽然一开始学习v来很吃力Q但是稍微用点心Q多看几遍,多问自己Z么,把自己当做是开发网l原理的开发者,面试前的准备只要理清逻辑p够了Q而不是去背这部分内容?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">而且q部分相同的知识炚w试官有多U提问方式,但是其中很多都是换汤不换药。我记得最多的问的是输入URLQ到面呈现出来Q其中经历了什么?q道面试题的背后Q涉及到了很多网l原理的知识Q我们这文章不会全部分享到Q而是先把由来和网l层ơ划分弄清楚Q就完成了这文章的目的?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">Q本文同步发布于Q?a href="http://www.52im.net/thread-2851-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">http://www.52im.net/thread-2851-1-1.html</a>Q?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>相关文章Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1095-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(一)Q快速理解网l通信协议Q上)</a>》(* 力荐Q?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1103-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q快速理解网l通信协议Q下)</a>》(* 力荐Q?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1629-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q史上最通俗的集U器、交换机、\由器功能原理入门</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2067-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q通俗讲解Q有了IP地址Qؓ何还要用MAC地址Q?/a>?/p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>学习交流Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">- x通讯/推送技术开发交?:<a href="https://links.jianshu.com/go?to=https%3A//shang.qq.com/wpa/qunwpa%3Fidkey%3Dd236d62403fd8aea8658a9cdf9c315e78af63d4321bb924ce5c66163350c2045" target="_blank" style="color: #1d58d1; text-decoration-line: none;">215477170</a>[推荐]</p><p style="margin-top: 10px; margin-bottom: 10px;">- Ud端IM开发入门文章:?a href="http://www.52im.net/thread-464-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">新手入门一就够:从零开发移动端IM</a>?/p></blockquote><h1>2、关于作?/h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>鹿Q前端工E师Q:</strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">微信公众P鹿动画学编E?/p><p style="margin-top: 10px; margin-bottom: 10px;">Github地址Q?a href="https://links.jianshu.com/go?to=https%3A//github.com/luxiangqiang" target="_blank" style="color: #1d58d1; text-decoration-line: none;">https://github.com/luxiangqiang</a></p><p style="margin-top: 10px; margin-bottom: 10px;">个h博客Q?a href="http://fluxiangqiang.com/" target="_blank" style="color: #1d58d1; text-decoration-line: none;">http://luxiangqiang.com/</a></p></blockquote><h1>3、系列文?/h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>本文是系列文章中的第7,本系列大U如下:</strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1729-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">脑残式网l编E入?一)Q跟着动画来学TCP三次握手和四ơ挥?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1732-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">脑残式网l编E入??Q我们在dSocketӞI竟在读写什么?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1751-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">脑残式网l编E入??QHTTP协议必知必会的一些知?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1795-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">脑残式网l编E入??Q快速理解HTTP/2的服务器推?Server Push)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1973-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">脑残式网l编E入??Q每天都在用的Ping命oQ它到底是什么?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2082-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">脑残式网l编E入??Q什么是公网IP和内|IPQNAT转换又是什么鬼Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2851-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">脑残式网l编E入??Q面视必备,史上最通俗计算机网l分层详?/a>》(本文Q?/p></blockquote><h1>4、ؓ什么要q行|络层次划分Q?/h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">说到|络层次划分q不陌生Q我刚刚接触到网l层ơ的时候一脸懵|q么多层Q一层不p了嘛Q层与层之间好多协议Q还有各U数据包Q第一ơ我攑ּ了?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">当我从新拾v|络层次的时候,我下定决心从根上理解它。首先弄明白它的原理Q那必定要知道它的由来,也就是ؓ什么要q行|络层次划分Q这个问题问的好?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">假如“鹿”是网l的开发h员,起初认ؓ计算Z计算Z间的通信只需要一根线可以完成通信Q对没错Q但是世界那么大Q那么多计算机,距离又远Q不但浪费线Q还没出现各U线被你偷偷剪断的情况,毋庸|疑Q那计算Z间通信׃行了。(后边出来了无U网Q虽然其中网兟뀁\׃间也需要连U,但不是让每台计算Z两连接,而是一个区域ؓ单位计算机相互连接通信Q?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">不行Q老板_“鹿”你给我想法子改,改不出来今晚不能睡觉Q?#8220;鹿”仔细想了惻Iq还是个技术活Q需要进行全面的改进Q也发现所谓的计算Z间的q线只能传??信号Q另一台计ƈ不知道那么多0?代表什么,而且“鹿”又发C同厂商的生的计机既然有连U实现通信也是很麻烦的Q干脆定义一套规则吧Q无?#8220;某硕”计算?#8220;某想”计算机,都必遵守这套规则,其实所说的q套规则是我们l常说的“|络协议”?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">不是说网l层ơ的由来吗,怎么讲到|络协议了。咱们l,通过上面的问题,那个计算Z间通过q线传??信号的问题虽然规定了通信规则Q但是除了像0?q种无意义的信号之外Q网l中q存在着其他各种各样的问题,两个计算Z间怎么q行识别Q以及怎么才能知道Ҏ的地址Q以及不同计机应用E序怎么知道是给自己传递的数据Q还有不同的通信数据格式怎么来规定等{一pd的问题都出来了?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">“鹿”发现Q如果各U问题都写成一套协议来规定双方通信的规则,但是呢?万一其中哪些规则通信中出现问题,影响C其他规则Q最常见的就是数据包Q一个数据包中如果包含各U各L协议Q不׃ؕ套了?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">“鹿”Z能够把它设计的更好,军_采用分层划分的结构,既能规定不同层的完成的功能,又能实现层与层之间的改动而不怺影响Q这是我们l常听到|络划分层次的好处?/p><h1>5、网l分层是如何q行分层的?</h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">既然我们军_要分层,那么分ؓ几层才好呢?</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">起初|络分层是标准的七层Q也是我们所说的 OSI 七层模型?/p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div> </div><div data-width="260" data-height="387"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191201155329673-514056430.jpg" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><span style="color: #888888;"><em>▲ OSI参考模型或七层模型</em></span></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">我们所知道的还?TCP/IP 四层模型?TCP/IP 五层模型。这又是怎么出来的,其实所谓的 TCP/IP 四层模型?TCP/IP 五层模型是以 OSI 七层优化而来Q把某些层进行合q了Q其实本质上q是相同的,但是我个人最喜欢用五层来解释?/p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div> </div><div data-width="700" data-height="398"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191201155335818-433927740.jpg" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><span style="color: #888888;"><em>▲ 五层模型</em></span></p><h1>6、每一层的作用是什么?</h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">q一部分涉及到每一层的很多协议和知识点Q但是我们这一节不具体分nQؓ什么?我们具体深入之前必须大脑里有个具体的|络分层l构图,先要知道每层是做什么的Q层与层之间的关p,然后下一节再深入每层中的每个协议怎么通信的,q样的好处学h条理清晰Q而不至于当时我学习的时候表面还不懂Q就深入最后懵逼状态?/p><h4>6.1 物理?/h4><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">物理层,֐思义Q用物理手段电脑连接v来,像我们上边讲到的计机之间的物理连Uѝ主要用来传??信号Q上边也分析q了Q??信号毕竟没有M的现实意义,所有我们用另一层用来规定不??l合的意义是什么?/p><h4>6.2 数据链\?/h4><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">下层的物理层既然不能规定不同0?l合的信号代表什么意义,那么我们在数据链路层规定一套协议,专门的给0?信号q行分组Q以及规定不同的l代表什么意思,从而双方计机都能够进行识别,q个协议是“以太|协?#8221;Q具体的以太|协议内容下节内容详l讲解)?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">但是问题又来了,我们要发送给Ҏ计算机,怎么标识Ҏ以及怎么知道Ҏ的地址呢?</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>6.2.1QMAC 地址Q?/em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">我们所说的MAC地址到底的作用是啥?说白了它是作ؓ|络中计机讑֤的唯一标识Q从计算机在厂商生出来p十六q制的数标识为MAC地址?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">既然我们知道了用MAC地址作ؓ标识Q那么怎么才能知道我们要进行通信的计机MAC地址呢?</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>6.2.2Q广播:</em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">q里q播详细的在下一节讲Q这一节你只需要知道广播可以帮助我们能够知道对方的 MAC 地址。那么既然知道了MAC地址可以通信了?没有惛_那么单,q播中还存在两种情况Q一U是Q在同一子网l下Q同一局域网下)的计机是通过 ARP 协议获取到对?MAC地址的。不同自|络中(不同局域网Q中是交l两个局域网的网养I路由器)d理的。这里边涉及到很多细节的知识Q都会集中到下一节,但是q一节你了解怎么q行标识计算机和怎么获取到MAC地址可以了?/p><h4>6.3 |络?/h4><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">物理层和数据链\层都有自q事情要做Q也是我们上边所讲到的这些(里边很多l节不在q节多说Q。上边两层在我看来可以完成正帔R信了,那么|络层出来干啥子Q?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">|络层的由来是因为在数据链\层中我们说说两台计算Z间的通信是分为同一子网l和不同子网l之_那么问题来了,怎么判断两台计算机是否在同一子网l(局域网Q中Q这是|络层要解决的问题?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>6.3.1QIP 协议Q?/em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">我们通常用到?IP 地址Q就是网l层中的东西Q所规定的的协议是 IP 协议。很多小伙伴问,IP 地址惛_也是地址吧,上边都有唯一标识?MAC 地址了,IP 地址出来是؜饭吃的?Z能够让大家更方便的理?IP 地址?MAC 地址Q我们可以将 IP 地址抽象成一U逻辑上的地址Q也是?MAC 地址是物理上的地址Q就是定M。IP 地址呢,是动态分配的Q不是固定死的?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">我们是通过 IP 地址来判断两个计机讑֤是否在同一子网l中的,那么你会问它是怎么判断的,以及 IP 地址谁给他分配的Q又是如何分配的{一些列问题Q我们不着急,q里只说一下大体的程Q详l会后箋写一大篇?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">既然我们通过 IP 地址来判断两个计机是否处于同一局域网中,那么首先要知道对方的 IP 地址吧?DNS 解析惛_大家都知道,可以域名解析ؓ IP 地址。好了,我们知道两台计算机的 IP 地址了,怎么q行判断是否同一局域网中?</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>6.3.2Q子|掩码:</em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">嘿嘿Q又是一个只听说q,但是不知道这个什么作用的一个名词,没事Q等我聊完,你就明白是做什么的了?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">子网掩码是用来标识同一局域网中的 IP 地址的信息的Q什么信息?IP 地址是由 32 个二q制位组成的Q也是四个十进Ӟ如:255.255.255.000Q?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">子网掩码也是?32 个二q制位组成的Q但是只能用 0 ?1 来表C,如:11111111.11111111.11111111.00000000?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">到底什么意思呢Q有 1 的部分表C网l部分,?0 表示L部分Q这和判断两台计机是否在同一局域网中有什么关p?没错Q是有关pȝQ两台计机?IP 地址分别和子|掩码进行一U运(AND q算Q,如果l果相同Q两台计机在同一局域网中,否则׃在同一局域网中?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">AND 是如何进行运的QIP 的数据包的组成等问题Q不在这里多陈述?/p><h4>6.4 传输?/h4><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">好了Q如果你认ؓ计算机可以进行通信了,那么“鹿”恭喜你,你已l基本知道了以上几层划分的作用,但是如果你正在一Ҏ LOLQ一边和朋友?QQ 聊天Q突Ӟ游戏中队友聊天信息出现在?QQ H口中,咦?出现了什么情?</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">其实是以上层U还是不够,出现上边的原因就是,两台计算然可以通信了,但是每天计算行着好多的程序,谁知道你们传输的信息是属于哪些程序的Q怨不?LOL 的聊天信息跑C QQ H口中?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">惛_大家猜到了传输层主要用来q啥_是的Q传输层的主要功能就是ؓ了能够实?#8220;端口到端?#8221;的通信。计机上运行的不同E序都会分配不同的端口,所以才能得数据能够正的传送给不同的应用程序?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>6.4.1QUDP 协议Q?/em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">加入端口号也需要一套规则,那就?UDP 协议Q但?UDP协议有个~点Q一旦进行通信Q就不知道对Ҏ否接收到数据了,我们再定义一套规则,让其可以和对方进行确认,那么 TCP 出现了?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>6.4.2QTCP 协议Q?/em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">我们通常?TCP 三次握手和四ơ挥手,没错Q这是传输层中完成的,TCP 三次握手涉及到的内容贼多Q都可以单独写一长文,q里不多陈述Q知道它是在传输层中完成的以及它的作用是什么,能够认识到它好了?/p><h4>6.5 应用层协?/h4><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">“喂,你发l我的是什么破数据Qؕ七八p的Q我TM能解析吗Q能不能按照我的规定l我传送?“</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">“好的Q下ơ不敢了”</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">惛_大家已经猜到了应用层的协议,应用层的功能是规定了应用程序的数据格式。我们经常用得到的电子邮件、HTTP协议、以及FTP数据的格式,是在应用层定义的?/p><h1>7、每一层的的功能细节是什么?</h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">前面章节主要分n了网l分层的基本概念Qؓ什么要q行|络分层Q又是如何进行分层?每一层的基本功能是什么?而且对于每一层的的功能细节方面,比如数据包的l成以及每层包含的一些协议的使用都没有细_那么本节l分享网l分层每层中协议{深入讲解。(PSQ可能里Ҏ的讲解不正确Q还请大佬指出改正)</p><h4>7.1 物理?/h4><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">物理层里Ҏ及到最多的是硬件底层的一些内容,没有需要过多了解的内容Q我们直接看数据链\层?/p><h4>7.2 数据链\?/h4><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">上回讲到数据链\层中规定?#8220;以太|协?#8221;来规定电信号的分lŞ式,什么是以太|,以太|的数据包是什么样子的Q?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>7.2.1Q以太网协议Q?/em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">以太|规定,每组的电信号是一个数据包Q每个数据包我们可以成ؓ“?#8221;。每帧的l成是由标头(Head)和数?Data)l成?/p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div> </div><div data-width="500" data-height="123"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191201155343092-435316491.jpg" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">那么你会问,标头里有什么信息?Data 数据又会存放写什么?Z么分Z部分Q放在一块不好吗Q?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">aQ标_</p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">Z么传输数据会有标_我们惛_Q在传输数据的时候,接收端怎么判断是不是给自己发送的Q那么就只取出标头来q行判断?/p><p style="margin-top: 10px; margin-bottom: 10px;">数据包的标头中通常会存放一些有x据包的说明、发送者是谁、接受者又是谁{相兌别信息?/p><p style="margin-top: 10px; margin-bottom: 10px;">标头的长度固定ؓ 18 字节Q也是_一些标头识别信息的大小不能过 18 字节?/p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">bQ数据:</p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">数据Q顾名思义Q你要传输给接收端什么数据都会放到数据包中,也就是整个数据包的具体内容,比如文g、字W串之类的?/p><p style="margin-top: 10px; margin-bottom: 10px;">数据部分的长度最至ؓ 46 个字节,最?1500 字节。我们可能会惛_Q如果小?46 字节没啥问题可以存放开Q那么大?1500 字节怎么处理呢?很简单,我们分成两个包处理Q分ԌQ两个包存放不下分割成三个?#8230;</p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>7.2.2Q广播:</em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">上回说到Q广播的作用是用来查找接收端的 MAC 地址Q从而进行下一步的数据传输。注意,q播只是一U发送数据的形式Q而计机惌知道另一台计机?MAC 地址是通过 ARP 协议解决的,ARP 协议会在讲完 IP 协议后再_因ؓ它会涉及?IP 协议的一点内容,现在讲可能会有点乱?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">如果你觉的上边稍微有点ؕQ那怎们E微屡一下,我们惌发送数据,首先要知道对方的唯一标识QMAC 地址Q,要想知道Ҏ?MAC 地址Q需要?ARP 协议Q假设我们通过 ARP 协议拿到了接收方?MAC 地址?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">我们开始发送数据,发送方?MAC 地址和接收方?MAC 地址装在数据包中,然后发送端向同一子网l中Q同一局域网Q中的所有计机发送该数据包,所有的计算机接收到该包之后Q就Ҏ据包的头部进行提取,提取出里边封装好的接收端 MAC 地址和自q MAC 地址作比对,如果相同Q就说明该数据包是给自己发送的Q否则,׃丢弃该数据包Q这个过E就是广播的q程?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">上一文章在q个地方留下的一个问题就以上是在同一局域网中,如果不在同一局域网中我们怎么处理Q我们^怋用无U网都知道每个无U局域网都会有一个\由器Q我们先通过以上的方法将数据发送到路由器,然后路由器{发数据到其他局域网中的计算机?/p><h4>7.3 |络?/h4><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">|络层中最重要的一个协议就?IP 协议Q我们一般发送端l服务端发送数据同时要知道两个地址才能准确送达到对方,分别?IP 地址?MAC 地址。停Qstop! 上边讲到的明明知道对方的 MAC 地址可以传输数据了Qؓ什么现在需要两个地址呢?你给我说明白Q说不明白取养I</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">上边实是一?MAC 地址可以通信Q但是前提是通过 ARP 协议获得?MAC 地址Q?ARP 协议正是利用的接收端?IP 地址才获取到接收端的 MAC 地址的,所以这两个地址很重要,那么如果实现的,下边会l讲?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>7.3.1QIP 协议Q?/em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">IP 的数据包是直接放入到以太|数据包?#8220;数据”部分的,q样做有一个好处就?#8220;上层的变动完全涉及不C层的l构”。然后数据包变成这个样子了?/p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div> </div><div data-width="500" data-height="130"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191201155349173-917478741.jpg" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">IP 数据包也分ؓ标头(Head)和数?Data)两部分:</p><ul style="margin-left: 30px; padding-left: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="list-style-type: disc;">1Q标_IP 数据包的标头?20 ~ 60 字节Q主要包括版本、IP 地址{信息;</li><li style="list-style-type: disc;">2Q数据:数据的最大长度ؓ 65515 字节。整?IP 数据包的最大总长度ؓ 65535 字节。主要存?IP 数据包的具体内容?/li></ul><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">问题来了Q以太网的数据部分最长ؓ 1500 字节Q你把一个长度ؓ 65535 字节?IP 数据包放C太网的数据包汇总,不会被撑破吗Q你在逗我么?实是呀Q那我们分割数据包吧,分割成几个以太网数据包分开发送?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>7.3.2QAND q算Q?/em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">IP 协议上篇文章中最重要的作用就是判断两个设备是否属于同一子网中(同一局域网中)?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">两个IP地址与子|掩码分别进行ANDq算Q两个数位都?Q运结果ؓ1Q否则ؓ0Q,然后比较l果是否相同Q如果是的话Q就表明它们在同一个子|络中,否则׃是?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">我们可以通过 DNS 解析知道Ҏ?IP Q除了判断两个计机是否在同一局域网中,q有一个作用就是然后通过 ARP 协议获取到对方的 MAC 地址。停Q真惌我取兛_QARP ?TN 的说了多遍了,该详l说一下了吧?</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>7.3.3QARP 协议Q?/em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>前提Q?/strong>Ҏ?IP 地址是已知的Q通过 DNS 解析得到?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">ARP 协议发出一个数据包Q包含在以太|的数据包中Q其中包含对方的 IP 地址Q对方的 MAC 地址栏是 FF:FF:FF:FF:FF:FFQ。子|络中的每台L都会收到q个包,然后从中取出 IP 地址与自w对比,如果两者相同,都做出回复,向对Ҏ告自q MAC 地址Q否则就丢弃q个包?/p><h4>7.4 传输?/h4><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">传输层主要涉及到两个重要协议QUDP ?TCP 协议Q上讲q主要用来确定端口到端口的通信Q计机中不同运行的E序端口号不相同?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">"端口"?0 ?65535 之间的一个整敎ͼ正好 16 个二q制位? ?1023的端口被pȝ占用Q我们只能选用大于1023 的端口?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>7.4.1QUDP 协议Q?/em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">UDP 协议也分为标?Head)和数?Data)两部分:</p><ul style="margin-left: 30px; padding-left: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="list-style-type: disc;">1Q标_标头的长度ؓ 8 字节。主要存放了发送和接收端口P</li><li style="list-style-type: disc;">2Q数据:数据部分和标头部分的总长度不过 65535 字节Q正好放q一个IP数据包?/li></ul><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">前边也讲q,数据包之间是包含关系的,所?UDP 的数据包是放?IP 数据包的“数据”部分的,IP 数据包又攑֜以太|数据包?#8220;数据”部分的?/p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div> </div><div data-width="500" data-height="130"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191201155355511-756617201.jpg" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><em>7.4.2QTCP 协议Q?/em></p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">TCP ?UDP 是相同的Q上一讲?UDP ?TCP 的优~点QTCP 保证了网l的可靠性,TCP 三次握手和四ơ挥手就是这部分内容?/p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">TCP 的数据包?UDP 相同嵌入?IP 协议?#8220;数据”部分QTCP q没有长度限Ӟ但是Z保证传输效率Q肯定要q行限制的,TCP 的数据包的长度一般不会超q?IP 数据包的长度了,保证单个?TCP 数据包不再进行分剌Ӏ?/p><h4>7.5 应用?/h4><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">应用层是最高一层,直接面向用户Q它的数据包会放?TCP 的数据包?#8220;数据”部分Q那么整个五层的数据包就会变成一下这栗?/p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div> </div><div data-width="500" data-height="183"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191201155401590-836294507.jpg" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">以上五层中的内容基本讲完了,我是从下C逐层写的Q这文章可以让你入门网l五层协议的基本内容了?/p><h1>8、写在最?/h1><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">如果本文内容看完Q还是有ҎQ那怎么办?</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>可以l箋以下两篇文章Q它们应该可以让你内力倍增Q?/strong></p><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1095-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(一)Q快速理解网l通信协议Q上)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1103-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q快速理解网l通信协议Q下)</a>?/p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong>另外Q关于计机|络协议的分层和关系Q可以看看下面两图:</strong></p><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191201155446973-1677951775.png" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><div style="font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><div><div> </div><div data-width="767" data-height="505"><img src="https://img2018.cnblogs.com/blog/848699/201912/848699-20191201155454509-2039242183.png" alt="" style="border: 0px; max-width: 900px; height: auto;" /></div></div></div><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">* 上述两张囄清晰原图Q请见:?a href="http://www.52im.net/thread-180-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">计算机网l通讯协议关系图(中文珍藏版)[附g下蝲]</a>》?/p><h1>附录Q更多网l编E基资料</h1><blockquote style="background-color: #eeeeee; border-width: 0px 0px 0px 18px; border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: #cccccc; padding: 4px; margin: 0px; width: 886.391px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif;"><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/topic-tcpipvol1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">TCP/IP详解</a> - <a href="http://fdocs.52im.net/extend/docs/book/tcpip/vol1/11/" target="_blank" style="color: #1d58d1; text-decoration-line: none;">W?1?#183;UDPQ用h据报协议</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/topic-tcpipvol1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">TCP/IP详解</a> - <a href="http://fdocs.52im.net/extend/docs/book/tcpip/vol1/17/" target="_blank" style="color: #1d58d1; text-decoration-line: none;">W?7?#183;TCPQ传输控制协?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/topic-tcpipvol1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">TCP/IP详解</a> - <a href="http://fdocs.52im.net/extend/docs/book/tcpip/vol1/18/" target="_blank" style="color: #1d58d1; text-decoration-line: none;">W?8?#183;TCPq接的徏立与l止</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/topic-tcpipvol1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">TCP/IP详解</a> - <a href="http://fdocs.52im.net/extend/docs/book/tcpip/vol1/21/" target="_blank" style="color: #1d58d1; text-decoration-line: none;">W?1?#183;TCP的超时与重传</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-520-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">技术往事:改变世界的TCP/IP协议Q珍贵多图、手机慎点)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-513-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">通俗易懂-深入理解TCP协议Q上Q:理论基础</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-515-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">通俗易懂-深入理解TCP协议Q下Q:RTT、滑动窗口、拥塞处?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-258-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">理论l典QTCP协议?ơ握手与4ơ挥手过E详?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-275-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">理论联系实际QWireshark抓包分析TCP 3ơ握手?ơ挥手过E?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-180-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">计算机网l通讯协议关系图(中文珍藏版)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-29-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">UDP中一个包的大最大能多大Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-50-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">P2P技术详?一)QNAT详解——详细原理、P2P?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-542-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">P2P技术详??QP2P中的NATI越(打洞)Ҏ详解</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-557-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">P2P技术详??QP2P技术之STUN、TURN、ICE详解</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1055-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">通俗易懂Q快速理解P2P技术中的NATIK原?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-561-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">高性能|络~程(一)Q单台服务器q发TCPq接数到底可以有多少</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-566-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">高性能|络~程(?Q上一?0q_著名的C10Kq发q接问题</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-568-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">高性能|络~程(?Q下一?0q_是时候考虑C10Mq发问题?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-578-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">高性能|络~程(?Q从C10K到C10M高性能|络应用的理论探?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1935-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">高性能|络~程(?Q一文读懂高性能|络~程中的I/O模型</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1939-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">高性能|络~程(?Q一文读懂高性能|络~程中的U程模型</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2846-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Java的BIO和NIO很难懂?用代码实늻你看Q再不懂我{行!</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1003-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">不ؓ人知的网l编E?一)Q浅析TCP协议中的疑难杂症(上篇)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1004-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">不ؓ人知的网l编E??Q浅析TCP协议中的疑难杂症(下篇)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1007-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">不ؓ人知的网l编E??Q关闭TCPq接时ؓ什么会TIME_WAIT、CLOSE_WAIT</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1014-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">不ؓ人知的网l编E??Q深入研I分析TCP的异常关?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1018-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">不ؓ人知的网l编E??QUDP的连接性和负蝲均衡</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1024-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">不ؓ人知的网l编E??Q深入地理解UDP协议q用好它</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1293-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">不ؓ人知的网l编E??Q如何让不可靠的UDP变的可靠Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2456-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">不ؓ人知的网l编E??Q从数据传输层深度解密HTTP</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2740-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">不ؓ人知的网l编E??Q理pd际,全方位深入理解DNS</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1095-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(一)Q快速理解网l通信协议Q上)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1103-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q快速理解网l通信协议Q下)</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1107-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q快速理解TCP协议一就?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1160-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q快速理解TCP和UDP的差?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1277-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q快速理解ؓ什么说UDP有时比TCP更有优势</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1629-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q史上最通俗的集U器、交换机、\由器功能原理入门</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1677-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q深入浅出,全面理解HTTP协议</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1722-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q手把手教你写基于TCP的Socket长连?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2067-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q通俗讲解Q有了IP地址Qؓ何还要用MAC地址Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2816-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">|络~程懒h入门(?Q一泡尿的时_快速读懂QUIC协议</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1309-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">技术扫ԌC代基于UDP的低延时|络传输层协?#8212;—QUIC详解</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1407-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">让互联网更快Q新一代QUIC协议在腾讯的技术实践分?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1413-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">CUd端网l短q接的优化手D|ȝQ请求速度、弱|适应、安全保?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1493-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">聊聊iOS中网l编E长q接的那些事</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1587-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ud端IM开发者必?一)Q通俗易懂Q理解移动网l的“?#8221;?#8220;?#8221;</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1588-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">Ud端IM开发者必??Q史上最全移动弱|络优化Ҏȝ</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1605-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IPv6技术详解:基本概念、应用现状、技术实践(上篇Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1607-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IPv6技术详解:基本概念、应用现状、技术实践(下篇Q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1709-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">从HTTP/0.9到HTTP/2Q一文读懂HTTP协议的历史演变和设计思\</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1915-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">以网游服务端的网l接入层设计ZQ理解实旉信的技术挑?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-1963-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">q向高阶Q优UAndroidE序员必知必会的|络基础</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2121-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">全面了解Ud端DNS域名劫持{杂症:技术原理、问题根源、解x案等</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2172-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">图App的移动端DNS优化实践QHTTPSh耗时减小q半</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2216-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">AndroidE序员必知必会的|络通信传输层协?#8212;—UDP和TCP</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2354-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入?一)Q通信交换技术的癑ֹ发展??</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2356-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入??Q通信交换技术的癑ֹ发展??</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2360-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入??Q国人通信方式的百q变q?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2369-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入??Q手机的演进Q史上最全移动终端发展史</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2373-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入??Q?G?GQ?0q移动通信技术演q史</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2375-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入??Q移动终端的接头?#8212;—“基站”技?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2382-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入??Q移动终端的千里?#8212;—“늣?#8221;</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2385-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入??Q零基础Q史上最?#8220;天线”原理扫盲</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2391-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入??Q无UK信|络的中?#8212;—“核心|?#8221;</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2394-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入??Q零基础Q史上最?G技术扫?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2402-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入?十一)Qؓ什么WiFi信号差?一文即懂!</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2406-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入?十二)Q上|卡?|络掉线Q一文即懂!</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2415-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入?十三)Qؓ什么手Z号差Q一文即懂!</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2419-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入?十四)Q高铁上无线上网有多难?一文即懂!</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2428-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">IM开发者的零基通信技术入?十五)Q理解定位技术,一就?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2472-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">癑ֺAPPUd端网l深度优化实践分?一)QDNS优化?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2479-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">癑ֺAPPUd端网l深度优化实践分??Q网l连接优化篇</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2678-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">癑ֺAPPUd端网l深度优化实践分??Q移动端q优化?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2608-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">技术大牛陈的分nQ由入深,|络~程学习l验q货ȝ</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2680-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">可能会搞怽的面试:你知道一个TCPq接上能发v多少个HTTPh吗?</a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">?a href="http://www.52im.net/thread-2737-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">知乎技术分享:知乎千万Uƈ发的高性能长连接网x术实?/a>?/p><p style="margin-top: 10px; margin-bottom: 10px;">>> <a href="http://www.52im.net/forum.php%3Fmod%3Dcollection%26action%3Dview%26ctid%3D8" target="_blank" style="color: #1d58d1; text-decoration-line: none;">更多同类文章 ……</a></p></blockquote><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">Q本文同步发布于Q?a href="http://www.52im.net/thread-2851-1-1.html" target="_blank" style="color: #1d58d1; text-decoration-line: none;">http://www.52im.net/thread-2851-1-1.html</a>Q?/p><img src ="http://www.oiklr.tw/jb2011/aggbug/434941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.oiklr.tw/jb2011/" target="_blank">Jack Jiang</a> 2019-12-01 15:59 <a href="http://www.oiklr.tw/jb2011/archive/2019/12/01/434941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>阉K钉钉技术分享:企业UIM王者——钉钉在后端架构上的qh之处http://www.oiklr.tw/jb2011/archive/2019/11/26/434932.htmlJack JiangJack JiangTue, 26 Nov 2019 07:32:00 GMThttp://www.oiklr.tw/jb2011/archive/2019/11/26/434932.htmlhttp://www.oiklr.tw/jb2011/comments/434932.htmlhttp://www.oiklr.tw/jb2011/archive/2019/11/26/434932.html#Feedback0http://www.oiklr.tw/jb2011/comments/commentRss/434932.htmlhttp://www.oiklr.tw/jb2011/services/trackbacks/434932.html阅读全文

Jack Jiang 2019-11-26 15:32 发表评论
]]>
瓜子IM客服pȝ的数据架构设计(整理自现场演Ԍhttp://www.oiklr.tw/jb2011/archive/2019/10/25/434883.htmlJack JiangJack JiangFri, 25 Oct 2019 07:29:00 GMThttp://www.oiklr.tw/jb2011/archive/2019/10/25/434883.htmlhttp://www.oiklr.tw/jb2011/comments/434883.htmlhttp://www.oiklr.tw/jb2011/archive/2019/10/25/434883.html#Feedback0http://www.oiklr.tw/jb2011/comments/commentRss/434883.htmlhttp://www.oiklr.tw/jb2011/services/trackbacks/434883.html阅读全文

Jack Jiang 2019-10-25 15:29 发表评论
]]>
2013粶Ϸ 篮彩 ƹ ʻФͼ ʽô 新疆11选5 pc΢ ɽʮһѡ 򳡵ر׼ߴͼֽ 球探比分网球比分 ѵ׬Ǯ ʺʮֿѯ ٷֻϷ ʻФѯ ÷cܽ 云南十一选五