Android中级第十二讲之DNS问题

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:  本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 网络请求经过客户端请求,发送数据包、代理(转发)、隧道(信道)、网关(DNS),最终到服务器。


 本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!


网络请求经过客户端请求,发送数据包、代理(转发)、隧道(信道)、网关(DNS),最终到服务器。我们都知道网址要通过DNS解析成IP才能到达服务器,也就说IP变化其实到达的是不同的服务器;而这里就涉及到三个问题,第一DNS怎样解析为IP,第二怎样防止IP被篡改,第三IP是否需要缓存。

首先DNS解析的目的是为了得到用户IP,将服务交给距离最近的服务器处理;使用IP直连可以减少解析等待时间,httpdns工具可以解析网址获得IP,例如DnsPod,好处是绕过运营商的LocalDNS,减少域名解析异常情况的出现。

其次IP被篡改,往往由于DNS解析过程出错或者被劫持,这时可以使用本地代理来处理网络请求,将网络请求的数据+签名信息进行校验,同时使用dnspod解析出ip进行校验是否是合法ip,最后使用https的方法发起网络请求。

接着DNS一般都存在缓存时间,放置在java.net.InetAddress和虚拟机层,如果没有则查询DNS服务器获取。通过如下代码设置虚拟机层的DNS缓存时间。

Security.setProperty("networkaddress.cache.ttl", String.valueOf(-1));//查询成功的缓存 -1表示久缓存

Security.setProperty("networkaddress.cache.negative.ttl", String.valueOf(0));//查询失败的缓存  0代表永不缓存

单位是秒,其他时间代表缓存时间,而4.0以前是永久缓存,4.0以后默认为2秒

顺便讲下Http请求

get可以加入书签在浏览器端做缓存,意思是从服务器获取数据(查)

post不可以加入书签,意思是向服务器传输数据(改)

put(增)

delete(删)


http://www.w3school.com.cn/tags/html_ref_httpmethods.asp

弱网情况下,只好通过压缩数据包来增加请求成功率,详见:

http://www.cnblogs.com/answer1991/archive/2012/05/07/2487052.html

UTC:原子时

GMT:格林威治时间

Http和Socket通信均属于TCP通信,均是三次握手,四次关闭。

关于网络安全与网络优化

JsConsole:body.contentEditable=true使Elements变的可写入

http://blog.csdn.net/u010983881/article/details/52692788



目录
相关文章
|
网络协议 API Android开发
Android Webview场景下防止dns劫持的探索
阿里云HTTPDNS是避免dns劫持的一种有效手段,在许多特殊场景都有最佳实践,拦截方案是目前已知的一种在webview上应用httpdns的可行方案,本文从拦截方案的基本原理出发,尝试分析该方案背后存在的局限,并给出一些可行性上的建议。
8092 0
|
缓存 网络协议 API
Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成
Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成一、前言谈到优化,首先第一步,肯定是把一个大功能,拆分成一个个细小的环节,再单个拎出来找到可以优化的点,App 的网络优化也是如此。
3254 0
|
网络协议 Shell Android开发
Android模拟器如何设置DNS访问局域网内网站
我们需要用到android-sdk开发包中adb shell指令 见下图   退出adb shell exit
2050 0
|
19天前
|
XML 存储 Java
探索安卓开发之旅:从基础到进阶
【9月更文挑战第37天】安卓开发,一个充满无限可能的领域。它不仅关乎技术的深度与广度,更关乎开发者的成长与突破。本文将带你走进安卓开发的世界,从基础知识的学习到进阶技巧的掌握,一起感受编程的魅力与乐趣。
|
13天前
|
缓存 搜索推荐 Android开发
安卓开发中的自定义控件实践
【10月更文挑战第4天】在安卓开发的海洋中,自定义控件是那片璀璨的星辰。它不仅让应用界面设计变得丰富多彩,还提升了用户体验。本文将带你探索自定义控件的核心概念、实现过程以及优化技巧,让你的应用在众多竞争者中脱颖而出。
|
13天前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
54 1
|
16天前
|
Android开发
Android开发表情emoji功能开发
本文介绍了一种在Android应用中实现emoji表情功能的方法,通过将图片与表情字符对应,实现在`TextView`中的正常显示。示例代码展示了如何使用自定义适配器加载emoji表情,并在编辑框中输入或删除表情。项目包含完整的源码结构,可作为开发参考。视频演示和源码详情见文章内链接。
41 4
Android开发表情emoji功能开发
|
14天前
|
Web App开发 安全 程序员
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
多年的互联网寒冬在今年尤为凛冽,坚守安卓开发愈发不易。面对是否转行或学习新技术的迷茫,安卓程序员可从三个方向进阶:1)钻研谷歌新技术,如Kotlin、Flutter、Jetpack等;2)拓展新功能应用,掌握Socket、OpenGL、WebRTC等专业领域技能;3)结合其他行业,如汽车、游戏、安全等,拓宽职业道路。这三个方向各有学习难度和保饭碗指数,助你在安卓开发领域持续成长。
42 1
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
|
12天前
|
缓存 搜索推荐 Android开发
安卓开发中的自定义控件基础与进阶
【10月更文挑战第5天】在Android应用开发中,自定义控件是提升用户体验和界面个性化的重要手段。本文将通过浅显易懂的语言和实例,引导你了解自定义控件的基本概念、创建流程以及高级应用技巧,帮助你在开发过程中更好地掌握自定义控件的使用和优化。
25 10
|
4天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
24 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库