美文网首页
浏览器访问服务器的过程

浏览器访问服务器的过程

作者: yeathMe | 来源:发表于2018-01-09 19:31 被阅读0次

首先判断要解析域名,但是解析域名之前首先找到域名服务器,根据配置的域名服务器的ip地址判断 这个域名服务器是否在本网络范围内,一般情况下域名服务器都和当前电脑不在同一个局域网范围内,所以当前电脑需要通过网关访问外网。

我们假定 电脑配置了网关ip,那么 首先当前pc需要向这个网关发送查询DNS的数据,但是因为仅仅知道网关的ip还不知道网关的mac地址,所以会首先使用ARP协议查询当前网关的mac地址。这个arp协议数据包是通过广播的形式发送的,也就是说ARp协议数据包中的ip地址就是网关的ip地址(下图中的Target Ipj就是查询目标主机的ip),但是 mac地址全为F。 下图中右上角的位置 DEST ADDR :FFFF FFFF FFFF

image.png

这样当前主机就知道网关的mac地址。此时当前pc发送 dns查询数据包(UDP协议),首先数据包中的ip地址是DNS主机的ip地址,数据包的mac地址就是网关的mac地址,因为是在局域网内发送数据,所以是通过广播的形式发送,然后局域网内的主机都可以接收到这个数据包,但是仅网关的mac地址匹配,所以网关可以收到这个数据包。然后网关根据路由表和数据包中DNS服务器的ip地址查询路由表得到 下一条路由器的ip地址,如果此时没有下一条路由器的mac地址,那么就使用arp广播发送查询下一条路由器的mac地址。

这样整个过程就可以实现将查询DNS请求数据包发送给DNS 主机,DNS主机解析之后返回数据。DNS解析之后就得到了这个DNS域名对应 的ip。

需要说明的是:
(1) ARP协议是局域网内的 ip地址到mac地址解析协议,注意是局域网内使用的,arp请求是多播,主机发送一个arp请求 该局域网内的所有主机都可以收到,但是仅ip地址匹配的主机会将自己的mac地址放到arp

然后当前pc 发送Http请求,这个请求底层使用tcp协议,数据包中 的ip地址是web服务器的ip地址,mac地址是网关的mac地址。 事实上 当前pc首先 判断 web服务器的ip 和当前主机是否在同一个局域网内,如果在同一个局域网内(也就是使用当前pc的子网掩码与上web服务器的ip地址,所得结果是否等于当前pc所在子网的网络号),如果是处于同一个局域网,那么直接使用arp协议获取这个web服务器的的mac 地址,然后通过硬件广播的形式发送请求就可以了。但是大多数情况下web服务器 和本机不在同一个 局域网内,所以当前pc需要将数据包的ip地址设置为web服务器的ip地址,然后将mac地址设置为网关的mac地址,通过广播的方式交给网关处理。
网关收到后就根据数据包的目的ip地址查询下一条路由器,更改数据的目的mac地址,转发数据包给下一条。
整个过程就是数据传送的过程。

当然, 在当前pc 请求web数据之前需要首先和web服务器建立 tcp连接,这个过称就是三次握手的过程。
三次握手建立之后 发送get请求获取页面数据,服务器返回页面数据,浏览器加载渲染, 最终超过一定 的时间之后 通过4次挥手断开Http连接

特别强调的一点是: 当三次握手建立成功之后,客户端发出get请求 ,浏览器接收到get请求之后需要对这个请求进行确认,也就是返回一个确认数据,然后才发回页面数据,客户端接收到页面数据之后也要发回一个对页面数据的确认。 并不是说客户端发愁get请求 浏览器返回页面数据 仅这两个过程。 http是基于tcp的,底层都要有确认。

相关文章

  • 任务一

    第一章 一个普通网站访问的过程 用户操作浏览器访问,浏览器向服务器发出一个 HTTP 请求; 服务器接收到 HT...

  • 熟悉后端语言

    PHP的执行过程 浏览器找到服务器,浏览器访问的脚本(.php)交给PHP处理程序处理,接收到代码访问数据库查找是...

  • HTTP的请求与响应

    对于浏览器访问网站的过程中发生的请求与响应的相关知识 一、 浏览器与服务器是如何沟通的 浏览器负责发起请求 服务器...

  • 浏览器访问网址,是一个什么样的过程?

    首先要知道网站访问大概是什么个过程:假设你在浏览器地址栏输入这个问题的地址 访问过程和下图差不多,浏览器和服务器交...

  • b/s模式的http请求过程(笔记)

    b/s -浏览器,服务器 模式中,http整个过程是如何进行的 1、浏览器通过 URL 进行访问 2、浏览器通过D...

  • 第五章、网络通讯实战

    1、客户端与服务器1.1、解析一流浏览器访问网页的过程解析DNS,获得IP地址访问服务器。在编写网络通讯程序时,只...

  • http的302和304

    302重定向 浏览器访问服务器,服务器返回带着location,浏览器直接访问location指定的链接。 304...

  • CDN缓存原理

    启用 CDN 缓存后浏览器访问的全过程: 用户输入 URL,浏览器将解析过后的域名发给 DNS 服务器 CDN 返...

  • 浏览器渲染的原理

    浏览器渲染过程: 用户输入网址(假设是个 HTML 页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回 ...

  • 浏览器访问服务器过程!

    1.域名访问会先发送请求访问DNS服务器,返回服务器IP地址;2.根据服务器IP以及服务器端口,浏览器发起HTTP...

网友评论

      本文标题:浏览器访问服务器的过程

      本文链接:https://www.haomeiwen.com/subject/cnjgnxtx.html