网页解析的全过程

2023-07-11 09:09:2704:45 3928
所属专辑:javascript面试题
声音简介

1.用户输入网址,浏览器发起DNS查询请求
用户访问网页,DNS服务器(域名解析系统)会根据用户提供的域名查找对应的IP地址。
域名解析服务器是基于UDP协议实现的一个应用程序,通常通过 监听53端口 来获取客户端的域名解析请求。DNS查找过程如下:
1、浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器 会储存 个自固定的一个时间(2分钟到30分钟不等)。
2、系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。
3、路由器缓存 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。
4、ISP DNS 缓存 – 接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。
5、递归搜索 – 你的ISP的DNS服务器 从根域名服务器 开始进行递归搜索,从.com顶级域名服务器 到 Facebook的域名服务器。
      一般DNS服务器的缓存中会有 .com域名服务器 中的域名,所以 到顶级服务器的匹配过程 不是那么必要了。


2、建立TCP连接
浏览器通过DNS获取到web服务器 真的IP地址后,便向web服务器发起 tcp连接请求,通过TCP三次握手建立好连接后,浏览器便可以将HTTP请求数据 通过发送给服务器了。
 
3、浏览器向 web 服务器发送一个 HTTP 请求
HTTP请求是一个基于TCP协议之上的 应用层协议  ——  超文本传输协议。一个http事务由一条(从客户端发往服务器的)请求命令和一个(从服务器发回客户端的)响应结果组成。
GET https://www.cricode.com/ HTTP/1.1
Host: www.cricode.com
Connection: keep-alive
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
4、发送响应数据给客户端
Web服务器通常通过监听80端口,来获取客户端的HTTP请求。与客户端建立好TCP连接后,web服务器开始接受客户端发来的数据,并通过HTTP解码,
从接受到的网络数据中 解析出请求的url信息 以及其他诸如Accept-Encoding、Accept-Language等信息。Web服务器根据HTTP请求头的信息,
得到响应数据 返回给客户端。
HTTP/1.1 200 OK
Date: Fri, 24 Oct 2014 13:55:18 GMT
Server: Apache
X-Powered-By: PHP/5.4.32
Keep-Alive: timeout=5, max=10000
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
至此,一个HTTP通信过程完成。web服务器会根据HTTP请求头中的Connection字段值决定 是否关闭TCP链接通道,
当Connection字段值为keep-alive时,web服务器不会立即关闭此连接。
(这一步一开始也许还会有 重定向 及浏览器跟踪重定向地址等)。

用户评论

表情0/300
音频列表
猜你喜欢
网页设计与开发技术

当今社会,人们对网络的依赖程度越来越高,大到政府机关、公司、厂矿;小到家庭个人,网络几乎无处不在。而网站的建设也已成为社会信息化的主角。现在,通过HTML、C...

by:大脑改造计划

网页文章,众说《红楼梦》

网页上评说红楼的文章,读来娱乐娱乐。

by:踏歌行千里

案发真相|解析案发过程

这是一个警察探案的故事。。。。。

by:南国有梦_唬头Bng

网页编程之PHP入门(主讲:晴天)

由杨永权老师主讲的PHP入门课程

by:赐荣有声工作室

专业技能丨前端网页工程师必学课

专辑简介:学习麦子学院这个课程,使你能够胜任前端网页工程师岗位,能够熟练掌握网页布局模式以及常用的CSS样式;能根据需求分析,设计JavaScript特效;根据...

by:成都星辉科技

朋友圈刷屏级H5生产过程解析

创业领域知识内容服务商~不求知识最牛逼,只愿连接更鲜活!互联网云商学院首席讲师:晓一,欢迎交流学习:mo31678

by:私享云

庄家克星 | 职业操盘手解析坐庄全过程

全面解析了庄家坐庄全过程,就坐庄前的准备、建仓、试盘、调整、初升、洗盘、拉升、出货、反弹以及砸盘、变盘、庄家自救和散户克庄等几个阶段和相关内容进行深入讲述。本着...

by:思百笑

逆生长的全过程

记录一个声音小白成长经历,练习打卡篇

by:亦子沐

产品和过程设计开发流程解析(视频课)

讲述产品和过程设计开发,涵盖五个阶段,9个关注点!五个阶段包括:第一阶段计划和确定项目;第二阶段产品设计开发验证;第三阶段:过程设计开发验证;第四阶段:产品和过...

by:朱春佳