概述
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.jpgTCP/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请求到网页渲染全流程讲解完毕,其中有些过程,请查看本人的专题文章讲解,提供了对应的链接地址。
人生活在希望之中,旧的希望实现了,或者泯灭了,新的希望的烈焰随之燃烧起来。如果一个人只管活一天算一天,什么希望也没有,他的生命实际上也就停止了。 —— 莫泊桑
网友评论