http协议:三 (1)键入网址再按下回车,后面究竟发生了什么

时间:2021-08-11
本文章向大家介绍http协议:三 (1)键入网址再按下回车,后面究竟发生了什么,主要包括http协议:三 (1)键入网址再按下回车,后面究竟发生了什么使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、浏览器从地址栏的输入中获得服务器的 IP 地址和端口号;

2、浏览器用 TCP 的三次握手与服务器建立连接;

3、浏览器向服务器发送拼好的报文;

4、服务器收到报文后处理请求,同样拼好报文再发给浏览器;

5、浏览器解析报文,渲染输出页面。

HTTP 协议基于底层的 TCP/IP 协议,所以必须要用 IP 地址建立连接;

如果不知道 IP 地址,就要用 DNS 协议去解析得到 IP 地址,否则就会连接失败;

建立 TCP 连接后会顺序收发数据,请求方和应答方都必须依据 HTTP 规范构建和解析报文;

为了减少响应时间,整个过程中的每一个环节都会有缓存,能够实现“短路”操作;

虽然现实中的 HTTP 传输过程非常复杂,但理论上仍然可以简化成实验里的“两点”模型

问题

DNS域名解析不需要发请求,建立连接吗?  ip和域名是多对多的关系

 回复:

dns请求是专门的dns协议,使用udp发送,因为是udp所以不需要建立连接。

第四个包到第六个包,为什么又进行了一次tcp连接呢,而且这个端口号是52086,这个是浏览器的特性吗?

回复:

因为http/1连接传输效率低,所以浏览器一般会对同一个域名发起多个连接提高效率,这个52086就是开的第二个连接,但在抓包中只是打开了,还没有传输。

 tcp 三次握手后的连接是怎么保持住的?还有 http 头里面的 keep alive,它怎么就让连接 hold 住了的?是一个连接对应一个线程还是怎么回事?

回复:

 tcp连接是用socket api打开的,只要不调用close,就会一直打开,在打开的时间里就可以收发数据。

 keepalive只是个“指示”,告诉客户端这个连接不会立即调用close关闭,它是对应连接的,与线程无关。

1:一次HTTP请求由几次TCP请求完成?


2:TCP的建连为什么是三次握手?


3:TCP的断连为什么是四次挥手?


4:为什么说HTTP比TCP性能差一些?


5:HTTP和TCP的优缺点是什么?


6:HTTP和TCP的应用场景是什么?为什么这么用?

原文地址:https://www.cnblogs.com/xrxc/p/15128633.html