一次HTTP请求经历了哪些步骤?

image.png

1、首先进行DNS域名解析。缓存域名解析(本地浏览器缓存、操作系统缓存或者DNS服务器),首先会搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存)

b)如果浏览器自身的缓存里面没有找到,那么浏览器会搜索系统自身的DNS缓存

c)如果还没有找到,那么尝试从 hosts文件里面去找

d)在前面三个过程都没获取到的情况下,就去域名服务器去查找

2、三次握手建立 TCP 连接

在HTTP工作开始之前,客户端首先要通过网络与服务器建立连接,HTTP连接是通过 TCP 来完成的。HTTP 是比 TCP 更高层次的应用层协议,根据规则,只有低层协议建立之后,才能进行高层协议的连接,因此,首先要建立 TCP 连接,一般 TCP 连接的端口号是80;

3、客户端发起HTTP请求

4、服务器响应HTTP请求

5、客户端解析html代码,并请求html代码中的资源

浏览器拿到html文件后,就开始解析其中的html代码,遇到js/css/image等静态资源时,就向服务器端去请求下载

6、客户端渲染展示内容

7、关闭 TCP 连接

一般情况下,一旦服务器向客户端返回了请求数据,它就要关闭 TCP 连接,然后如果客户端或者服务器在其头信息加入了这行代码 Connection:keep-alive ,TCP 连接在发送后将仍然保持打开状态,于是,客户端可以继续通过相同的连接发送请求,也就是说前面的3到6,可以反复进行。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

### 回答1: 1. 用户在浏览器中输入网址并发送请求。 2. DNS解析,将域名解析成IP地址。 3. 浏览器向服务器发送TCP连接请求。 4. 服务器接受连接请求并建立TCP连接。 5. 浏览器发送HTTP请求请求所需资源。 6. 服务器处理请求并返回HTTP响应。 7. 浏览器接收响应并显示页面。 ### 回答2: 从浏览器点击到服务器响应需要经历以下步骤: 1. URL解析:浏览器首先解析用户在地址栏中输入的URL,将其切分成协议、域名和资源路径等部分。 2. DNS查询:浏览器会通过DNS(域名系统)将域名转换为服务器的IP地址。浏览器会查找本地DNS缓存中是否存在对应的IP地址,如果不存在,则向DNS服务器发送查询请求获取IP地址。 3. TCP连接建立:浏览器会与服务器建立TCP连接。首先,浏览器会发送一个三次握手的请求服务器,以确保双方建立起可靠的传输通道。 4. 发送HTTP请求:一旦TCP连接建立成功,浏览器就会发送HTTP请求服务器请求中包含了请求的方法(例如GET或POST)、资源路径、请求头等信息。 5. 服务器处理请求服务器接收到浏览器发送的请求后,会根据请求的资源路径和相关参数进行处理。服务器可能会调用相应的处理程序或脚本来生成响应。 6. 服务器发送响应:服务器处理完请求后,会将生成的响应发送回浏览器。响应中包含了响应头和响应体两部分。响应头包含了响应的状态码、内容类型等信息,而响应体则包含了服务器返回的具体数据。 7. 浏览器解析响应:浏览器接收到响应后,会根据响应头中的内容进行相应的解析和处理。如果响应的内容类型是HTML,浏览器会开始解析HTML代码,并将结果显示在用户界面上。 8. 关闭连接:一旦响应解析完毕并显示在界面上,浏览器会关闭与服务器的TCP连接,释放资源。 总之,从浏览器点击到服务器响应经历了URL解析、DNS查询、TCP连接建立、发送HTTP请求服务器处理请求服务器发送响应、浏览器解析响应和关闭连接这些步骤。这个过程实际上是一种客户端(浏览器)和服务器之间的通信过程,以确保用户能够获得所需的网页内容。 ### 回答3: 从浏览器点击到服务器响应,需要经历以下几个步骤: 1. 域名解析:浏览器首先将输入的域名发送给本地DNS服务器,本地DNS服务器通过递归查询,从根域名服务器、顶级域名服务器等逐步获取目标服务器的IP地址。 2. 发起TCP连接:浏览器会通过TCP协议与服务器建立连接,进行三次握手,确保连接的可靠性和完整性。 3. 发送HTTP请求:一旦建立了TCP连接,浏览器就会向服务器发送HTTP请求请求中包含了方法(GET、POST等)、路径、协议版本、头部信息等。 4. 服务器处理请求服务器接收到请求后,根据请求中的具体信息,找到相应的资源文件,进行相应的处理,处理过程可能包括验证用户身份、读取数据库、执行后台程序等。 5. 服务器返回响应:服务器处理完请求后,将生成的响应信息通过TCP连接返回给浏览器。响应包括状态码、响应头和响应体,状态码表示请求的处理结果,响应头包含了响应的其他附加信息,响应体则是服务器返回的具体内容。 6. 接收响应:浏览器接收到服务器返回的响应后,会根据响应头中的信息,判断响应的具体类型和长度,并开始接收响应体的内容。 7. 渲染页面:一旦浏览器接收到响应体的全部内容,会开始根据响应中的HTML、CSS、JavaScript等文件,进行页面的渲染和展示,同时进行布局、样式、脚本的解析和执行。 以上是从浏览器点击到服务器响应的步骤,通过这一系列的过程,浏览器能够与服务器进行通信,并获取到服务器返回的数据,完成页面的显示和功能交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值