浏览器输入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.mzph.cn/news/871196.shtml

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

相关文章

WordPress主题底部纯文本文章列表

如果是RiPro主题,请在后台顶部设置添加自定义CSS。其他主题在对应的CSS样式添加。 CSS代码: /*底部纯文本文章列表*/ .sjblog-list {height: 90px;background: #333;border-radius: 4px 4px 0 0;padding: 24px;margin: -20px -20px 22px -20px;positio…

九盾安防丨如何判断叉车是否超速?

在现代物流和生产流程中,叉车是提高效率和降低成本的关键工具。然而,叉车的高速行驶也带来了安全隐患,这就要求我们对其进行严格的安全管理。九盾安防,作为业界领先的安防专家,今天就为大家揭晓如何判断叉车是否超速&a…

安全面试经验分享 | 某安全厂商北京安服工程师实习岗

所面试的公司:某安全厂商 所在城市:北京 面试职位:安服工程师实习岗 面试过程: 腾讯会议(视频) 面试过程:整体流程就是自我介绍加上一些问题问题balabalabala。。。由于面的岗位是安服工程师…

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

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

SCI一区级 | Matlab实现NGO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测

SCI一区级 | Matlab实现NGO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测 目录 SCI一区级 | Matlab实现NGO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现NGO-CNN-LSTM-Mutilhead-Attention北方苍鹰算…

【机器学习】Exam4

实现线性不可分logistic逻辑回归 我们目前所学的都是线性回归,例如 y w 1 x 1 w 2 x 2 b y w_1x_1w_2x_2b yw1​x1​w2​x2​b 用肉眼来看数据集的话不难发现,线性回归没有用了,那么根据课程所学,我们是不是可以增加 x 3 x…

【Linux】Vim 使用教程

Linux - Vim Vim 是一款在 Linux 系统中广泛使用的文本编辑器,它是 Vi 编辑器的升级版。Vim 不仅功能强大,而且可高度定制化,是许多程序员和系统管理员的首选工具。以下是 Vim 在 Linux 系统中的安装、配置和使用过程的详细讲解。 附注&…

论文翻译:Large Language Models for Education: A Survey

目录 大型语言模型在教育领域的应用:一项综述摘要1 引言2. 教育中的LLM特征2.1. LLMs的特征2.2 教育的特征2.2.1 教育发展过程 低进入门槛。2.2.2. 对教师的影响2.2.3 教育挑战 2.3 LLMEdu的特征2.3.1 "LLMs 教育"的具体体现2.3.2 "LLMs 教育"…

Vue的import什么时候用大括号

在Vue.js(以及更广泛的JavaScript ES6模块系统中)中,使用大括号{}进行import操作的场景通常是在你想要从模块中导入具体的导出项时。这种导入方式被称为“命名导入”(Named Imports)。 命名导入(Named Imp…

linux——线程

线程概念 什么是线程? 在一个程序里的一个执行流叫做线程。一切进程至少有一个线程线程在进程内部运行,本质是在进程地址空间内运行在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化 我们都知道在每一个进程都有属…

4层负载均衡和7层负载均衡

四层负载均衡(Layer 4 Load Balancing)指的是在网络传输层(TCP/IP模型中的第四层)进行负载均衡的技术。四层负载均衡通常使用IP地址、端口号和协议等信息来将网络流量分配到多个服务器上。它主要关心网络层的信息,不涉…

Ubuntu 22.04.4 LTS (linux) Auditd 安全审计rm命令 记录操作

1 audit增加rm 规则 #sudo vim /etc/audit/rules.d/audit.rules -w /bin/rm -p x -k delfile #重新启动服务 sudo systemctl restart auditd #查看规则 sudo auditctl -l -w /bin/rm -p x -k delfile 2 测试规则 touch test.txt rm test.tx 3 查看日志 sudo ausear…

Apache-Flink未授权访问高危漏洞修复

漏洞等级 高危漏洞!!! 一、漏洞描述 攻击者没有获取到登录权限或未授权的情况下,或者不需要输入密码,即可通过直接输入网站控制台主页面地址,或者不允许查看的链接便可进行访问,同时进行操作。 二、修复建议 根据业务/系统具体情况,结合如下建议做出具体选择: 配…

无人机之遥控器分类篇

一、传统遥控器 传统无人机遥控器一般包括开关键、遥控天线等基础装置。但是会随着无人机具体的应用和功能而开发不同的按键。它的信号稳定性远超对比其他遥控,而且遥控距离也更远(一般遥控范围在100米或以上)传统遥控器对于初学者来说比较难…

在uniapp中如何使用地图

1&#xff0c;技术选择 最好是使用webview html形式加载&#xff0c;避免打包app时的地图加载问题 2&#xff0c;webview使用 使用webview必须按照官方文档,官网地址&#xff1a;https://uniapp.dcloud.net.cn/component/web-view.html <template><view><!…

KNN分类算法与鸢尾花分类任务

鸢尾花分类任务 1. 鸢尾花分类步骤1.1 分析问题&#xff0c;搞定输入和输出1.2 每个类别各采集50朵花1.3 选择一种算法&#xff0c;完成输入到输出的映射1.4 第四步&#xff1a;部署&#xff0c;集成 2. KNN算法原理2.1 基本概念2.2 核心理念2.3 训练2.4 推理流程 3. 使用 skle…

ubuntu安装k8s+docker运行英伟达gpu cuda

安装k8sdocker sealos resetsealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.27.7 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 --single 英伟达Ubuntu驱动下载地址&…

android 混淆后报如错 java.lang.ClassCastException

android 升级 gradle 混淆后报如错 java.lang.ClassCastException Caused by: java.lang.ClassCastExceptionat androidx.appcompat.app.ToolbarActionBar$$ExternalSyntheticThrowCCEIfNotNull0.m(:0) 原因&#xff1a; retrofit 混淆问题 解决&#xff1a; 将如下加入混淆…

java设计模式(二十)迭代器模式(Iterator Pattern)

1、模式介绍&#xff1a; 迭代器模式是一种行为设计模式&#xff0c;它允许客户端通过统一的方式访问聚合对象中的各个元素&#xff0c;而不必暴露其内部表示。通过迭代器模式&#xff0c;可以在不知道聚合对象内部结构的情况下&#xff0c;顺序访问其中的元素。 2、应用场景…