详细分析:当我们用浏览器访问一个网站到页面展示,背后经历了什么?

news/2024/5/14 8:50:33/文章来源:https://blog.csdn.net/qq_20185737/article/details/117912391

文章目录

  • 一、前提概要
    • 1、网络分层模型
    • 2、什么是IP地址?
    • 3、什么是域名?
    • 4、什么是DNS
  • 二、漫漫取经之路就在脚下
    • 1、域名解析
    • 2、建立TCP连接(三次握手)
    • 3、获取资源
    • 4、浏览器解释


当我们用浏览器访问一个网站到页面显示出来,身为用户我们只要用鼠标点点点就实现了页面展示,但是实际过程是有亿点点复杂。

大致过程为:

  1. 域名解析获取域名对应的IP地址
  2. 获得服务器的IP地址后与其建立TCP连接
  3. 客户机发送请求和接收资源

那么具体是怎样的过程的呢?


一、前提概要


1、网络分层模型


2、什么是IP地址?

  • IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
  • IP地址32比特的全球唯一标识符
  • IP地址在整个因特网范围内是唯一的。

3、什么是域名?

  • 因特网采用层次树状结构的命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称, 即域名DomainDomainDomain NameNameName)。
  • 域(DomainDomainDomain) 是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二 级域、三级域等。
  • 每个域名都由标号序列组成,而各标号之间用点(“.") 隔开。

4、什么是DNS

  • 域名系统(DomainDomainDomain NameNameName SystemSystemSystemDNSDNSDNS):因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如 www.baidu.com)转换为便于机器处理的 IPIPIP 地址。
  • DNS使用了大量的域名服务器,他们以层次方式组织
    1. 根域名服务器1
    2. 顶级域名服务器2
    3. 授权域名服务器(权限域名服务器)3
    4. 本地域名服务器4

二、漫漫取经之路就在脚下


1、域名解析

访问www.baidu.com时,需要将域名映射为对应的 IPIPIP 地址。即域名解析的过程。

  1. 首先由客户机向其本地域名服务器发出一个 DNSDNSDNS 请求报文
  2. 本地域名服务器在收到请求后,先查询本地缓存中是否存在该记录,若没有,则以 DNSDNSDNS 客户的身份向根域名服务器发出解析请求报文
  3. 根域名服务器根据收到的请求,判断该域名(www.baidu.comwww.baidu.comwww.baidu.com)属于.com.com.com 域,将对应的顶级域名服务器 dns.comdns.comdns.comIPIPIP 地址返回到本地域名服务器
  4. 本地域名服务器在向顶级域名服务器 dns.comdns.comdns.com 发送解析请求报文
  5. 顶级域名服务器 dns.comdns.comdns.com 根据请求,判断该域名属于(baidu.combaidu.combaidu.com)域,将授权域名服务器 dns.baidu.comdns.baidu.comdns.baidu.com 的IP地址返回给本地域名服务器
  6. 本地域名服务器在向授权域名服务器 dns.baidu.comdns.baidu.comdns.baidu.com 发送解析请求报文
  7. 授权域名服务器 dns.baidu.comdns.baidu.comdns.baidu.com 根据请求,判断域名属于(www.baidu.comwww.baidu.comwww.baidu.com )域,将查询结果(即域名www.baidu.comwww.baidu.comwww.baidu.com 对应的IP地址)返回给本地域名服务器
  8. 本地域名服务器将域名www.baidu.comwww.baidu.comwww.baidu.com 对应 IPIPIP 地址保存到本地缓存,并返回给客户机,至此域名解析完成

那么是怎么通过 TCP/IPTCP/IPTCP/IP 网络结构发送到域名服务器?

  1. 应用层发送一个 DNSDNSDNS 请求报文,传送给传输层
  2. 传输层为 UDPUDPUDP 请求报文加上 UDPUDPUDP 请求头,形成 UDPUDPUDP 数据报,传送给网络层
  3. 网络层在 UDPUDPUDP 数据报的基础上添加 IPIPIP 请求头形成 IPIPIP 数据报,用 ARPARPARP 地址解析协议解析出下一跳的 MACMACMAC 地址
  4. 数据链路层为 IPIPIP 数据报加上帧头和帧尾,封装成帧
  5. 物理层将报文传输给下一跳,(这里下一跳即域名服务器,事实上应该会跳转多个路由器)传输到域名服务器,域名服务器的每层再对数据进行一个拆封的过程。
  6. 域名服务器查询到 IPIPIP 地址之后原路返回

2、建立TCP连接(三次握手)

  1. 服务器上会有一个进程一直在不断地监听 TCPTCPTCP 80端口
  2. 客户机在获取到对应的 IPIPIP 地址之后,客户机向服务器发送一个连接请求报文
  3. 服务器监听到连接请求报文之后,向客户机返回一个确认报文,并为此次 TCPTCPTCP 连接分配缓存和变量
  4. 当客户机收到确认报文段后,再向服务器发出一个确认报文,并为此次连接分配缓存和变量
  5. 服务器再收到确认报文之后, TCPTCPTCP 连接就建立成功了

3、获取资源

设HTTP协议使用持久连接5:

  1. TCP连接建立成功之后,客户机向服务器通过TCP连接发送携带请求资源信息的HTTP请求报文
  2. 服务器收到HTTP请求报文之后,通过HTTP响应报文将客户机请求的资源发送给客户机
  3. 如需多个资源,重复以上操作即可

注:

实际上,客户机向服务器在建立TCP的第三次握手时发送的确认报文可以携带上HTTP请求报文


4、浏览器解释

  • 客户机在接收到服务器返回的资源后,对其进行解释,用超文本标记语言(HTMLHTMLHTML)将其显示在屏幕上

把握住今天,胜过两个明天。


  1. 最高层次的域名服务器 ↩︎

  2. 负责管理再该顶级域名服务器注册的所有二级域名 ↩︎

  3. 将管辖的主机名转换为该主机的IP地址 ↩︎

  4. 当主机发出DNS查询请求时,这个请求报文就发送给该主机的本地域名服务器 ↩︎

  5. 持久连接,是指万维网服务器在发送响应后仍保持这条连接,使同一个客户和服务器可以继续使用这条连接传送后续的HTTP请求与响应报文。HTTP/1.1HTTP/1.1HTTP/1.1 支持 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_749399.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设部署与发布--笔记2-部署Apache

网站部署(Linux) 部署Apache 操作系统:CentOS 7.21.首先连接云服务器,清楚系统垃圾。 $ yum clean all Loaded plugins: fastestmirrorCleaning repos: base epel extras updatesCleaning up everythingCleaning up list of faste…

使用github搭建自己的个人网站(装逼指南)

哈喽,你好。欢迎进来我的博客。 上一篇关于git的教程是教大家如何在github上面窗子哦及的本地项目。这次呢,和大家分享一下如何使用github创建自己的个人网站。 当然,前提还是得有github的账号,没有的话赶紧去注册一个。官网&am…

网站分享

各大网站页面上都会有分享到其他平台的功能。比如这个样子: 要是用这个分享的功能很简单。 给大家介绍一个网址:http://www.bshare.cn/ bshare是一个免费的分享平台,进入后打开 接下来按步骤走 最后将代码复制即可:

github搭建个人网站后如何设置域名

最近搭建了自己的个人网站,刚刚买了域名,设置时踩了几个坑,这里记录下。 这是我的地址:https://struggle20160730.github.io 是不是很难记,没办法,之前注册用户名的时候根本不知道还会用到,唉! 下面是我…

大型网站技术架构(一)大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及ses…

HTML5 + CSS3 + JS 演示网站

文章来源: http://developer.51cto.com/art/201112/309731.htm 先看一些有趣的东西。这些网站利用JavaScript将Canvas,WebGL,CSS3和HTML5元素这些浏览器技术融合在了一起。通常这些技术只是用来取悦用户,或是在现代的浏览器中显示一些新的功能…

jquery仿网站客服

之前在网上看的一个效果,因为目前在外包公司了。经常要用到这个效果,所以还是保留下比较好。在线预览:http://www.bright2017.top/test1/test1-15/ 出处实在找不到了,就不留原创地址了。

js资源链接jq地址BootCDN 和一些比较好的网站收藏

1.BootCDN:https://www.bootcdn.cn/ 1.1.可以搜素需要的网络资源,非常齐全 2.这个网站将前端的一些东西做了整理,找起来比较方便 2.1 网址: https://www.bestvist.com/nav 2.2内容

网站被黑提醒该站点可能受到黑客攻击,部分页面已被非法篡改

2019独角兽企业重金招聘Python工程师标准>>> 大清早的一上班收到3个网站客户的QQ联系,说是自己公司的网站被跳转到了北京sai车,cai票,du博网站上去了,我们SINE安全公司对3个网站进行了详细的安全检测,发现这…

大型网站技术架构(八)网站的安全架构

2019独角兽企业重金招聘Python工程师标准>>> 从互联网诞生起,安全威胁就一直伴随着网站的发展,各种Web攻击和信息泄露也从未停止。常见的攻击手段有XSS攻击、SQL注入、CSRF、Session劫持等。 1、XSS攻击 XSS攻击即跨站点脚本攻击(…

仿站小工具(获取网站源资源)

仿站小工具 仿站小工具是通过网址下载静态网页的工具。从输入的网址下载html代码,提取出JS、Css、Image、Picture、Flash等静态文件网址,再从下载完好的Css代码中提取出Image静态文件网址,通过网址下载静态文件,根据软件设置好的…

系统项目发布网站

自己做好了一个系统项目后,可以让第二个人随时随地访问,就需要将项目发布到网站上,web端, 1.在VS2012中打开自己的项目,选中项目,右键-发布网站 2. 弹出窗口“发布网站”,“目标位置”&#xf…

安装IIS8.0,ASP以及相关配置,网站搭建

第一大步,请参照这个链接 https://blog.csdn.net/lq18804095672/article/details/106541099 第二大步,在服务器123上,安装IIS8.0 1.找到“服务器管理器”,点击“添加角色和功能”, 2.“添加角色和功能向导”窗口&…

解决网站无法复制文字

1、以360浏览器为例 2、打开一个正常的网页,右键----审查元素 3、在地址栏中输入无法复制内容的网址,即可对所选文件进行指向,然后复制了 以上方法可以复制一段文字,如果要想快速复制整篇,采用如下方法,选…

USBWebserver(网站架设工具)

USBWebserver是一款免费的电脑网站架设工具。该软件可以让用户快速搭建PHP Version、Apache、PhpMyAdmin、MySQL等网站运行必备的主机套件,让你轻轻松松构架自己的网站。 USBWebserver 是款非常好用的一键式本地电脑快速架设PHP网站环境的工具 USBWebserver集成了Ap…

nginx服务器的网站权限问题

有时候我们的网站根目录会从一个目录迁移到另一个目录,如果我们服务器使用的是nginx或者Apache,我们一般会配置好网站根目录后然后往直接把网站解压或者上传到根目录中,这样引起的问题是无法对对文件进行任何的操作导致网站的异常&#xff0c…

网站统计51LA数据引用功能详解及添加方法

新版51啦于2018年6月20日上线数据引用功能!新手站长网来说说数据引用功能的介绍以及使用方法: 什么是数据引用功能?51la数据引用简单来讲,就是把你网站的实时在线人数,今天访问量、昨天访问量、本月访问量、本月总访问…

Chrome68将所有HTTP网站标记为不安全!你的网站HTTPS了吗?

为了使网络更加安全,让更多的互联网用户使用其 Chrome 浏览器,Google 宣布,未来的 Chrome 版本将把所有的 HTTP 网站标记为“不安全(non-secure)”。Chrome68将所有HTTP网站标记为不安全Chrome68在7月将自动标记HTTP为…

阿里云网站域名备案流程全过程(图文讲解)

阿里云网站备案备案很简单,阿里云有专门的备案客服,整个备案过程阿里云百科网分成三部分:备案前提备案中信息填写和材料提交备案等待,阿里云百科网图文讲解阿里云域名备案全过程: 备案前提 网站备案前提准备&#xf…

网站域名备案密码的获取方法

什么是备案密码?备案密码是工信部给的,每个ICP备案号都有一个由工信部颁发的专属密码,备案君分享备案密码的获取方法: 什么是备案密码? 每个ICP备案号都有一个由工信部颁发的专属密码,解铃还须系铃人&…