URL请求到网页渲染全流程讲解

概述

1、浏览器先查看浏览器缓存,若缓存中有,请略过中间步骤,直接跳到第9步。若没有,则按照以下步骤进行。
2、浏览器从url中解析出服务器的主机名,并将主机名转换成服务器的IP地址。
3、浏览器从url中解析出端口号,默认80,HTTPS默认端口443。
4、浏览器建立一条与服务器的TCP/IP连接,三次握手和四次挥手。
5、浏览器通过TCP/IP连接向服务器发送HTTP请求,请求数据包。
6、服务器处理HTTP请求,返回响应。
7、浏览器检查HTTP响应是否为一个重定向(3XX结果状态码)、一个验证请求(401)、错误(4XX、5XX)等等,这些都需要根据具体情况分类处理。
8、浏览器接收HTTP响应并且可能关掉TCP连接,或者是重新建立连接使用新情求,获得新响应。
9、浏览器解码响应,如果响应可以缓存,则存入缓存。
10、浏览器显示HTML页面。
11、浏览器发送请求获取嵌入在HTML中的资源(如CSS、JS、图片、音频、视频等)
12、浏览器发送异步请求。
13、页面全部渲染结束。

一、缓存

1、浏览器缓存
浏览器缓存机制的深入解析

二、域名DNS解析

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
一个域名对应一个IP,但是一个IP可以对应多个域名
如何利用一个IP建立多个WEB网站应用

三、TCP/IP连接

TCP(Transmission Control Protocol)传输控制协议是一种面向连接、可靠的、基于字节流的传输层通信协议。TCP/IP五层网络架构如下。

应用层: 应用层为操作系统或网络应用程序提供访问网络服务的接口,如超文本传输协议(HTTP)、简单电子邮件传输协议(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层: 传输层提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP的数据单元称为段 (segments)而UDP协议的数据单元称为“数据报(datagrams),TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

网络层: 网络层负责提供基本的数据包(packet)传送功能,将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。让每一块数据包都能够到达目的主机(但不检查是否被正确接收),为数据包选择路由 ,如网际协议(IP)。

数据链路层: 在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP等。

物理层: 以二进制数据形式在物理媒体上传输数据,数据的单位称为比特(bit)。属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。

TCP-IP.jpg

TCP/IP三次握手建立连接,四次挥手断开连接

三次握手.jpg
四次挥手.jpg

四、HTTP请求和响应

大概讲解开发中常见的一些状态码
1、1XX:服务器收到请求,需要请求者继续执行操作
100:请求已被服务响应,客户端应当继续发送请求的剩余部分。

2、2XX:表示成功,请求成功并处理
200:请求成功。
205:服务器处理请求,但是没有任何内容返回,eg:用户输入后重置表单,开始新的输入。

3、3XX:重定向,进一步操作完成请求。
301:请求的资源永久移动到新的位置,浏览器缓存新网站内容不再保留旧的地址。
302:请求资源重定向到新的位置,浏览器缓存新网站内容并保留旧的地址。
304:GET请求的内容与上次访问的内容没有修改,返回缓存的内容

4、4XX:客户端请求错误,请求包含错误语法等导致请求失败。
400:请求语义或参数有误。
401:验证后无权限,token失效等等,一般用于登录。
404:no found,服务器没有找到对应的资源,或者请求的页面不存在。
422:请求的格式正确,但是语义错误。

5、5XX:服务器错误,服务器在请求过程中发生错误。
500:服务器出现了一个未曾预料的错误,这个错误一般会在服务器控制台中输出。
503:服务器维护或者过载导致当前无法处理请求,这个状态只是临时的。

五、浏览器页面渲染

以上请求网络请求成功后,浏览器根据请求内容渲染页面。
HTML页面渲染及优化详解

六、浏览器异步请求

当页面部分数据需要更新时,通过Ajax异步请求数据,达到更新部分页面数据,而不用重新更新整个页面。
至此,整个URL请求到网页渲染全流程讲解完毕,其中有些过程,请查看本人的专题文章讲解,提供了对应的链接地址。

人生活在希望之中,旧的希望实现了,或者泯灭了,新的希望的烈焰随之燃烧起来。如果一个人只管活一天算一天,什么希望也没有,他的生命实际上也就停止了。 —— 莫泊桑

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,755评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,305评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,138评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,791评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,794评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,631评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,362评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,264评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,724评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,900评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,040评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,742评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,364评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,944评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,060评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,247评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,979评论 2 355

推荐阅读更多精彩内容