用户在url输入内容到页面展示发生了什么?
- 域名解析
- 发起
tcp
三次握手 - 建立
tcp
连接后发起http
请求 - 服务器响应
http
请求,浏览器得到html
代码 - 浏览器解析
html
代码,并请求html
代码中的资源 - 浏览器对页面进行渲染呈现给用户
详细解释:
- 地址栏输入
url
, - 要通过
dns
解析(浏览器是不能识别url
地址的,需解析成ip
地址), - 返回相对应的
IP
地址, - 建立
tcp
连接,(tcp
三次握手) - 发送
Http
请求, - 服务器进行处理并返回
Http
报文, - 浏览器渲染页面,
- 断开连接(
tcp
四次挥手)
一、URL
URL(Uniform Resource Locator),统一资源定位符,用于定位互联网上资源,俗称网址。
二、域名解析(DNS
)
域名解析:
DNS
协议提供通过域名查找IP
地址,或逆向从IP
地址反查域名的服务。DNS
是一个网络服务器,我们的域名解析简单来说就是在DNS
上记录一条信息记录。
三 .Tcp
连接(三次握手)
目的:同步客户端和服务端的序列号和确认号,并交换
TCP
窗口大小信息。防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
四.发送http
请求
请求报文 包括:请求行、请求头、请求体 。
请求方法包含 8 种:
GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE
。求头包含请求的附加信息,由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。
请求体,可以承载多个请求参数的数据,包含回车符、换行符和请求数据,并不是所有请求都具有请求数据。
五、服务器处理请求并返回HTTP
报文
服务器是网络环境中的高性能计算机,它侦听网络上的其他计算机(客户机)提交的服务请求,并提供相应的服务,比如网页服务、文件下载服务、邮件服务、视频服务。而客户端主要的功能是浏览网页、看视频、听音乐等等,两者截然不同。 每台服务器上都会安装处理请求的应用——web server。
mvc
后台处理请求:浏览器发送过来的请求先经过控制器,控制器进行逻辑处理和请求分发,接着会调用模型,这一阶段模型会获取redis db
以及MySQL
的数据,获取数据后将渲染好的页面,响应信息会以响应报文的形式返回给客户端,最后浏览器通过渲染引擎将网页呈现在用户面前。http
响应报文 包含: 响应行、响应头、响应主体。
状态码规则:
1xx:指示信息–表示请求已接收,继续处理。
2xx:成功–表示请求已被成功接收、理解、接受。
3xx:重定向–要完成请求必须进行更进一步的操作。
4xx:客户端错误–请求有语法错误或请求无法实现。
5xx:服务器端错误–服务器未能实现合法的请求。
六、浏览器解析渲染页面
重绘:某个元素的背景颜色,文字颜色等,不影响元素周围或内部布局的属性,将只会引起浏览器的重绘。
回流:某个元素的尺寸发生了变化,则需重新计算渲染树,重新渲染。
- 根据
HTML
解析出DOM
树 - 根据
CSS
解析生成CSS
规则树 - 结合
DOM
树和CSS
规则树,生成渲染树 - 根据渲染树计算每一个节点的信息
- 根据计算好的信息绘制页面
七、断开连接
数据传送完,需断开
tcp
连接,此时发起tcp
四次挥手。