从输入URL到页面加载成功,这期间发生了什么?

总体来说发生了一下几步:

  1. DNS解析

  2. TCP连接

  3. 发送HTTP请求

  4. 服务器处理请求,并返回结果

  5. 浏览器解析、渲染页面

  6. 连接结束

一、DNS解析

DNS解析是获取网址所对应的计算机ip地址的过程。用户所输入的网址并不是计算机的唯一标识,ip地址才是,获得ip地址后才能够跟对应的计算机建立连接,进行信息交互。
DNS的解析过程如下图所示:
DNS解析过程
以“www.baidu.com”为例,来说明主机的查找路线:本地域名服务器–>根域名服务器–>com顶级域名服务器–>baidu.com域名服务器–>www.baidu.com域名服务器。可以发现域名解析从网址的最后往前开始递推。在本地域名服务器得到该域名的ip地址后,会把它缓存在本地,供下次查询使用,简化下次域名解析过程。

二、TCP连接

得到网址所对应的计算机ip地址后,通过三次握手协议,建立用户端和服务端的连接。

三、发送HTTP请求

HTPP请求保温由请求行、请求头和请求体组成:
在这里插入图片描述

  • 请求行:由①、②和③组成。①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、
    OPTIONS、PUT、TRACE。②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。③是协议名称及版本号
  • 请求头:④为请求报文中的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。
  • 请求体:⑤为请求报文中的报文体,它将一个页面表单中的组件值通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1&param2=value2”的方式传递请求参数。

四、服务器处理请求并返回HTTP响应报文

后端根据接收到的HTTP请求,对请求进行响应的处理,然后向客户端返回HTTP响应报文,该响应报文也由三部分组成:响应行、响应头、响应体。

  • 响应行:包含报文协议及版本和状态码。状态码分为5大类:
    1xx:指示信息–表示请求已接收,继续处理。100:通知浏览器本次返回的资源文件并不是一个独立的资源文件,要继续向服务器索要其他资源文件。
    2xx:成功–表示请求已被成功接收、理解、接受。200:返回的资源文件是一个独立完整的资源文件,请求成功。
    3xx:重定向–要完成请求必须进行更进一步的操作。302:浏览器返回的不是一个资源文件内容,而是一个资源文件地址,浏览器要根据这个地址发起请求,索要资源文件。
    4xx:客户端错误–请求有语法错误或请求无法实现。404:告知用户端,服务器没有定位到被访问的资源文件。405:客户端采用请求方式不对。
    5xx:服务器端错误–服务器未能实现合法的请求。500:告知客户端,服务器已经定位到被访问的资源文件,同时请求方式也正确,但是由于JAVA异常,导致处理失败。
  • 响应头:由多个属性组成,常见的包括Server, Content-Type…
  • 响应体:服务器返回给浏览器的数据、文本等信息,也就是我们想要的东西

五、浏览器解析渲染页面

这部分还不太熟悉,等后期弄清楚了再来补充。
浏览器解析渲染页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值