Android中级第十二讲之DNS问题

  1. 云栖社区>
  2. 博客>
  3. 正文

Android中级第十二讲之DNS问题

liuzxgeek 2016-12-19 20:40:29 浏览1170
展开阅读全文


 本文来自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



网友评论

登录后评论
0/500
评论
liuzxgeek
+ 关注