浏览器访问一个地址的过程
一次访问网页请求的全过程详解
⼀次访问⽹页请求的全过程详解第⼀步:浏览器输⼊域名例如输⼊:第⼆步:浏览器查找域名的IP地址浏览器会把输⼊的域名解析成对应的IP,其过程如下:1. 查找浏览器缓存:因为浏览器⼀般会缓存DNS记录⼀段时间,不同浏览器的时间可能不⼀样,⼀般2-30分钟不等,浏览器去查找这些缓存,如果有缓存,直接返回IP,否则下⼀步。
2. 查找系统缓存:浏览器缓存中找不到IP之后,浏览器会进⾏系统调⽤(windows中是gethostbyname),查找本机的hosts⽂件,如果找到,直接返回IP,否则下⼀步。
3. 查找路由器缓存:如果1,2步都查询⽆果,则需要借助⽹络,路由器⼀般都有⾃⼰的DNS缓存,将前⾯的请求发给路由器,查找ISP 服务商缓存 DNS的服务器,如果查找到IP则直接返回,没有的话继续查找。
4. 递归查询:如果以上步骤还找不到,则ISP的DNS服务器就会进⾏递归查询,所谓递归查询就是如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的⾝份,向其他根域名服务器继续发出查询请求报⽂,⽽不是让该主机⾃⼰进⾏下⼀步查询。
(本地域名服务器地址是通过DHPC协议获取地址,DHPC是负责分配IP地址的)5. 迭代查询:本地域名服务器采⽤迭代查询,它先向⼀个根域名服务器查询。
本地域名服务器向根域名服务器的查询⼀般都是采⽤迭代查询。
所谓迭代查询就是当根域名服务器收到本地域名服务器发出的查询请求报⽂后,要么告诉本地域名服务器下⼀步应该查询哪⼀个域名服务器,然后本地域名服务器⾃⼰进⾏后续的查询。
(⽽不是替代本地域名服务器进⾏后续查询)。
本例⼦中:根域名服务器告诉本地域名服务器,下⼀次应查询的顶级域名服务器的IP地址。
本地域名服务器向顶级域名服务器进⾏查询。
顶级域名服务器告诉本地域名服务器,下⼀次应查询的权限域名服务器的IP地址。
本地域名服务器向权限域名服务器进⾏查询。
权限域名服务器告诉本地域名服务器,所查询的主机的IP地址。
浏览器访问页面步骤
浏览器访问页⾯步骤原⽂链接:⾯试时经常被问到:浏览器访问⼀个页⾯的时候背后的步骤是怎样的?我往往是把HTTP请求和响应讲了⼀下。
现在想想,感觉仅仅回答HTTP请求和响应有点太窄了。
所以,这⾥主要从计算机⽹络的⾓度将浏览器访问⼀个页⾯的背后的过程进⾏⼀个较为详细的解读。
域名->IP当在浏览器中访问⼀个⽹址的时候,⾸先要做的就是找到域名所对应的服务器的IP地址。
浏览器通常有三个途径来找IP地址。
1. 缓存。
包括浏览器的DNS缓存和OS的DNS缓存。
2. HOST⽂件。
浏览器会去本地的HOST⽂件中寻找域名对应的IP地址。
3. 域名服务器查询。
向本地域名服务器求助(⼀般是路由器),如果得不到还得向更⾼层次的域名服务器(根域名服务器、顶级域名服务器、权限域名服务器)求助。
本地域名服务器向⾼级域名服务器查询可以是迭代查询或递归查询。
HTTP得到服务器的IP地址后,需要向服务器请求所要加载⽹页的资源(HTML⽂件、图⽚等)。
这些资源的请求和获取可以通过HTTP完成。
⽽HTTP协议位于应⽤层,其是建⽴在传输层的TCP协议的基础之上。
想要完成HTTP请求和响应还需要通过TCP建⽴⼀个浏览器跟服务器的连接。
TCP连接HTTP的默认端⼝是80。
HTTPS的默认端⼝是443。
当没有特别指定的时候,服务器的端⼝就是默认端⼝。
浏览器的请求⽅端⼝是动态端⼝(范围49152~65535),并不固定。
TCP连接的建⽴需要通过“三次握⼿”来完成。
⽽TCP连接的建⽴还需要通过许多传输层以下协议栈的协议来提供⽀持:需要通过⽹络层IP协议来完成浏览器所在主机到服务器主机间的数据传输。
需要通过ARP协议完成IP地址到硬件地址的解析。
需要通过OSPF(⼀种内部⽹关协议)完成路由选择。
......HTTP当建⽴起TCP连接后,就可以发送HTTP请求了。
浏览器向服务器发送⼀个HTTP请求来请求资源。
服务器收到⼀个HTTP请求后,对请求进⾏相应的处理,⽐如说⾝份的验证、根据⽤户⾝份确定资源的具体内容(⽐如⽤户的个⼈信息页⾯,根据⽤户ID从数据库获取相应信息再⽣成html⽂件)。
访问网页流程
访问⽹页流程1. 浏览器发送请求到 dns服务器,dns服务器进⾏域名解析,解析完成之后浏览器拿到了⽹页服务器的IP地址2. 浏览器根据拿回来的ip地址发送http请求给⽹页服务器3. ⽹页服务器接收到http请求并处理,从⾃⼰的硬盘⽬录⾥找到浏览器请求的⽹页⽂件并返回给浏览器4. 浏览器接收到⽹页服务器返回的⽹页⽂件,开始⽤⾃⼰的内核渲染⽹页,并最终展⽰到显⽰器上这⾥的每⼀步都环环相扣,中间哪个步骤都不能掉链⼦。
并且每个步骤的执⾏速度,都会影响到我们对某个⽹站打开速度的直观感受。
我们再把影响这四个步骤的速度的因素来逐⼀分析:浏览器发送请求到 dns服务器,dns服务器进⾏域名解析,解析完成之后浏览器拿到了⽹页服务器的IP地址浏览器初步解析⽤户往地址栏输⼊的字符串。
如果⽤户输⼊的字符串是合法的⽹址:浏览器会检查⾃带的预加载HSTS列表(HTTP严格传输安全列表),这个列表⾥包含了那些请求浏览器只使⽤ https 进⾏连接的⽹站。
如果⽹站在这个列表⾥,浏览器会使⽤ https ⽽不是 http 协议,否则,没有标明协议的url域名会默认使⽤ http 协议访问。
(p.s. ⼀个⽹站哪怕不在 HSTS 列表⾥,也可以要求浏览器对⾃⼰使⽤HSTS政策进⾏访问。
浏览器向⽹站发出第⼀个HTTP请求之后,⽹站会返回浏览器⼀个响应,请求浏览器只使⽤HTTPS发送请求。
然⽽,就是这第⼀个HTTP请求,却可能会使⽤户受到⿊客攻击,这也是为什么现代浏览器都预置了HSTS列表)如果⽤户输⼊的字符串不是⽹址,只是瞎⼏把打的词语:浏览器会将地址栏中输⼊的⽂字传给⽤户设置的默认搜索引擎,⽐如百度。
⼤部分情况下,在把⽂字传递给搜索引擎的时候,URL会带有特定的⼀串字符,⽤来告诉搜索引擎这次搜索来⾃这个特定浏览器。
这时⽤户想要访问的域名就是百度的域名加上在地址栏⾥瞎⼏把打的搜索关键字‘谁是世界第⼀帅’最终拼凑出来的了在以上两种情况中,浏览器都会检查输⼊⽤户输⼊的字符串是否含有不是 a-z, A-Z,0-9之类的字符。
怎么设置路由器实现外网访问本地网站
怎么设置路由器实现外网访问本地网站确定电脑与路由器正确连接,并且已连至互联网。
在地址栏中输入192.168.0.1回车,输入用户名密码,进入路由器主界面。
然后点击左侧菜单中的“虚拟服务器”,——“端口段映射”打开“端口段映射”界面。
由于网站用的是80端口,所以我们在“常用服务端口”选择“HTP80”然后点击“填充到”ID 1。
就会自动填充到列表中ID为1中,然后填写内网IP地址,你机器IP地址是多少就填写多少。
我的IP192.168.0.102。
协议可选TCP,UDP,全部。
默认即可。
选择启用,最后保存所有设置。
PS:我比喜欢本机IP地址查询方法:Win+R ——cmd——ipconfig到此路由器中的设置已经完成。
我们再看看电脑中的设置。
文章开头也说了,是要人访问在电脑上架设的网站。
本文以Windows中的IIS为例。
打开IIS,找到网站右击选择“编辑绑定”打开“网站绑定”窗口,“主机名”为空不填,IP地址写本地IP地址192.168.0.102你自己电脑上多少就填多少。
在此需要注意的是若输入外网IP无反应,有可能是防火墙拦截,此时关闭防火墙或把端口80填加到防火墙中去即可。
以上设置成功后,就可以访问了。
可以把外网地址发给你的朋友测试一下,也可以自己在IE中输入外网地址测试。
在路由器中可查看到外网IP171.8.81.*。
我们输入地址栏后看到网站打开。
说明设置成功。
除了可以设置80端口外,还有其可设置比如21,8080等。
根据需要可设置不同端口。
END感谢您的阅读,祝您生活愉快。
浏览互联网网页的方法
浏览互联网网页的方法互联网已经成为了我们日常生活中不可或缺的一部分,而浏览互联网网页也是我们最常用的方式之一。
无论是查找信息、浏览新闻、学习知识还是进行娱乐,我们都离不开浏览网页。
本文将介绍一些常见的浏览互联网网页的方法,帮助您更好地适应现代社会的互联网环境。
1. 使用浏览器浏览器是我们访问互联网网页最常用的工具之一。
目前市面上有很多浏览器可供选择,如 Google Chrome、Mozilla Firefox、Microsoft Edge、Safari等。
不同的浏览器在操作界面和功能上可能略有差异,但基本的浏览网页功能都是相似的。
使用浏览器浏览网页的步骤如下: 1. 打开浏览器:在计算机桌面或开始菜单找到浏览器的图标,点击打开浏览器。
2. 输入网页地址:在浏览器的地址栏中输入想要访问的网页地址,然后点击回车键。
3. 等待加载:浏览器会向网页服务器发送请求,等待网页加载完毕。
4. 浏览网页:加载完毕后,您就可以浏览网页了。
使用鼠标滚轮或者滚动条可以在网页上下滚动,使用链接可以访问其他网页。
除了基本的浏览网页功能,浏览器还提供了一些实用的功能,如书签收藏、多标签页管理、插件扩展等,可以提升您的浏览体验。
2. 使用搜索引擎搜索引擎是我们在浏览互联网网页时常用的工具,它能够帮助我们找到我们所需要的信息。
常见的搜索引擎有 Google、百度、必应等。
使用搜索引擎浏览网页的步骤如下: 1. 打开浏览器:同样需要先打开浏览器。
2. 打开搜索引擎:在浏览器的搜索框中输入搜索引擎的地址,然后点击回车键。
3. 输入搜索内容:在搜索引擎的搜索框中输入您想搜索的内容,然后点击搜索按钮。
4. 查看搜索结果:搜索引擎会根据您的搜索内容显示相关的搜索结果,您可以点击搜索结果中的链接进行浏览。
搜索引擎还提供了一些高级搜索的功能,如关键字过滤、时间范围限定、搜索结果排序等,可以帮助您更精准地找到所需的信息。
3. 使用移动设备浏览网页随着智能手机和平板电脑的普及,越来越多的人开始使用移动设备来浏览网页。
在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)
在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)一个http请求的详细过程我们来看当我们在浏览器输入:8080/mydir/index.html,幕后所发生的一切。
首先http是一个应用层的协议,在这个层的协议,只是一种通讯规范,也就是因为双方要进行通讯,大家要事先约定一个规范。
1.连接当我们输入这样一个请求时,首先要建立一个socket连接,因为socket 是通过ip和端口建立的,所以之前还有一个DNS解析过程,把变成ip,如果url里不包含端口号,则会使用该协议的默认端口号。
DNS的过程是这样的:首先我们知道我们本地的机器上在配置网络时都会填写DNS,这样本机就会把这个url发给这个配置的DNS服务器,如果能够找到相应的url则返回其ip,否则该DNS将继续将该解析请求发送给上级DNS,整个DNS可以看做是一个树状结构,该请求将一直发送到根直到得到结果。
现在已经拥有了目标ip 和端口号,这样我们就可以打开socket连接了。
2.请求连接成功建立后,开始向web服务器发送请求,这个请求一般是GET 或POST命令(POST用于FORM参数的传递)。
GET命令的格式为:GET 路径/文件名HTTP/1.0文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。
现在可以发送GET命令:GET /mydir/index.html HTTP/1.0,3.应答web服务器收到这个请求,进行处理。
从它的文档空间中搜索子目录mydir的文件index.html。
如果找到该文件,Web服务器把该文件内容传送给相应的Web浏览器。
为了告知浏览器,,Web服务器首先传送一些HTTP头信息,然后传送具体内容(即HTTP体信息),HTTP头信息和HTTP体信息之间用一个空行分开。
常用的HTTP头信息有:①HTTP 1.0 200 OK 这是Web服务器应答的第一行,列出服务器正在运行的HTTP版本号和应答代码。
通过浏览器访问网站的过程
通过浏览器访问⽹站的过程
没有使⽤CDN的情况
访问的过程如图所⽰:
1.⽤户在⾃⼰的浏览器输⼊要访问的⽹站域名。
2.浏览器向本地DNS服务器请求对应域名的解析
3.本地DNS服务器中如果缓存有此域名的解析结果,则直接向⽤户相应解析结果,如果没有缓存此域名的解析结果,则以递归的⽅式向整体DNS系统请求解析,获得结果后应答浏览器
4.浏览器得到域名解析的结果,就是该域名服务器的IP地址,浏览器向此IP发出请求
5.服务端响应请求,把相应的数据传给浏览器
使⽤CDN时的情况
1. 当终端⽤户(北京)向 下的某资源发起请求时,⾸先向LDNS(本地DNS)发起域名解析请求。
2. LDNS检查缓存中是否有 的IP地址记录。
如果有,则直接返回给终端⽤户;如果没有,则向授权DNS查询。
3. 当授权DNS解析 时,返回域名CNAME 对应IP地址。
4. 域名解析请求发送⾄阿⾥云DNS调度系统,并为请求分配最佳节点IP地址。
5. LDNS获取DNS返回的解析IP地址。
6. ⽤户获取解析IP地址。
7. ⽤户向获取的IP地址发起对该资源的访问请求。
如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给⽤户,例如,图中步骤7和8,请求结束。
如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。
获取资源后,结合⽤户⾃定义配置的缓存策略,将资源缓存⾄节点,例如,图中的北京节点,并返回给⽤户,请求结束。
获取ip地址的方法
获取ip地址的方法获取IP地址的方法。
IP地址(Internet Protocol Address)是指互联网协议地址,是分配给网络上的每一个设备的数字标识,用于在网络中定位设备。
获取IP地址是网络管理和故障排除中的重要步骤,下面将介绍几种获取IP地址的方法。
1. 通过命令提示符获取IP地址。
在Windows操作系统中,可以通过命令提示符来获取IP地址。
首先点击开始菜单,输入“cmd”打开命令提示符窗口,然后输入“ipconfig”命令并按下回车键。
系统将显示出本机的IP地址、子网掩码、默认网关等信息。
通过这种方法可以快速获取本机的IP地址,方便进行网络设置和故障排除。
2. 通过网络设置界面获取IP地址。
除了使用命令提示符,还可以通过操作系统的网络设置界面来获取IP地址。
在Windows操作系统中,可以在控制面板的网络和共享中心中找到网络适配器的设置,查看本机的IP地址和其他网络信息。
在Mac OS和Linux系统中,也可以通过类似的网络设置界面来获取IP地址。
3. 通过路由器管理界面获取IP地址。
在局域网中,设备的IP地址通常由路由器动态分配,可以通过路由器的管理界面来查看设备的IP地址分配情况。
首先在浏览器中输入路由器的管理地址,登录路由器管理界面,然后找到局域网设置或DHCP分配页面,查看已连接设备的IP地址信息。
通过这种方法可以了解局域网内设备的IP地址分配情况。
4. 通过网络工具获取IP地址。
除了以上方法,还可以使用一些网络工具来获取IP地址。
例如,可以使用网络扫描工具来扫描局域网内的设备,并获取其IP地址和其他网络信息。
此外,还可以使用网络监控工具来实时监控设备的IP地址变化情况,及时发现网络故障和安全问题。
总结。
获取IP地址是网络管理和故障排除中的重要步骤,可以通过命令提示符、网络设置界面、路由器管理界面和网络工具等多种方法来获取IP地址。
掌握这些方法可以帮助用户更好地管理和维护网络设备,保障网络的正常运行和安全性。
用户通过域名系统访问网站资源的基本流程
用户通过域名系统访问网站资源的基本流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!理解用户通过域名系统访问网站资源的基本流程在互联网世界中,我们通常通过输入网址(即域名)来访问各种网站。
localhost原理
localhost原理在计算机网络中,localhost是一个特殊的主机名,它用于表示本地主机。
当我们在浏览器中输入localhost时,实际上是在访问自己计算机上的一个服务,而不是远程服务器。
那么,localhost是如何实现的呢?本文将介绍localhost的原理和实现方式。
我们需要了解IP地址的概念。
IP地址是用于标识计算机或设备在网络中的唯一地址。
IPv4地址由32位二进制数组成,通常以点分十进制表示,例如192.168.0.1。
而IPv6地址由128位二进制数组成,通常以冒号分隔的十六进制表示。
在计算机网络中,有一个特殊的IP地址127.0.0.1,也被称为环回地址(loopback address)。
当我们在浏览器中输入localhost时,实际上是在访问这个IP地址。
这个IP地址在操作系统中被解释为本地主机,即我们所使用的计算机。
为了更好地理解localhost的原理,我们需要了解一些基本的网络概念。
首先是网络协议栈,它是一组协议的集合,用于在计算机网络中进行通信。
其中最重要的是TCP/IP协议栈,它是Internet上最常用的协议栈。
在TCP/IP协议栈中,有一个重要的协议叫做传输层协议。
其中最常用的是传输控制协议TCP和用户数据报协议UDP。
当我们在浏览器中输入localhost时,浏览器会使用TCP协议与本地计算机进行通信。
在TCP协议中,有一个概念叫做端口号。
端口号用于标识一个应用程序在计算机上的唯一标识符。
常见的端口号有80(用于HTTP协议)、443(用于HTTPS协议)、22(用于SSH协议)等。
当我们在浏览器中输入http://localhost时,浏览器会默认使用80端口。
这时,浏览器会向本地计算机的80端口发送一个HTTP请求。
本地计算机会监听80端口,并将请求发送给相应的HTTP服务器。
在本地计算机上,可以运行各种各样的服务器软件,用于处理HTTP请求。
常见的服务器软件有Apache、Nginx、IIS等。
浏览器内输入网址到显示网页全过程及相关问题
浏览器内输⼊⽹址到显⽰⽹页全过程及相关问题在浏览器输⼊URL到把⽹页显⽰出来是⼀个很复杂的过程,其⼤致流程如下图所⽰:1、DNS解析什么是DNS解析?当⽤户输⼊⼀个⽹址并按下回车键的时候,浏览器得到了⼀个域名。
⽽在实际通信过程中,我们需要的是⼀个IP地址。
因此我们需要先把域名转换成相应的IP地址,这个过程称作DNS解析。
1. 请求⼀旦发起,浏览器⾸先要做的就是解析这个域名,⼀般浏览器会⾸先搜索⾃⾝缓存的DNS记录,⽐如chrome缓存1000条DNS解析结果;2. 当浏览器缓存中没有找到需要的记录或者记录已经过期,则会查看本地硬盘的hosts⽂件,看看其中有没有和这个域名对应的规则,如果有的话就直接使⽤ hosts ⽂件⾥⾯的 ip 地址。
(windows中可以通过 ipconfig / displaydns 命令查看本机当前的缓存);通过hosts ⽂件,可以⼿动指定⼀个域名和其对应的IP解析结果,并且该结果⼀旦被使⽤,同样可以缓存到hosts中,linux系统的hosts⽂件在/etc/hosts下⾯;3. 如果本地的hosts⽂件中没有找到对应的ip地址或者记录已经过期,则需要发送⼀个域名解析请求到本地域名解析服务器,本地DNS服务器会⾸先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果;如果没有,本地DNS服务器还要向DNS根域服务器进⾏查询。
(⼀般来说就是电脑上配置的DNS服务器⼀项)。
⼀般⼀台域名解析服务器会被地理位置临近的⼤量⽤户使⽤(特别是ISP的DNS,如中国联通、中国移动),⼀般常见的⽹站域名解析都能在这⾥命中;4. 假设要解析的域名是,本地DNS服务器中是没有查到的,便向根域服务器发送请求(注:根域服务器全球只有13台,所以不可能把所有的IP地址都记录下来,记录的是com域服务器的IP、cn域服务器IP的IP等等,如下图所⽰)。
很显然根域服务器上没有的IP,但是却有com域服务器的IP,所以根域服务器就把com域服务器的IP告诉本地DNS服务器,本地DNS服务器便到.com域服务器中去查找的IP;同样.com域服务器中也没有的IP,但是却有域服务器的IP,接着我们的域名解析服务器会向域服务器发出请求。
HTTP完整请求过程
HTTP完整请求过程重要申明:感谢原⽂作者——!我借鉴了原⽂的页⾯请求流程,原⽂见时序图之后正⽂。
重要申明:感谢原⽂作者——!我借鉴了原⽂的完整HTTP请求流程。
增加了时序图,有不妥之处,欢迎指正~~ (未完待续,需要增加后端服务器框架内部处理)⼀、引⾔前端不仅要让⽤户对⽹页有完美的体验,让⽤户尽快体验到完美的⽹页也是很重要的,这就要前端攻城狮掌握⼀些⽹络原理相关的知识了。
这⾥就来聊⼀聊从⽤户输⼊url到页⾯加载完成的过程中都发⽣了什么事情?⼆、正⽂⽤户输⼊url之后⼤致发⽣了以下⼏件事:1. 浏览器查找域名的IP地址。
这⼀步包括DNS具体的查找过程,包括:浏览器缓存 -> 系统缓存 -> 路由器缓存……2. 浏览器向web服务器发送⼀个http请求:三次握⼿、传送数据、四次挥⼿;3. 服务器的永久重定向响应:返回真正访问的地址;4. 浏览器跟踪重定向地址:另发⼀个http请求;5. 服务器处理请求;6. 服务器返回⼀个http响应;7. 浏览器显⽰html页⾯:解析html以构建DOM树 –> 构建渲染树 –> 布局渲染树 –> 绘制渲染树;8. 浏览器发送请求,获取嵌⼊在html中的资源(如图⽚、⾳频、视频、CSS、JS等等);9. 浏览器发送异步请求。
顺便附上http状态码:http状态码详细状态码状态原因1xx消息2xx成功3xx重定向4xx客户端错误5xx服务器错误5xx500接⼝报错了5xx502后端服务没启5xx503启动挂了下⾯我们就详细地了解⼀下这些过程:1. DNS查找IP地址DNS是域名系统(Domain Name System)的缩写,是因特⽹的⼀项核⼼服务。
它作为可以将域名和IP地址相互映射的⼀个分布式数据库,能够使⼈更⽅便的访问互联⽹,⽽不⽤去记住能够被机器直接读取的IP数字串。
1. DNS查找过程:1. 浏览器缓存 —— 浏览器会缓存DNS记录⼀段时间,但是操作系统并没有告诉浏览器储存DNS记录的时间。
WEB浏览器工作原理
WEB浏览器工作原理一、概述WEB浏览器是我们日常生活中时常使用的工具,它能够将我们输入的网址转化为可视化的网页内容。
本文将详细介绍WEB浏览器的工作原理,包括URL解析、HTTP请求、渲染引擎、页面布局和渲染等方面。
二、URL解析当我们在浏览器地址栏中输入一个URL时,浏览器首先会对该URL进行解析。
URL通常由协议、主机名、端口号、路径和查询参数等组成。
浏览器会根据这些信息来确定要访问的服务器和资源。
三、HTTP请求一旦URL解析完成,浏览器会根据URL中的协议(通常是HTTP或者HTTPS)发起相应的网络请求。
浏览器会构建一个HTTP请求报文,包括请求方法(GET、POST等)、请求头部(Accept、User-Agent等)和请求体(对于POST请求)。
然后浏览器会将该请求发送给服务器。
四、服务器响应服务器接收到浏览器发送的HTTP请求后,会根据请求的内容进行相应的处理。
服务器会构建一个HTTP响应报文,包括响应状态码(200表示成功、404表示资源未找到等)、响应头部(Content-Type、Content-Length等)和响应体(返回的网页内容)。
然后服务器将该响应发送给浏览器。
五、渲染引擎浏览器接收到服务器的响应后,会将响应报文交给渲染引擎进行处理。
渲染引擎负责解析HTML、CSS和JavaScript等网页内容,并将其转化为可视化的页面。
渲染引擎通常由解析器和布局引擎组成。
六、页面布局和渲染渲染引擎会将解析后的网页内容进行布局和渲染。
布局引擎负责确定网页中各个元素的位置和大小,而渲染引擎则负责将这些元素绘制到屏幕上。
渲染过程中还包括图象加载、字体渲染和动画效果等。
七、用户交互当网页加载完成后,用户可以与页面进行交互。
用户可以点击链接、填写表单、滚动页面等。
浏览器会根据用户的操作生成相应的事件,并通过JavaScript脚本来处理这些事件。
用户交互可以使页面实现更多的功能和效果。
一个请求的生命周期(HTTP请求过程详解、TCPIP五层网络模型)
⼀个请求的⽣命周期(HTTP请求过程详解、TCPIP五层⽹络模型)⼀个请求的⽣命周期前⾔:当我们从电脑上去访问⼀个⽹址时,究竟发⽣了什么?这个问题可能是⾃⼰思考或者⾯试的时候问到,这⾥我们以访问百度⾸页为例,进⾏⼀个全⾯的HTTP请求分析。
核⼼概念计算机⽹络核⼼结构,就是TCP/IP五层⽹络模型(OSI七层模型是将应⽤层分为了三层)以及,每⼀层对应的协议始于本地键盘输⼊:你要访问,⾃然需要在浏览器地址栏中使⽤键盘输⼊(正常情况下),这个过程就涉及到输⼊设备与计算机的交互了,这个属于物理层,这⾥就不探讨了(==其实是我不会)请求域名:⾸先你访问的是,并不带域名,所以浏览器会⾃动补全协议头。
但是我们知道,很多时候域名会有http和https,它俩的默认端⼝⼀个是80,⼀个是443,在这⾥,⼀般都是对应域名的⽹站做了端⼝转发,http协议实现了HSTS机制来使得重定向到HTTPS下的域名。
所以HTTP到HTTPS这个过程是服务器来完成的,⾄于浏览器的默认端⼝⼀直是80端⼝路由转发IP查找:⽬前我们只知道了带协议类型的域名,那么是如何到具体的服务器的呢?我们知道,对于因特⽹内每个公有地址IP都是唯⼀的(局域⽹内不⼀定),域名相当于IP的别名,因为我们⽆法去记住⼀⼤堆⽆意义的IP地址,但如果⽤⼀堆有意义的字母组成,⼤家就能快速访问对应⽹站。
DNS解析:通过域名去查找IP,先从本地缓存查找,其中本地的hosts⽂件也绑定了对应IP,若在本机中⽆法查到,那么就会去请求本地区域的域名服务器(通常是你对应的⽹络运营商如移动),这个通过⽹络设置中的LDNS去查找,如果还是没有命中的话,那么就去根域名服务器查找,这⾥有所有因特⽹上可访问的域名和IP对应信息(根域名服务器全球共13台)。
⾄少到了这⾥,我们肯定能查找对应的IP了,要不就是这个域名不对。
路由转发:然后我们通过⽹卡、路由器、交换机等设备,实现两个IP地址之间的通信。
浏览器输入一个网址(发生的过程)
浏览器输⼊⼀个⽹址(发⽣的过程)(⼀)在浏览器输⼊⽹址--->到⽹页展现全部过程:⼤致过程:第⼀步浏览器查找该域名的 IP 地址第⼆步浏览器根据解析得到的IP地址向 web 服务器发送⼀个 HTTP 请求【前提,要建⽴连接(TCP或者UDP)】【可能会重定向】第三步服务器收到请求并进⾏处理第四步服务器返回⼀个响应第五步浏览器对该响应进⾏解码,渲染显⽰。
第六步页⾯显⽰完成后,浏览器发送异步请求。
1.在浏览器输⼊⼀个⽹址:eg facebook2.浏览器查找域名的IP地址(域名-->输⼊的⽹址)①浏览器缓存--->浏览器会缓存DNS记录⼀段时间。
②系统缓存--->如果浏览器缓存⾥⾯没有--->浏览器调⽤系统缓存查找⽹址对应的DNS信息(Windows系统是通过gethostbyname查找)。
③路由器缓存--->系统缓存没有。
发向路由器,它⼀般有⾃⼰的DNS缓存。
④ISP DNS服务器。
checkISP缓存DNS的服务器。
⼀般能找到相应的缓存记录。
⑤递归搜所。
请求将发向跟域名服务器进⾏搜索。
【找不到,说明此域名不存在】3.在请求之前,需要浏览器与服务器建⽴连接(TCP或者UDP)①与服务器建⽴连接时TCP属于安全连接,需要三次握⼿。
②与服务器响应软件建⽴管道连接(socket)4.浏览器给Web服务器发送⼀个HTTP请求【可能会被重定向】5.服务器处接受到请求,--->处理请求。
6.服务器发回⼀个HTML响应7.浏览器开始显⽰HTML(在浏览器没有完整接受全部的HTML⽂档时,它就开始显⽰这个页⾯了)8.浏览器显⽰HTML时,会注意到需要获取其他地址内容的标签--->浏览器发送⼀个请求来重新获取这些⽂件。
因特网的工作原理
因特网的工作原理
网络的工作原理是基于客户端/服务器模型。
在因特网上,服
务器是存储和提供信息的主要计算机,而客户端则是通过网络访问和接收这些信息的设备。
以下是因特网的工作原理的基本步骤:
1. 客户端发起请求:当用户在浏览器中输入网址或点击链接时,客户端(比如个人电脑、智能手机等)会发送一个请求给服务器。
这个请求通常是基于超文本传输协议(HTTP)进行的。
2. DNS解析:在发送请求之前,客户端会将网址发送给域名
系统(DNS)解析器,以获取该网址对应的IP地址。
DNS解
析器将域名转换为IP地址,并将其返回给客户端。
3. 路由选择:一旦客户端获取了服务器的IP地址,它将通过
因特网路由器发送请求。
在这个过程中,路由器通过查看每个数据包的目标IP地址并使用路由表来决定最佳的路由路径。
4. 传输和交换:一旦请求到达服务器,服务器将根据请求的类型和目标资源来处理请求。
服务器可以是网站服务器、邮件服务器、文件服务器等各种类型。
5. 响应返回:服务器处理完请求后,它将生成一个响应,并将其以数据包的形式发送回客户端的IP地址。
类似于请求阶段,响应的传输路径由路由器决定。
6. 客户端接收响应:一旦响应到达客户端,它将由客户端的网
络协议栈解析。
例如,如果响应是一个网页,客户端的浏览器将读取并显示该网页的内容。
总的来说,因特网利用了面向包的数据传输方式,通过分割和传输大量的数据包来进行通信。
这些数据包经过路由器和交换机等网络设备的传输,以实现全球范围内的高速通信和信息共享。
HTTPS网站访问技巧
HTTPS网站访问技巧随着互联网的不断发展,越来越多的网站开始采用HTTPS协议来保障用户数据的安全。
HTTPS在传输过程中使用了加密算法,能够保证网站数据的完整性和安全性。
今天,我将为大家介绍一些访问HTTPS网站的技巧,帮助大家更好地上网浏览。
一、确保浏览器支持HTTPS协议要访问HTTPS网站,首先要确保自己使用的浏览器支持HTTPS协议。
现如今主流的浏览器都支持HTTPS,例如Google Chrome、Mozilla Firefox等。
如果你使用的是老旧的浏览器版本,可以考虑更新到最新版本。
二、充分利用浏览器的自动重定向功能很多网站在访问HTTP的时候会自动将网页重定向到HTTPS的安全协议下。
当我们输入一个网址时,浏览器会自动检测网站是否支持HTTPS,并进行自动重定向。
如果遇到自动重定向失败的情况,我们可以手动在网址前面添加"https://"来访问对应的HTTPS网站。
三、域名前缀和后缀的校验在访问HTTPS网站的时候,要特别注意域名前缀和后缀的正确性,以确保访问的是真正的目标网站。
一些恶意网站可能会使用类似的域名来进行钓鱼攻击,所以我们要仔细检查域名的拼写和后缀。
四、信任和验证服务器证书HTTPS网站使用了数字证书来验证服务器的身份。
当我们访问一个HTTPS网站时,浏览器会验证服务器证书的真实性。
要确保访问的网站使用的是可信任的证书,可以查看证书的有效期、发行机构等信息。
同时,不要随意点击浏览器中出现的安全提示,以免遭受钓鱼网站的攻击。
五、使用VPN或代理服务器有时,我们可能会遇到无法直接访问某些HTTPS网站的情况,这时可以考虑使用VPN或代理服务器来访问。
VPN可以帮助我们在网络上建立一个隧道,将我们的请求经过加密传输到目标网站,以绕过封锁或限制。
代理服务器可以帮助我们隐藏真实的IP地址,达到匿名浏览的效果。
六、注意避免使用不安全的公共Wi-Fi网络当我们使用公共Wi-Fi网络访问HTTPS网站时,要格外注意网络的安全性。
TCP通信流程解析(以访问一次百度网站为例)(包括以太网帧头、IP头、TCP头、UDP头)
TCP通信流程解析(以访问⼀次百度⽹站为例)(包括以太⽹帧头、IP头、TCP头、UDP头)B/S通信简述整个计算机⽹络的实现体现为协议的实现,TCP/IP协议是Internet的核⼼协议,HTTP协议是⽐TCP更⾼层次的应⽤层协议。
HTTP(HyperText Transfer Protocol,超⽂本传输协议)是互联⽹上应⽤最为⼴泛的⼀种⽹络协议。
所有的WWW⽂件都必须遵守这个标准。
设计HTTP的初衷是为了提供⼀种发布和接收HTML页⾯的⽅法。
浏览器(Web Browser)负责与服务器建⽴连接,下载⽹页(包括资源⽂件及JS脚本⽂件)到本地,并最终渲染出页⾯。
JS脚本⽂件运⾏在客户端,负责客户端⼀些⾏为响应或预处理,例如提交表单前的数据校验、⿏标事件处理等交互。
由此可见,浏览器(Browser)⼀⽅⾯充当了C/S通信架构中C⾓⾊,另⼀⽅⾯它是HTML/JavaScript的解析渲染引擎(Analyze Render Engine)。
IP & MTU本⽂⽤到的抓包⼯具为wireshark,它的前⾝是赫赫有名的Ethereal。
wireshark以太⽹帧的封包格式为:----------------------------------------------------------------------------------------------------Frame=Ethernet Header +IP Header +TCP Header +TCP Segment Data----------------------------------------------------------------------------------------------------(1)Ethernet Frame =Dst Physical Address(6 Byte)+ Src Physical Address(6 Byte)+Type(2 Byte)+data(46~1500Byte)+FCS(4 Byte),以太⽹帧头以下称之为数据帧。
域名解析的ip路由通讯的过程
当用户在浏览器中输入一个域名时,域名解析系统(DNS)会将域名转换为相应的 IP 地址。
这个过程涉及到多个步骤,包括域名查询、DNS 服务器解析和 IP 路由通讯。
1. 域名查询:用户的计算机向本地 DNS 服务器发送一个域名查询请求,询问指定域名对应的 IP 地址。
2. DNS 服务器解析:本地 DNS 服务器接收到查询请求后,会检查自己的缓存中是否有该域名的记录。
如果有,它将直接返回对应的 IP 地址。
如果没有,它将向上级 DNS 服务器发送查询请求,直到找到该域名的权威 DNS 服务器。
3. 权威 DNS 服务器响应:权威 DNS 服务器接收到查询请求后,会查询其域名数据库以获取该域名对应的 IP 地址。
然后,它将 IP 地址返回给发起查询的 DNS 服务器。
4. IP 路由通讯:一旦本地 DNS 服务器获得了域名对应的 IP 地址,它将把这个地址返回给用户的计算机。
用户的计算机随后使用这个 IP 地址与目标服务器建立连接,通过网络进行数据传输。
在这个过程中,DNS 服务器起到了至关重要的作用,它们负责将域名解析为 IP 地址,使得用户能够通过域名访问互联网上的资源。
同时,IP 路由通讯确保了数据能够在网络中正确地传输,从而实现了域名与服务器之间的连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我来回答这个问题吧,整个过程比较复杂,也不知道哪些步骤对你有用,就说得详细一些吧,采用分条的形式,看哪里你能用到就参考哪里吧,呵呵!
1.若DNS缓存中没有相关数据,则IE浏览器先向DNS服务器发出DNS请求:
这一过程的目的是获取这个域名所对应的IP地址;
IE浏览器向本机DNS模块发出DNS请求,DNS模块生成相关的DNS报文;
DNS模块将生成的DNS报文传递给传输层的UDP协议单元;
UDP协议单元将该数据封装成UDP数据报,传递给网络层的IP协议单元;
IP协议单元将该数据封装成IP数据包,其中目的IP地址为DNS服务器的IP地址;
封装好的IP数据包将传递给数据链路层的协议单元进行发送;
发送时如果ARP缓存中没有相关数据,则发送ARP广播请求,等待ARP回应;
得到ARP回应后,将IP地址与路由下一跳MAC地址对应的信息写入ARP缓存表;
写入缓存后,以路由下一跳地址填充目的MAC地址,并以数据帧形式转发;
这个转发过程可能会进行多次,这取决于DNS服务器在校园网中的位置;
DNS请求被发送到DNS服务器的数据链路层协议单元;
DNS服务器的数据链路层协议单元解析收到的数据帧,将其内部所含有的IP数据包传递给网络层IP协议单元;
DNS服务器的IP协议单元解析收到的IP数据包,将其内部所含有的UDP数据报传递给传输层的UDP协议单元;
DNS服务器的UDP协议单元解析收到的UDP数据包,将其内部所含有的DNS报文传递给该服务器上的DNS服务单元;
DNS服务单元收到DNS请求,将域名解析为对应的IP地址,产生DNS回应报文;
(所有应用层报文必须通过传输层、网络层和数据链路层,因此在下面的叙述中,我将简化这一过程的叙述,简化形式如下面的样子,其中单箭头为本机内部传递,双箭头为网络上的发送)
DNS回应报文→UDP→IP→MAC→→请求域名解析的主机;
请求域名解析的主机收到数据帧,该数据帧→IP→UDP→DNS→IE浏览器;
将域名解析的结果以域名和IP地址对应的形式写入DNS缓存表。
2.IE浏览器与建立TCP连接:
IE浏览器向发出TCP连接请求报文;
该请求TCP报文中的SYN标志位被设置为1,表示连接请求;
该TCP请求报文→IP(DNS)→MAC(ARP)→→校园网关→→主机;
该TCP请求报文经过IP层时,填入的目的IP地址就是上面DNS过程获得的IP地址;
经过数据链路层时,若MAC地址不明,还要进行上面所叙述的ARP过程;
收到的数据帧→IP→TCP,TCP协议单元会回应请求应答报文;
该请求应答TCP报文中的SYN和ACK标志位均被设置为1,表示连接请求应答;
该TCP请求应答报文→IP→MAC(ARP)→→校园网关→→请求主机;
请求主机收到数据帧→IP→TCP,TCP协议单元会回应请求确认报文;
该请求应答TCP报文中的ACK标志位被设置为1,表示连接请求确认;
该TCP请求确认报文→IP→MAC(ARP)→→校园网关→→主机;
收到的数据帧→IP→TCP,连接建立完成;
在这个过程中,任何一个报文出错或超时,都要进行重传;
这个过程被称为TCP建立连接的三次握手。
3.IE浏览器开始HTTP访问过程
IE浏览器向发出HTTP-GET方法报文;
该HTTP-GET方法报文→TCP→IP→MAC→→校园网关→→主机;
收到的数据帧→IP→TCP→HTT P,HTTP协议单元会回应HTTP协议格式封装好的HTML超文本形式数据;
HTTP-HTML数据→TCP→IP→MAC(ARP)→→校园网关→→请求主机;
请求主机收到的数据帧→IP→TCP→HTTP→IE浏览器,浏览器会以网页形式显示HTML 超文本,就是我们所看到的网页。
4.断开TCP连接
IE浏览器向发出TCP连接结束请求报文;
该请求TCP报文中的FIN标志位被设置为1,表示结束请求;
该TCP结束请求报文→IP→MAC(ARP)→→校园网关→→主机;
收到的数据帧→IP→TCP,TCP协议单元会回应结束应答报文;
该结束应答TCP报文中的FIN和ACK标志位均被设置为1,表示结束应答;
该TCP结束应答报文→IP→MAC(ARP)→→校园网关→→请求主机;
这个过程需要双向进行,因此主机也会按上述流程再做一次;
整个过程被称为TCP断开连接的四次握手。
呵呵,好麻烦的一个过程对不对?我也写了好长时间诶,希望对你有所帮助!
-------------------------------------------------------------
这个人很耐心,已经解释得很详细了。
不过我是个吹毛求疵的人,非得把每个细节都弄得很清楚。
其中最让我纠结的是ip地址转换到mac地址的过程。
或许你说那不就是arp协议吗?那你就想的简单了点。
首先ip地址是网络层(layer 3)的概念,mac地址是数据链路层(layer 2)的概念。
网络层主要任务是路由,而数据链路层是提供相邻两个网络实体间端到端的数据传输,可以理解成为局域网内两台机器间的数据传输。
数据链路层的作用范围是局域网,那么其mac地址肯定是局域网内某台机器的mac地址。
并且arp协议的作用范围也是局域网。
但是ip数据包的目的地址未必都是局域网内的,如果不是,在局域网内进行arp广播查询该ip地址对应的mac地址,肯定没有人回应,因为大家谁都不拥有这个ip地址。
于是先要知道ip地址是不是同一个局域网里的,这个不难,使用子网掩码就可以确定。
如果是同一个局域网,那么就可以arp了。
那如果不是呢??
这就要靠网络层了。
到这时候我才惊讶地发现,路由表不是只在路由器上才有的(以前我可都是这么以为的),本机上照样有,而且也有路由过程。
在 windows下CMD下输入命令“route print”,就可以看到本机上的路由表(linux下是"route")。
部分路由表项如下(我机器的ip是10.77.100.113,子网掩码是 255.255.255.0 ):
----------------------
Network
Destination Netmask Gateway Inter face Metric
0.0.0.0 0.0.0.0 10.77.100.1 1 0.77.100.113 10
10.77.100.0 255.255.255.0 10.77.100.113 10.77.100 .113 10
----------------------
最后一条其实意思就是,如果ip地址是同一个局域网中的地址,则直接发送到该ip
地址就可以了(表中看起来是路由给自己,我估计是这个意思,linux下就是一个星号表示的,更能理解)。
中间那条其实就是默认路由路径(因为任何一个ip地址 AND 0.0.0.0 后肯定都是
0.0.0.0 的),其意思就是,如果其他路由项都不符合,则发送到默认网关。
扯远一点。
默认情况下,windows机器不会充当路由器的功能,它不会转发(forward)自己接受到的但是目的地址不是自己的包。
但是这是可以设置的,通过开启路由转发功能,就能充当一个路由器了。
这样,局域网中另一台机器就可以把默认网关设置为你的ip,然后他的所有到外网的包都先交给你,然后你再路由转发出去。
貌似多次一举,但是这样你的机器可以控制别人的上网功能。
譬如一个家里,老爸把他儿子的机器的默认网关设置为自己的机器的,当这个狡猾的老爸不想让儿子上网的时候,就关闭自己机器的路由转发功能,可怜的儿子就上不了网了,而且不知道为什么。
-_-!!
譬如XP下可以修改注册表项:HKEY_LOCAL_MACHINE
\SYSTEM\CurrentControlSet\Services\Tcpip \Parameters 中的 IPEnableRouter=1。
顺便说说命令“route -f”,它可以删除路由表中涉及默认网关的项。
我曾经使用该命令删除掉中间那条,结果访问外网就不行了,实际错误就是找不到路由项。
和同宿舍一个哥们讨论该问题,当他发现“route -f”可以让机器不能上外网时,立马说可以用这个搞恶作剧啊,让人上不了网,估计没几个人能找出问题来,只有重启机器。
我汗-_-!!
所以ip地址转换到mac地址的过程就更清晰了:
------------------------
1、首先得到ip包需要送达的目的地址 ip-des ;
2、查路由表,根据匹配 ip-des 的路由表项得到下一跳(next hop)的中间目的地址ip-next (可以保证 ip-next 是局域网中的地址);
3、在arp缓存中查找 ip-next 对应的mac地址,如果缓存中没有,再到局域网中使用arp协议进行询问;
4、得到了mac地址,一切就好办了----将mac地址放到帧头,发送数据。
------------------------
由此看出绝不是仅仅arp那么简单。
几个有用的命令(注意linux下需要root权限):
------------------------
查看本地路由表:
windows: route print
linux: route
查看本地arp缓存:
windows: arp -a。