浏览器输入URL后的过程

总体流程:

1. 用户输入URL并按下回车

当用户在浏览器的地址栏中输入一个 URL 并按下回车,浏览器开始解析用户输入并判断这是一个合法的 URL。

2. DNS 解析

  1. 缓存查找:浏览器首先查看本地 DNS 缓存中是否有对应的 IP,如果有则直接使用。
  2. 主机文件查找:如果本地缓存没有找到,浏览器则会查询操作系统的 hosts 文件。
  3. 系统缓存查找:接着浏览器会查询系统缓存中的 DNS 记录。
  4. 路由器缓存查找:系统缓存没有找到时,会向路由器请求,查看路由器缓存。
  5. ISP DNS 服务器查找:如果路由器缓存也没有找到,最终请求会被发送到 ISP(互联网服务提供商)的 DNS 服务器。
  6. 递归查询:如果 ISP DNS 服务器也没有找到对应记录,则会进行递归查询,即向根 DNS 服务器、顶级域名服务器等逐步查询。

3. 建立 TCP 连接

获得 IP 地址后,基于三次握手(TCP 三次握手过程),浏览器与服务器建立 TCP 连接,以确保通信的可靠性。

4. 发送 HTTP 请求

TCP 连接建立成功后,浏览器会发送一个 HTTP 请求给服务器,这个请求包含了 URL、请求方法(GET、POST 等)、请求头等信息。

5.1 服务器处理请求

服务器接收到 HTTP 请求后,会根据请求路径和参数处理请求,并生成 HTTP 响应。这个过程可能涉及:

  • 查询数据库
  • 调用内部服务或第三方 API
  • 读取文件系统的静态资源(如 HTML 文件、图片、CSS 文件等)

5.2. 服务器返回 HTTP 响应

服务器将处理结果封装成 HTTP 响应,返回给浏览器。HTTP 响应包括状态码、响应头和响应体。

6. 浏览器开始处理 HTTP 响应

浏览器接收到 HTTP 响应后,将响应内容交给渲染引擎进行处理:

7. 关闭TCP连接(四次挥手)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/375842.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI人工智能作词,为音乐注入未来之力

在当今的音乐世界中,创新的力量不断推动着边界的拓展,而人工智能作词正以其独特的魅力,成为引领音乐走向未来的强大动力。 “妙笔生词智能写歌词软件(veve522)”无疑是这股浪潮中的璀璨明星。它利用先进的人工智能技术…

【Golang】map的使用

map声明的方式 //声明var m map[string]string//在使用map之前,先make,make的作用就是给map分配空间m make(map[string]string)m["lover"] "Yzx"m["friend1"] "Zxw"m["friend2"] "Zzc"…

快速测试electron环境是否安装成功

快速测试electron环境是否安装成功 测试代码正确运行的效果运行错误的效果v22.4.1 版本无法使用v20.15.1版本无法使用v18.20.4 版本无法使用 终极解决办法 测试代码 1.npx create-electron-app my-electron-app 2.cd my-electron-app 3.npm start 正确运行的效果 环境没问题…

47、lvs之DR

1、DR模式: 1.1、lvs三种模式: nat 地址转换 DR 直接路由模式 tun 隧道模式 1.2、DR模式的特点: 调度器在整个lvs集群当中是最重要的,在nat模式下,即负载接收请求,同时根据负载均衡的算法转发流量&…

智能家居装修怎么布线?智能家居网络与开关插座布置

打造全屋智能家居。计划的智能家居方案以米家系列为主,智能家居联网方案以无线为主。装修前为了装备智能家居做了很多准备工作,本文深圳侨杰智能分享一个智能家居装修和布线方面的心得与实战知识。希望能对大家的装修有所帮助。 ​1.关于网络 如果房子比…

C语言中字符串(字符数组)中含有 0x00 (‘\0‘)引发的问题和解决办法

问题 在C语言中,字符串是以空字符(null character,即\0或0x00)结尾的字符数组。这种设计意味着字符串中的任何 0x00 字符都会被解释为字符串的结束。因此,如果字符串内部包含0x00字符,这实际上会将字符串分…

【每日一练】python类和对象现实举例详细讲解

""" 本节课程目的: 1.掌握类描述现实世界实物思想 2.掌握类和对象的关系 3.理解什么事面向对象 """ #比如设计一个闹钟,在这里就新建一个类 class Clock:idNone #闹钟的序列号,也就是类的属性priceNone #闹…

Web开发 —— 放大镜效果(HTML、CSS、JavaScript)

目录 一、需求描述 二、实现效果 三、完整代码 四、实现过程 1、HTML 页面结构 2、CSS 元素样式 3、JavaScript动态控制 (1)获取元素 (2)控制大图和遮罩层的显隐性 (3)遮罩层跟随鼠标移动 &…

golang 项目打包部署环境变量设置

最近将 golang 项目打包部署在不同环境,总结一下自己的心得体会,供大家参考。 1、首先要明确自己目标服务器的系统类型(例如 windows 或者Linux) ,如果是Linux 还需要注意目标服务器的CPU架构(amd或者arm) 目标服务器的CPU架构可执行命令&…

Vue.js学习笔记(五)抽奖组件封装——转盘抽奖

基于VUE2转盘组件的开发 文章目录 基于VUE2转盘组件的开发前言一、开发步骤1.组件布局2.布局样式3.数据准备 二、最后效果总结 前言 因为之前的转盘功能是图片做的,每次活动更新都要重做UI和前端,为了解决这一问题进行动态配置转盘组件开发,…

如何更好地理解递归算法?Python实例详解

递归确实是一种较为抽象的数学逻辑,可以简单的理解为程序调用自身的算法。 维基百科对递归的解释是: 递归(英语:Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使…

pbootCMS 数据库sqlite转mysql数据库

前言 pbootCMS默认使用 sqlite数据库 ,那么什么是sqlite数据库呢? SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌…

【大模型LLM面试合集】大语言模型架构_MoE论文

1.MoE论文 参考文章: Mixture of Experts-IntroductionUnderstanding the Mixture-of-Experts Model in Deep Learning 论文相关: 论文名称:Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer论文地址&a…

Kafka(三)Producer第二篇

一,生产者架构 生产者客户端由两个线程协调运行,分别为主线程和Sender线程(发送线程)。 主线程:KafkaProducer创建消息,通过拦截器、序列化器和分区器之后缓存到消息收集器RecordAccumulator中;…

jmeter-beanshell学习6-beanshell生成测试报告

前面写了各种准备工作,内容组合用起来,应该能做自动化了,最后一步,生成一个报告,报告格式还是csv 报告生成的路径和文件,在用户参数写好,防止以后改路径或者名字,要去代码里面改。以…

批量提取PDF指定区域内容到 Excel , 根据PDF文件第一行文字来自动重命名v1.3-附思路和代码实现

本次文章更新内容,图片以及扫描的PDF也可以支持批量提取指定区域内容了,主要是通过截图指定区域,然后使用OCR来识别该区域的文字来实现的,所以精度可能会有点不够,但是如果是数字的话,问题不大;…

Java高频面试基础知识点整理9

干货分享,感谢您的阅读!背景​​​​​​高频面试题基本总结回顾(含笔试高频算法整理) 最全文章见:Java高频面试基础知识点整理 (一)Java基础高频知识考点 针对人员: 1.全部人员都…

农牧行业CRM洞察:打造营、销、服一体化数字营销平台

01、行业应用背景 保持企业活力,支撑业务单元协调发展,稳定核心产品竞争力,将成为农牧行业企业数字化、数智化建设的指导方向。 积极发挥数据在生产、流通、消费各个环节的决策支撑,为农牧企业特别是多业态集团型企业&#xff0…

Cisco 命令速查表(非常详细)零基础入门到精通,收藏这一篇就够了

Cisco IOS(Internetwork Operating System)是 Cisco 系统公司开发的专有操作系统,用于其路由器和交换机。它提供了一个稳健的、可扩展的、以命令行接口(CLI)为基础的网络操作环境。通过掌握 Cisco IOS 命令&#xff0c…

conda install问题记录

最近想用代码处理sar数据,解放双手。 看重了isce这个处理平台,在安装包的时候遇到了一些问题。 这一步持续了非常久,然后我就果断ctrlc了 后面再次进行尝试,出现一大串报错,不知道是不是依赖项的问题 后面看到说mam…