当前位置: 首页 > article >正文

网络——浏览器发送一个请求到收到响应经历了哪些步骤

当浏览器发送一个请求到服务器并收到响应时,通常会经历以下几个步骤。这个过程可以分为几个主要阶段:DNS解析、建立TCP连接、发送HTTP请求、服务器处理请求和返回响应、浏览器接收响应等。下面是更详细的步骤说明:

  1. 输入URL:用户在浏览器地址栏中输入网址或点击链接。

  2. DNS解析

    • 浏览器首先检查本地缓存是否有该域名对应的IP地址。
    • 如果没有找到,则查询操作系统的DNS缓存。
    • 若仍未能找到,浏览器将向配置的DNS服务器发起请求以获取域名对应的IP地址。
    • DNS服务器可能会进一步查询其他DNS服务器直到找到对应信息,并最终返回给浏览器。
  3. 建立TCP连接(对于HTTP/1.1及以下版本):

    • 一旦获得了服务器的IP地址,客户端(浏览器)就会尝试与服务器建立TCP连接。这通常通过三次握手来完成。
      • 客户端发送SYN包至服务器。
      • 服务器回复SYN+ACK确认。
      • 客户端再发送ACK确认,此时连接建立成功。
  4. 发送HTTP请求

    • TCP连接建立后,浏览器会构造一个HTTP请求报文并通过已建立的连接发送给服务器。请求包括请求行、请求头以及可能存在的请求体等内容。
  5. 服务器处理请求

    • 服务器接收到请求后,根据请求中的URL路径以及其他信息来决定如何处理这次请求。(端口:确定服务,路径:确定访问那个Controller的Function,参数:请求数据)
    • 这可能涉及到执行特定的程序逻辑、访问数据库、读取文件等操作。
    • 之后,服务器准备相应的资源作为响应内容。
  6. 返回HTTP响应

    • 服务器生成响应数据,并将其封装成HTTP响应格式(包含状态行、响应头和响应体)。
    • 服务器通过已经建立好的TCP连接将此响应发送回客户端。
  7. 关闭TCP连接(对于非持久性连接的情况):

    • 在HTTP/1.0中,默认情况下每次请求-响应完成后都会关闭连接。
    • HTTP/1.1引入了持久连接机制,允许一次TCP连接上进行多次请求-响应循环,从而提高效率。但若设置了Connection: close,则也会在此阶段结束连接。
  8. 浏览器接收响应并渲染页面

    • 客户端接收到服务器发来的响应后,开始解析HTML文档。
    • 根据需要,浏览器还可能加载额外的资源如CSS样式表、JavaScript脚本、图片等。
    • 最终,浏览器将所有这些资源整合起来展示给用户。

http://www.kler.cn/a/411400.html

相关文章:

  • 力扣hot100-->排序
  • UE5肉鸽游戏教程学习
  • 【R语言管理】Pycharm配置R语言及使用Anaconda管理R语言虚拟环境
  • 【MySQL】数据库核心技术与应用指南
  • Oracle 11gR2 坏块修复实例一则
  • 【机器学习】——卷积与循环的交响曲:神经网络模型在现代科技中的协奏
  • react实现模拟chatGPT问答页
  • 春秋云境 CVE 复现
  • UE5 使用SlateViewer模版创建窗口(记录)
  • 人体特定吸收率 (SAR) 分布建模
  • JavaWeb——Maven高级
  • 代码美学:MATLAB制作渐变色
  • 区块链知识体系
  • 人工智能与人类:共创未来的新篇章
  • snmp MIB详解
  • UE5 实现组合键触发事件的方法
  • 滑动窗口篇——如行云流水般的高效解法与智能之道(3)
  • 第二十二周周报:Stable Diffusion
  • box-im学习
  • 跨部门文件共享安全:平衡协作与风险的关键策略
  • vscode添加环境变量(mujoco)
  • 2024.9 Pruning Cycles in UMLS Metathesaurus: A NeuroSymbolic AI Approach
  • C++设计模式(单例模式)
  • Ubuntu下Docker容器java服务往mysql插入中文数据乱码
  • UE5材质混合模式
  • mysql深度分页优化