浏览器输入一个网址,期间发生了什么

摘要:
始终存在一个问题,即浏览器输入一个网站,以及在这段时间内发生的情况。我刚看了电子书,看到作者写得很好,所以我准备站在巨人的肩膀上说话。作者是“小林编码”。如有侵权,请联系1030417923@qq.com 。 让我们先看看拓扑图:根据拓扑图逐一分析。1.在浏览器解析URL之后,HTTP首先生成发送到web服务器的请求信息。作为一个将域名和IP地址相互映射的分布式数据库,它可以使人们更容易地访问互联网。说白了,就是帮助查找域名的IP地址,然后返回。

一直有一个问题,就是浏览器输入一个网址,期间发生了什么,刚好看电子书,看作者写的挺好,就准备站在巨人肩膀聊一聊,作者是"小林coding",如有侵权,联系1030417923@qq.com。

我们先来看一下拓扑图:

浏览器输入一个网址,期间发生了什么第1张

根据拓扑图进行一 一剖析

1.HTTP(浏览器做的第一步就是解析URL,也就是怎么平时说的网址)

  首先浏览器对URL解析后,会生成发送给web服务器的请求信息。

下图是URL的组成:

浏览器输入一个网址,期间发生了什么第2张

 当没有上图蓝色部分的路径名时,就默认访问根目录下事先设置好的文件,学过Javaweb  都知道,都会默认去找index.html

生产HTTP请求信息

对URL解析完成之后,浏览器就确定了文件名和web服务器,接下来就该根据这些解析而来的信息生产HTTP请求了。

浏览器输入一个网址,期间发生了什么第3张

 2.真是地址查询----DNS

到这里很多人可能不是很清楚  这个看着很眼熟的DNS到底是什么,下面先解释一下。

  域名系统,他是互联网的一项服务。它作为将域名IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,说白了就是帮忙找到域名的ip,然后返回。

好解释完了  我们继续----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

生成http消息后,需要委托操作系统将http消息发送到要访问的web服务器,但是操作系统发送消息时,必须提供通信对象的ip地址,意思就是不认域名,只认ip地址。

所以,又这么一种服务器就专门保存了web服务器域名与IP对象关系,他就是DNS服务器。在域名中,越靠右的位置表示其层级越高。

  层级关系如下:

  根DNS服务器

  顶级域DNS服务器(com)

  权威DNS服务器(server.com)

其中根域的DNS服务器信息保存在互联网中所有的DNS服务器中。

域名解析工作流程,可以配合下图理解

 1. 客户端首先会发出一个DNS请求,问www.server.com的IP是啥,并发给本地DNS服务器(也就是客户端的TCP/IP设置中填写的DNS服务器地址)。

 2.本地域名服务器收到客户端的请求后,如果缓存里的表格能找到www.server.com,则它直接返回IP地址。如果没有,本地DNS会去问它的根域名服务器:“老大,能告 诉我www.server.com的IP地址吗?” 根域名服务器是最高层次的,它不        直接用于域名解析,但能指明一条道路。

3.根DNS收到来自本地DNS的请求后,发现后置是.com,说:“www.server.com 这个域名归.com区域管理”,我给你.com顶级域名服务器地址给你,你去问问它吧。”

4.本地DNS收到顶级域名服务器的地址后,发起请求问“老二,你能告诉我www.server.com的IP地址吗?”

5. 顶级域名服务器说:“我给你负责www.server.com区域的权威DNS服务器的地址,你去问它应该能问到”

6. 本地DNS于是转向问权威DNS服务器:“老三,www.server.com对应的IP是啥呀?”server.com的权威DNS服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。

7.权威DNS服务器查询后将对应的IP地址X.X.X.x 告诉本地DNS。

8.本地DNS再将IP地址返回客户端,客户端和目标建立连接。

浏览器输入一个网址,期间发生了什么第4张

今天先到这 ,

免责声明:文章转载自《浏览器输入一个网址,期间发生了什么》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇输入框获取焦点 显示/隐藏 valueMaven 多模块父子工程 (含Spring Boot示例)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

DNSmasq架设简单DNS服务器

DNSmasq是一个轻巧的,容易使用的DNS服务工具,它可以应用在内部网和Internet连接的时候的IP地址NAT转换,也可以用做小型网络的DNS服务。 实验环境:centos 7.8 mininstall 最小化安装 1 安装dnsmasq软件 yum -y install dnsmasq 启动服务,并设置开机自启, systemctl ena...

charles 手机证书下载安装

本文参考:charles 手机证书下载安装 本文的Charles,适应windows/MAC/IOS/Android,避免抓包HTTPS失败和乱码; 用的版本是V4.1.2,其它版本原理类似; charles如果不配置SSL通用证书; 会导致HPPTS协议的域名抓取失败/乱码的现象; 现在SSL越来越多,很多博客都上了SSL,支付相关的行业更是基础配置;...

一次erlang 节点CPU严重波动排查

  新服务上线后观察到,CPU在10 ~ 70%间波动严重,但从每秒业务计数器看业务处理速度很平均。   接下来是排查步骤:   1. dstat -tam      大概每10s一个周期,网络流量开始变得很小,随后突然增大,CPU也激增。   网络流量变化和从性能计数器结果上并不符合,服务相关业务较为复杂,先找出那个业务占用网络流量。   2. ifto...

WordPress 开启多站点多域名

为什么开启多站点(网络管理)?当我们只有一台服务器,但又想要搭建多个不同的博客(官网)时,一个站点已经满足不了我们的需求,因此我们需要开启WordPress的多站点功能。WordPress多站点功能为WordPress 3.0后的新特性,请注意版本问题。 开启后有什么效果?启动WordPress的多站点功能后,您可以:     1、可搭建多个独立的站点。各...

Yapi数据迁移(docker版)

前言 最近腾讯99一年的特价服务器要到期了,搭建在服务器上的yapi还在使用。本想直接把项目的接口全部导出来,再导入到新的服务器上。但想了下,账号这些的还要他们重新去建,接口地址也要重新配置,本人一直比较赖,思来想去还是无缝迁移吧,大家都省事。 方案 A为老机器,B为新机器。 1.将A服务器(老服务器)上的docker中的MongoDB数据备份; 2.将备...

syslogng 消息过滤 寻找来源

引用:http://baike.baidu.com/view/3426564.htm 一、基础 syslog-ng作为syslog的替代工具,可以完全替代syslog的服务,并且通过定义规则,实现更好的过滤功能。 系统自带版本: 引用 # rpm -qa|grep syslog-ng syslog-ng-1.6.7-1 syslog官方网站: 点击 最新版...