首页 > 其他分享 >访问网页的全过程(通俗讲解)

访问网页的全过程(通俗讲解)

时间:2024-10-24 11:17:41浏览次数:5  
标签:浏览器 请求 专业知识 网页 全过程 讲解 HTTP 服务器 连接

目录

1. 输入 URL(想法产生)

2. DNS 查询(地址查找)

3. 建立 TCP 连接(请求发送)

4. 发送 HTTP 请求(点餐)

5. 服务器处理请求(厨房准备)

6. 发送 HTTP 响应(上菜)

7. 浏览器渲染(享用美食)

8. 交互和反馈(点餐、付款)

9. 关闭连接(用餐结束)

10. 缓存(下次光临)

总结

1. 输入 URL(想法产生)

你在浏览器的地址栏中输入一个网址,比如 https://www.example.com

  • 生活案例:想象你和朋友想去一家新餐厅,你在手机上输入餐厅的名称。
  • 专业知识
    • URL 是“统一资源定位符”,由几个部分组成:
      • 协议https://):指明使用的传输协议,HTTPS 是 HTTP 的安全版本,使用 SSL/TLS 加密数据。
      • 主机名www.example.com):这是网站的域名,表示服务器的地址。
      • 路径(可选):在域名后可以有路径,指向特定的资源,比如 https://www.example.com/menu

2. DNS 查询(地址查找)

浏览器需要将输入的域名转换为 IP 地址。这个过程称为 DNS 查询。

  • 生活案例:你询问朋友或使用地图软件,查找餐厅的地址。你可能需要通过 GPS 或网络搜索来获取确切位置。
  • 专业知识
    • DNS(域名系统)像是互联网的电话簿。它将用户友好的域名转换为计算机可读的 IP 地址。
    • 浏览器首先会检查本地 DNS 缓存,如果找到对应的 IP 地址,则直接使用。如果没有找到,浏览器会向 DNS 服务器发送查询请求。
    • 这个过程可能会涉及多个 DNS 服务器,最终返回一个有效的 IP 地址。

3. 建立 TCP 连接(请求发送)

一旦获得 IP 地址,浏览器会与服务器建立 TCP 连接。这个过程涉及三次握手。

  • 生活案例:你到达餐厅,向服务员确认你预定的桌子,确保可以坐下用餐。
  • 专业知识
    • 三次握手
      1. SYN:客户端发送一个 SYN(同步)请求,表示希望建立连接。
      2. SYN-ACK:服务器回应一个 SYN-ACK(同步-确认),表示准备好接收连接。
      3. ACK:客户端发送 ACK(确认),连接建立成功。

4. 发送 HTTP 请求(点餐)

连接建立后,浏览器会发送 HTTP 请求,询问服务器获取特定资源。

  • 生活案例:你坐下后,向服务员点餐,告诉他们你想吃的菜,比如“我要一份意大利面”。
  • 专业知识
    • HTTP 请求通常包含:
      • 请求方法:如 GET(请求资源)或 POST(提交数据)。
      • 请求头:包含请求的信息,例如用户代理(浏览器类型)、接受的内容类型、语言设置等。
      • 请求体:在某些情况下,尤其是 POST 请求,可能会包含提交的数据,如表单内容。

5. 服务器处理请求(厨房准备)

服务器接收到请求后,会根据请求的内容进行处理。

  • 生活案例:厨房开始准备你的订单,厨师根据你点的菜进行烹饪,可能需要查找食材或配方。
  • 专业知识
    • 服务器会使用后端语言(如 Node.js、Python、Java 等)来处理请求。
    • 服务器可能查询数据库(如 MySQL、PostgreSQL、MongoDB)获取数据,生成相应的 HTML 页面,或处理业务逻辑。

6. 发送 HTTP 响应(上菜)

服务器准备好后,将 HTTP 响应发送回浏览器。这通常包含网页的 HTML 内容。

  • 生活案例:服务员把你点的菜端上桌,满足你的需求。
  • 专业知识
    • HTTP 响应包含:
      • 状态码:表示请求的结果,常见的状态码包括:
        • 200 OK:成功。
        • 404 Not Found:未找到资源。
        • 500 Internal Server Error:服务器内部错误。
      • 响应头:如内容类型(Content-Type)、缓存控制等信息。
      • 响应体:实际的内容,通常是 HTML 文档,可能还包括 CSS 和 JavaScript。

7. 浏览器渲染(享用美食)

浏览器接收到响应后,开始解析并渲染网页。

  • 生活案例:你开始享用上桌的美食,感受菜肴的味道,开始聊天,享受氛围。
  • 专业知识
    • 解析过程
      • 构建 DOM(文档对象模型):浏览器解析 HTML,生成 DOM 树。
      • 构建 CSSOM(CSS 对象模型):解析 CSS,生成样式信息。
      • 合成渲染树:结合 DOM 和 CSSOM,生成渲染树,决定哪些元素需要显示以及样式。
      • 布局和绘制:计算元素的尺寸和位置,然后绘制到屏幕上。

8. 交互和反馈(点餐、付款)

你可以与网页进行交互,比如点击链接、填写表单等。这时,可能会再次发起新的 HTTP 请求。

  • 生活案例:你决定再点一份甜点,或者询问账单,继续与餐厅的服务进行互动。
  • 专业知识
    • 用户的交互会触发 JavaScript 事件,比如点击、输入等。
    • 现代网页常使用 AJAX(异步 JavaScript 和 XML)技术,允许页面在不重新加载的情况下动态请求数据,改善用户体验。

9. 关闭连接(用餐结束)

一旦完成所有操作,浏览器会关闭与服务器的连接,节省资源。

  • 生活案例:你用餐结束,向服务员付款,离开餐厅,连接结束。
  • 专业知识
    • 在 HTTP/1.1 中,连接通常会保持打开,以支持多个请求(持久连接)。这意味着在同一个 TCP 连接上可以发送多个请求,减少建立连接的开销。
    • HTTP/2 引入了更高效的连接复用,使得多个请求和响应可以在同一连接上并发处理。

10. 缓存(下次光临)

浏览器会缓存某些资源,以提高访问速度,下次访问时可以直接使用缓存。

  • 生活案例:你下次再去餐厅时,已经记得菜单的内容,能更快下单,服务员也能更快上菜。
  • 专业知识
    • 浏览器根据 HTTP 头中的缓存控制指令(如 Cache-ControlExpires)来决定是否使用缓存。
    • 有效的缓存策略可以减少请求次数、降低服务器负担,提高页面加载速度。

总结

整个网页访问过程可以比作从决定去餐厅到最后享受美食的完整体验。结合详细的专业知识与通俗的生活案例,帮助你更深入地理解每个步骤的细节和背后的技术。


标签:浏览器,请求,专业知识,网页,全过程,讲解,HTTP,服务器,连接
From: https://blog.csdn.net/error_log7/article/details/143204728

相关文章

  • ECharts饼图-富文本标签,附视频讲解与代码下载
    引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个饼图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供详细的视频讲解和代码下载链接,帮助大家快速上手。一、图表效果预览 二、视......
  • 【MySQL】提高篇—理论讲解与案例分析:实践练习:编写复杂查询、创建视图和存储过程
    关系数据库是存储和管理数据的核心工具。随着数据量的不断增加和业务需求的复杂化,开发者和数据分析师需要掌握编写复杂查询、创建视图和存储过程的技能。这些技能不仅能够提高数据操作的效率,还能确保数据处理的准确性和安全性。复杂查询:能够从多个表中提取相关数据,进行联接、......
  • LPDDR4/LPDDR4X讲解(一)
    1  基本概念与历史背景1.1基本概念 LPDDR4,全称为LowPowerDoubleDataRate4thGenerationSynchronousDynamicRandomAccessMemory,即第四代低功耗双倍数据率同步动态随机存取存储器。它是DDRSDRAM(DoubleDataRateSynchronousDynamicRandomAccessMemory,双......
  • 网站后台修改发布日期?后台修改网站网页不改变?
    网站后台修改发布日期进入后台管理系统:首先登录到网站的后台管理系统。找到文章管理页面:在后台导航菜单中找到“文章管理”、“内容管理”或类似名称的选项。选择要修改的文章:在文章列表中找到需要修改发布日期的文章,点击编辑或直接在列表中操作。修改发布日期:在文章编辑页面......
  • js练习:用canvas实现网页画笔效果
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>HTML5Canvas</title><linkrel="icon"href="https://fav.farm/✅"/></head><body><......
  • tomcat从安装到配置全过程(外加servlet炸包添加方法)
    tomcat写这篇笔记的原因很简单:今天脑海中冒出tomcat配置和servlet配置的问题,记不太清了,就像找找笔记,我明明记得之前记过相关的笔记,就是再笔记里面找不到了,只好重新梳理归纳一下了!一、tomcat启动后首页访问问题1.项目初始创建的jsp文件删除,会导致启动后首页出现404错误二、To......
  • 使用Llama Index与Streamlit实现一个从文本中提取专业术语和定义网页小程序
    LlamaIndex有很多文档完备的用例(语义搜索、摘要等)。然而,这并不意味着我们不能将LlamaIndex应用到非常具体的用例中!在本教程中,我们将介绍使用LlamaIndex从文本中提取术语和定义的设计过程,同时允许用户稍后查询这些术语。使用Streamlit,我们可以提供一种简单的方法来构建用......
  • html+css网页设计,我的网站
    一、技术简介HTML:超文本标记语言(HyperTextMarkupLanguage),用于创建网页的基本结构和内容。CSS:层叠样式表(CascadingStyleSheets),用于设置网页的样式和布局,包括字体、颜色、边距、对齐方式等。JavaScript:一种用于创建动态和交互式网页的脚本语言。通过JavaScript,可以实现网页......
  • 怎么实现将WORD中的公式导入(或粘贴)到网页编辑中
    编辑器:百度ueditor前端:vue2,vue3,vue-cli,html5需求:复制粘贴word内容图片,word图片转存交互,导入pdf,导入PowerPoint(PPT)要求:开源,免费,技术支持用户体验:Ctrl+V快捷键操作该说不说,最近这块应该也是挻火的,今天早上又有网友加我微信私聊,说是想了解一下这块的技术和方案。实......
  • 基于SpringBoot+Vue的大数据技术的宠物商品信息比价及推荐系统(源码+LW+调试文档+讲解
    在宠物经济日益繁荣的今天,为宠物主人提供一个高效的宠物商品信息比价及推荐系统至关重要。本系统基于SpringBoot+Vue并结合大数据技术,为宠物主人带来全新的购物体验。在设计上,系统广泛收集各类宠物商品的信息,包括价格、品牌、规格、用户评价等。通过大数据分析,对不同......