有趣生活

当前位置:首页>汽车>输入网址前面有锁子什么情况输入网址按回车到底发生了什么

输入网址前面有锁子什么情况输入网址按回车到底发生了什么

发布时间:2026-08-25阅读(1)

导读作者|MageByte团队来源|码哥字节(ID:MageByte)头图|CSDN下载自东方IC详解输入网址点击回车,后台到底发生了什么。透析HTTP协议与T....

作者 | MageByte团队

来源 | 码哥字节(ID:MageByte)

头图 | CSDN 下载自东方IC

详解输入网址点击回车,后台到底发生了什么。透析 HTTP 协议与 TCP 连接之间的千丝万缕的关系。掌握为何是三次握手四次挥手?time_wait 存在的意义是什么?全面图解重点问题,再也不用担心面试问这个问题。

大致流程

  • URL 解析,解析 http 协议、端口、资源地址。

  • DNS 查询:首先查询本地 host,再访问 DNS 服务器将 域名解析成 ip 地址。

  • 建立 TCP 连接。

  • 服务器收到请求后处理,并且构造响应返回给客户端。

  • 客户端接收 HTTP 报文响应。

  • 渲染页面,最后有可能会四次挥手断开连接,也可能不会而是复用连接。

重点来了:

  • 如何理解 TCP 的三次握手与四次挥手?每次握手客户端与服务端是怎样的状态?

  • 为何挥手会出现 2MSL,遇到大量 Socket 处在 TIME_WAIT 或者 CLOSE_WAIT 状态是什么问题?

  • 三次握手与四次挥手的过程是怎样的?

  • HTTP 的报文格式又是怎样的?

继续阅读本文,且听码哥字节答疑解惑,微信搜索 “码哥字节”,关注公众号更多硬核。

URL 解析

比如【码哥字节】在思否发布的一篇文章的地址:https://segmentfault.com/a/1190000023475177。url 遵守的规则是这个样子

scheme://host.domain:port/path/filename

每个名词的含义如下解释:

  • scheme 定义应用层协议类型,比如 http、https、 ftp 等;

  • host 定义域主机(http 的默认主机是 www);

  • domain 定义因特网域名,比如 segmentfault.com;

  • port 主机的端口,http 默认是 80, https 默认是 443;

  • path 服务器上的资源路径;

  • filename - 定义文档/资源的名称;

DNS 查询

浏览器不能直接通过域名找到服务器,只能通过 IP 地址。

那浏览器是如何通过域名查询到我们输入的 url 对应的 IP 呢?

  • 浏览器缓存:按照一定频率缓存 DNS 数据。

  • 操作系统缓存:如果浏览器缓存好啊不到记录则去操作系统中找。

  • 路由缓存:路由器 DNS 缓存。

  • ISP 的 DNS 服务器:ISP 是互联网服务提供商(Internet Service Provider)的简称,ISP 有专门的 DNS 服务器应对 DNS 查询请求。

  • 根服务器:ISP 的 DNS 服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS 服务器先问根域名服务器.com 域名服务器的 IP 地址,然后再问 .baidu 域名服务器,依次类推)

TCP 连接建立与断开

通过域名解析出 IP 地址以后就要建立 TCP/IP 连接了。

TCP/IP 分为四层,每一层都会加上一个头部再发送给下一层。到了接收方后,对应的每一层则把对应层的头部解析拆除,丢上上一层,跟发送端的过程反过来。

相关文章

    Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图