• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:从解决Github-TimeOut到经典面试题从输入URL到浏览器显示页面发生了什么

java 搞代码 4年前 (2022-02-19) 27次浏览 已收录 0个评论

问题形容

Windows 操作系统上,push代码到git的时候,呈现了Failed to connect to github.com port 443: Timed out的谬误。一脸懵逼,浏览器网页也拜访不了。

思路以及解决方案
一开始,我认为本人代理网络呈现了问题,关掉之后,还是一样的问题。首先咱们能够应用以下的命令,删除代理配置:

<code class="shell">git config --global --unset http.proxy

而后关上ipaddress.com,查问以下的域名,记录其ip:

  • github.com
  • github.global.ssl.fastly.net


而后关上C:\Windows\System32\drivers\etc\hosts文件,把两个ip配置进去:

保留之后,关上CMD,刷新DNS,从新push

<code class="shell">ipconfig /flushdns


以上做法能够解决局部连贯github慢的问题,次要是超时的问题,如果不是超时的问题,下面的做法是不会起作用的,这个只是把对应的域名和ip的对应关系间接映射在DNS配置上,不必去查找了,间接找到ip地址。

为什么刷新DNS就失效了呢?
这就波及到一个面试常常问的一个问题了,先把问题变成:在浏览器输出一个www.baidu.com,会产生什么?间不固定。

为什么刷新DNS就失效了呢?这就波及到一个面试常常问的一个问题了,先把问题变成:在浏览器输出一个www.baidu.com,会产生什么?

  1. 解析域名:首先须要依据域名去查找该域名的ip地址,解析前会先查看浏览器的缓存,浏览器会保留一段时间拜访的网址的DNS地址,依据浏览器不同工夫不固定(在chrome浏览器中输出:chrome://dns/,能够看到chrome浏览器的DNS缓存。)。
  2. 如果浏览器的缓存没有这个记录,那么就回去查找零碎的缓存,零碎缓存没有的状况会去查找 hosts 文件外面的 ip 地址(如果存在的话)。
  3. 如果本地的hosts文件外面没有该域名对应的ip地址,那么就会发送一个DNS申请到本地DNS服务器,个别是由网络接入服务器商提供(譬如中国移动)。
  4. 申请达到本地DNS服务器之后,也会先查问缓存,缓存有则间接返回,没有则递归查问,本地DNS服务器须要向根服务器查问。
  5. 根服务器不记录具体的域名和ip对应关系,会通知DNS服务器,到域服务器(给出地址)上查问。
  6. 持续往域服务器查问,譬如“baidu.com”. -> .com -> baidu.com. -> www.baidu.com.,查问到之后,写入缓存并且返回ip。
  7. 拿到ip之后,会建设TCP链接,也就是三次握手。
  8. 三次握手胜利之后,浏览器发动HTTP申请,申请包含三局部:申请办法URI协定/版本,申请头,注释。
  9. 服务器解决申请,返回。
  10. 敞开TCP链接,四次握手(或称四次挥手)。
  11. 浏览器解析报文或者资源,渲染。

上述只是一个概述,具体的细节很多,这个下次具体聊聊,然而咱们能够看出,在这个过程中的确波及到了DNS的服务器以及缓存,所以咱们刷新缓存之后,拜访github就能够申请到对应的ip下来。

【刷题笔记】
Github仓来源gaodai$ma#com搞$$代**码网库地址:https://github.com/Damaer/cod…
笔记地址:https://damaer.github.io/code…

【作者简介】
秦怀,公众号【秦怀杂货店】作者,技术之路不在一时,山高水长,纵使迟缓,驰而不息。集体写作方向:Java源码解析,JDBC,Mybatis,Spring,redis,分布式,剑指Offer,LeetCode等,认真写好每一篇文章,不喜爱题目党,不喜爱花里胡哨,大多写系列文章,不能保障我写的都完全正确,然而我保障所写的均通过实际或者查找材料。脱漏或者谬误之处,还望斧正。

2020年我写了什么?

开源刷题笔记

素日工夫贵重,只能应用早晨以及周末工夫学习写作,关注我,咱们一起成长吧~


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:从解决Github-TimeOut到经典面试题从输入URL到浏览器显示页面发生了什么

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址