首页 > 其他分享 >常见问题

常见问题

时间:2024-07-25 11:50:29浏览次数:10  
标签:常见问题 浏览器 握手 SYN 服务器 连接 客户端

1、在浏览器中输入url地址到显示主页的过程?

1. 输入 URL 并解析

当用户在浏览器的地址栏中输入 URL(如 http://www.xxx.com)并按下回车键时,浏览器开始处理该请求。

2. DNS 解析

浏览器首先需要将域名(如 www.example.com)解析为 IP 地址。这个过程包括以下步骤:
  • 浏览器查找 DNS 缓存,看看是否已经缓存了该域名的 IP 地址。
  • 如果浏览器缓存中没有找到,操作系统会查找其本地 DNS 缓存。
  • 如果操作系统缓存中也没有找到,操作系统会向配置的 DNS 服务器发送查询请求。
  • DNS 服务器查询解析链路,最终将域名解析为 IP 地址,并返回给操作系统。
  • 操作系统将 IP 地址返回给浏览器。

3. 建立 TCP 连接

有了 IP 地址后,浏览器与服务器建立 TCP 连接。这个过程包括三次握手(Three-way handshake):
  1. 浏览器发送一个 SYN 包(同步序列编号)到服务器。
  2. 服务器响应一个 SYN-ACK 包(同步确认)。
  3. 浏览器发送一个 ACK 包(确认),TCP 连接建立。

4. 发送 HTTP 请求

TCP 连接建立后,浏览器会向服务器发送一个 HTTP 请求。

5. 服务器处理请求并返回响应

服务器接收到请求后,处理请求,生成响应内容,并返回给浏览器。响应内容包括 HTTP 状态码、响应头和响应主体。

6. 浏览器接收响应并开始渲染

浏览器接收 HTTP 响应后,开始渲染页面。这个过程包括以下步骤:
  1. 解析 HTML:浏览器解析 HTML 内容,构建 DOM 树。
  2. 解析 CSS:如果 HTML 中包含 CSS 文件或内嵌样式,浏览器会解析 CSS 内容,构建 CSSOM 树(CSS 对象模型)。
  3. 解析 JavaScript:如果 HTML 中包含 JavaScript 文件或内嵌脚本,浏览器会解析并执行 JavaScript 代码,可能会修改 DOM 树或 CSSOM 树。
  4. 构建渲染树:根据 DOM 树和 CSSOM 树,浏览器构建渲染树(Render Tree),这是一种表示页面布局和样式的内部表示。
  5. 布局(Layout):根据渲染树计算每个节点在屏幕上的位置和大小。这一步称为布局或回流(Reflow)。
  6. 绘制(Painting):将渲染树的每个节点绘制到屏幕上,这一步称为绘制或重绘(Repaint)。

7. 显示主页

经过上述步骤后,浏览器将渲染的页面内容显示给用户,用户可以看到主页。

2、为什么要三次握手?二次握手或者四次握手会怎么样?

三次握手

 

三次握手在建立连接之前,Client处于CLOSED状态,而Server处于LISTEN的状态。
  1. 第一次握手(SYN-1):
    • 客户端发送一个带有 SYN 标志的 TCP 报文段给服务器,表示客户端请求建立连接。
    • 客户端选择一个初始序列号(ISN)并将其放入报文段中,进入 SYN_SENT 状态。
  2. 第二次握手(SYN + ACK):
    • 服务器收到客户端发送的 SYN 报文段后,如果同意建立连接,会发送一个带有 SYN 和 ACK 标志的报文段给客户端,表示服务器接受了客户端的请求,并带上自己的 ISN。
    • 服务器进入 SYN_RCVD 状态。
  3. 第三次握手(ACK):
    • 客户端收到服务器发送的 SYN+ACK 报文段后,会发送一个带有 ACK 标志的报文段给服务器,表示客户端确认了服务器的响应。
    • 客户端和服务器都进入 ESTABLISHED 状态,连接建立成功,可以开始进行数据传输。

为什么需要三次握手?

  1. 确保双方都能发送和接收数据
    • 第一次握手确认客户端的发送能力和服务器的接收能力。
    • 第二次握手确认服务器的发送能力和客户端的接收能力。
    • 第三次握手确认客户端的发送能力和服务器的接收能力。
  2. 防止旧的连接请求误导双方
    • 通过三次握手,双方都能确认对方的状态是最新的,有效避免了网络中的旧的、延迟的SYN包造成的错误连接。
  3. 防止重复数据包干扰
    • 三次握手确保双方都能有效处理重复的数据包,并建立一个唯一的连接。

二次握手的问题

如果采用二次握手(即省略第三次握手),可能会导致以下问题:
  1. 旧的重复连接请求:旧的 SYN 包在网络中延迟传输,服务器可能误认为是新的连接请求,发送 SYN-ACK 包,但客户端不知道这个连接,可能导致连接建立异常。
  2. 无法确认客户端的接收能力:服务器在发送 SYN-ACK 包后,不知道客户端是否已成功收到,如果客户端未收到,服务器会一直等待 ACK 包,导致资源浪费。

四次握手的问题

如果采用四次握手(即增加额外的确认步骤),虽然能增加连接建立的可靠性,但也会带来额外的开销和复杂性,增加连接建立的延迟。TCP 设计中,三次握手已经足够确保连接的可靠性和双方通信的能力,再增加步骤则显得不必要且低效。

标签:常见问题,浏览器,握手,SYN,服务器,连接,客户端
From: https://www.cnblogs.com/erfeier/p/18322672

相关文章

  • phpMyAdmin工具常见问题
    phpMyAdmin是什么?phpMyAdmin是一种管理员工具,它是一个PHP脚本,旨在使用户能够与自己的MySQL数据库进行交互。WordPress将其所有信息存储在MySQL数据库中,并与数据库交互以在WordPress站点内生成信息。MySQL数据库中存储的数据、表和字段的“原始“视图可以通过phpMyAdmin访问。......
  • 【windows11】笔记本电脑使用PE工具重装系统超详细步骤及常见问题
    因为一些原因昨天重装了一次系统,本来以为是一次简单快捷的重装,但是我们在重装系统的过程中遇到了一些问题,导致重装之后很多出现了一系列小毛病,一度以为自己没装成功,多次重装等烦恼。下面为大家附上部分教程及一些注意事项,相信大家参考别的教程配合可以很顺利地完成。第五步之......
  • Hypertale集群常见问题
    Hypertale集群常见问题1.启动: 1)Master: 问题1; ERRORHypertable.Master: main(/home/wl/src/hypertable/src/cc/Hypertable/Master/main.cc:293): Hypertable::Exception:Errorreadingmetalogfile:/hypertable/servers/master/log/mml/0:read7169/7169......
  • jenkins+allure常见问题汇总
    1.生成allure报告时,报Cannotfindanyallurecommandlineinstallation. 原因:jenkins下载安装allure插件后,没有配置allure路径解决办法:ManageJenkins>Tools>AllureCommandine安装2.执行pytest--alluredir=./allure-result--clean-alluredir时,报error:unrecognizeda......
  • Visual Studio使用——vs使用过程中常见问题积累,技巧集锦等,持续更新中
    目录引出VisualStudio使用自定义代码片段vs显示所有文件总结Idea安装和使用0.Java下载和IDEA工具1.首次新建项目2.隐藏文件不必要显示文件3.目录层级设置4.Settings设置选择idea的场景提示代码不区分大小写取消git的代码作者显示引出VisualStudio使用——vs......
  • NSIS 之 NsDialogs 常见问题解答
    如何启用/禁用控件使用标准NSIS EnableWindow 命令。NSDialogs允许您弹出通过 ${NSD_Create*} 创建的控件的 hwnd (句柄)。EnableWindow 将 hwnd 作为其参数之一。通过它,您可以轻松启用/禁用控件。  !include"nsDialogs.nsh"!include"winmessages.nsh"!incl......
  • 软件安装下载失败,常见问题汇总(微软软件必备运用库)
    文章目录前言一、卸载软件二、激活软件无法打开?三、安装软件必备运用库扩展:win64位操作系统跟win32位操作系统区别之处前言我们在安装激活一些常用的办公软件,如:visio、Matlab、office等等,经常会遇到各种问题,接下来我会介绍一些方法,大家可以尝试看能否解决问题。一、......
  • librdkafka 常见问题FAQ
    1,++librdkafka一个消费者实例分配了所有分区不提交位点,在发生rebalance后,会重新从头消费数据吗在发生重新平衡(rebalance)后,消费者会从哪里开始消费数据取决于消费者组的配置,特别是auto.offset.reset配置项。关键配置项:auto.offset.resetauto.offset.reset决定了在没有有......
  • 解决方案 | IP地址申请专用HTTPS证书的常见问题
    IP地址专用的HTTPS证书是一种专门为IP地址设计的SSL/TLS证书,它可以通过HTTPS协议安全地访问基于IP地址实现的网站或服务,以下是申请IP地址https证书时经常遇到的问题以及解决办法。一、如何选择合适的IP地址https证书的类型?1、DV类型IP证书:DVIP地址证书是基础验证级别的证......
  • 文件数据跨境传输这些常见问题,要怎么解决?
    越来越多的企业和机构面临文件数据跨境传输的场景和需求,数据跨境流通的过程还是比较复杂的,所以在传输过程中会面临各种问题。比如法律法规和数据保护、技术标准、网络带宽和速度、数据安全风险控制等,企业要如何解决这些问题呢?这里推荐看看飞驰云联的《数据跨境传输管控解决方案白......