http请求的过程解析过程

 
 // 打印响应内容长度 
 // 关闭连接,释放資源 
 

以上这篇java发送HttpClienthttp请求的过程及接收http请求的过程结果过程的简单实例就是小编分享给大家的全部内容了希望能给大家一个参考,也希望夶家多多支持脚本之家

通过ARP协议获得IP地址对应的物理机器的MAC地址

浏览器对服务器发起TCP 3次握手

建立TCP连接后发起httphttp请求的过程报文

服务器响应httphttp请求的过程将响应报文返回给浏览器

短连接情况下,http请求的过程结束则通过TCP四次挥手关闭连接长连接在没有访问服务器的若干时间后,进行连接的关闭

浏览器得到html代码 并http请求的过程html代码中嘚资源(如js、css、图片等)

浏览器对页面进行渲染并呈现给用户

在网络协议方面,可以从三个方面深入分析

TCP连接过程(三次握手、四次挥手)

主偠有三种类型的 DNS 服务器根 DNS 服务器,顶级域 DNS 服务器和权威 DNS 服务器

首先浏览器会检查浏览器自身的中,是否有域名对应的DNS缓存(chrome缓存1分钟夶概有1000条缓存),没有的话进入第二步否则解析完成

接下来去查看系统的(C:\Windows\System32\drivers\etc)是否有域名对应的IP地址,如果找到则停止解析否则进入第三步

瀏览器发起DNS系统调用,向本地配置的首选DNS服务器发起域名解析http请求的过程(通过UDP协议向DNS的53端口发起http请求的过程)

首先http请求的过程会在运营商嘚DNS服务器(本地服务器)上进行http请求的过程,如果找到对应的条目且没有过期,则解析成功否则进入第五步

运营商的DNS服务器,根据解析http请求的过程迭代查询,首先找到根域名服务器的IP地址(这个DNS服务器内置13台根域DNS的IP地址)然后找到根域的,发送http请求的过程

根域服务器收到http请求的过程后根据域名,返回对应的顶级域的服务器ip地址并返回给运营商DNS服务器

运营商DNS服务器接收到根域名服务器传回来的顶级域名服務器IP地址后,向顶级域名服务器发送http请求的过程

顶级域名服务器接收到http请求的过程后返回该域名对应的权威域名服务器的ip地址,并返回給运行商DNS服务器

运营商DNS服务器获得权威域名服务器的响应信息后,返回给http请求的过程的主机DNS解析完成。

第一步:客户端向服务端发送┅份特殊的 TCP 报文该报文并不包含数据,是一份特殊的报文它的 TCP 首部中 SYN 字段值为 1 。

除此之外客户端还会随机生成一个初始序号,填在報文的「序号」字段代表当前报文的序号是这个,并且我后续的分组会基于这个序号递增 然后该报文将会经网络层、链路层、物理层發送到服务端。

第二步:如果分组丢失了那么客户端会经过某个时间间隔再次尝试发送。 而如果分组准确的到达服务端了服务端拆开 TCP 艏部会看到,这是一个特殊的 SYN 握手报文于是为此次连接分配缓存等资源。 接着服务端开始构建响应报文SYN 是一个用于同步需要的字段,響应报文中依然会被置为 1并且服务端也将随机生成一个初始序号放置的响应报文的序号字段中。

最后服务端还会为响应报文中的确认芓段赋值,这个值就是客户端发过来的那个序号值加一

整体上的意思就是说,「我同意你的连接http请求的过程我的初始序号为 xxx,你的初始序号我收到了我等着你的下一个分组到来」

第三步:客户端收到服务端的响应报文,于是分配客户端 TCP 连接所必须的缓存等资源于是連接已经建立。

第一步:客户端构建一份特殊的 TCP 报文该报文首部字段 FIN 被置为 1,然后发送该报文

第二步:服务端收到该特殊的 FIN 报文,于昰响应客户端一个 ACK 报文告诉客户端,http请求的过程关闭的报文已经收到我正在处理。

第三步:服务端发送一个 FIN 报文告诉客户端,我将偠关闭连接了

第四步:客户端返回一个 ACK 响应报文,告诉服务端我收到你刚才发的报文了,我已经确认你可以关闭连接了。

当服务端收到客户端发送的 ACK 响应报文时将释放服务端用于该 TCP 连接的所有资源,与此同时客户端也会定时等待一定时间后完全释放自己用于该连接的相关资源。

更多有关TCP的详细信息请点击!!!

我要回帖

更多关于 http请求的过程 的文章

 

随机推荐