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

简述从浏览器发出请求到数据返回的全过程

        下面是我结合经验概述的从浏览器发出请求到数据返回的全过程。

一、用户请求

        1、用户在浏览器输入URL,或通过功能发起请求;

        2、解析URL,提取协议(http,https等),IP,端口,域名,路径等信息;

        3、如果该URL含域名,将请求DNS服务器进行域名解析,得到服务器IP地址或cdn节点地址。可能涉及DNS轮询,或智能DNS解析策略,将请求转发到位置最佳的服务器地址,比如异地多活多机房部署的情况。

        DNS域名解析,会先请求本地DNS服务器缓存,如果未找到,逐级向上查找到根域名服务器,最后得到IP地址。

二、负载均衡

        1、DNS可起到负载均衡的作用。或者将域名配置的IP地址设置为负载均衡服务器地址,DNS域名解析后,将请求发送到负载均衡服务器;

        负载均衡服务器,可对服务器做健康检查,配置负载均衡策略,如平均分配、权重分配(性能相对弱的服务器配置低权重)、按地域分配、或根据具体业务信息如用户ID分配,选择合适的后端服务器集群发送请求;

       2、如果是http(https)请求,会在负载均衡服务器和选定的后端服务器之间建立tcp连接,并进行SSL/TLS握手;

三、静态资源解析与缓存

        1、对于静态资源,服务器会根据配置解析请求并定位到对应的文件路径;

        2、服务器会先看从缓存中能否获取(内存缓存、浏览器缓存,cdn缓存),从缓存中获取到,将直接返回,否则从服务器获取;比如我们请求的百度一下,你就知道,此页面信息可能已经缓存在了我们浏览中。配置合理的过期时间,可减少网络请求和对后端的压力;

四、异地多活

        为了保证服务高可用,在机房部署时可能采用异地多活、多机房部署。每个数据中心都具备完全的数据处理能力,且通过多主复制、消息队列等方式保证数据的最终一致性。

        异地多活的场景下,负载均衡器根据特定策略将流量分发到不同城市的机房,确保服务高可用性和容灾能力。若静态资源分散在多个数据中心,可以通过统一的资源管理系统保证各数据中心资源版本的一致性。

五、数据返回和页面渲染

        无论数据从缓存或是服务器获取,最终都会通过http请求发回客户端。

        客户端对返回数据解析并渲染页面或处理相应的业务逻辑。

总结

        以上就是浏览器发出请求到接受到数据返回过程的简述,整体上分为用户请求、负载均衡、异地多活、数据返回5部分。不同的业务场景或不同规模在流程上可能有删减,视情况而定。

        本文着重介绍全流程,涉及到网络连接,发送http请求等未详细介绍,但这也是很重要的部分。


关于网络攻击的拦截(来自百度):

针对网络攻击的地址拦截,通常可以在多个层面进行:

1. 网络层(防火墙):

        在网络边界上部署防火墙,可以基于IP地址、端口号、协议类型等信息设置规则,对恶意流量或来自黑名单IP的请求进行拦截。防火墙可实时监控并阻止不符合安全策略的数据包进出。

2. 传输层(负载均衡器):
        如果使用了负载均衡器,可以在其上配置访问控制列表(ACL),根据源IP地址或其他识别特征阻止恶意请求到达后端服务器。

3. 应用层(Web服务器/应用程序):
        在Web服务器(如Nginx、Apache等)中配置访问控制模块,通过规则来过滤和拒绝特定来源的HTTP请求。
        对于API服务,可以在网关层(API Gateway)添加过滤器,检查请求头部中的X-Forwarded-For字段(用于识别客户端真实IP地址,特别是当有代理服务器时),并依据此信息进行拦截。

4. 操作系统级别:
        可以在操作系统内核中设置iptables或者Windows防火墙规则,阻止来自特定IP地址范围的连接。

5. 云服务提供商的安全功能:
        如果您的服务部署在云平台上,比如阿里云,可以利用云服务商提供的DDoS防护、网络安全组等功能,实现针对攻击IP的自动拦截和清洗。

6. 内容分发网络(CDN)与分布式防御系统:
        利用CDN服务的DDoS防护能力,在边缘节点就对异常流量进行识别和拦截。

7. 安全设备和软件:
        使用专门的安全设备或软件,例如入侵检测系统(IDS)、入侵防护系统(IPS)等,它们能够检测到异常行为并采取措施,包括阻断攻击源。

        综合以上各种方式,可以根据实际情况和需求选择合适的技术手段,构建多层防御体系,确保网络攻击得到有效的拦截。同时,结合日志分析、态势感知等手段,持续更新和优化安全策略。

相关文章:

简述从浏览器发出请求到数据返回的全过程

下面是我结合经验概述的从浏览器发出请求到数据返回的全过程。 一、用户请求 1、用户在浏览器输入URL,或通过功能发起请求; 2、解析URL,提取协议(http,https等),IP,端口,域名,路径等信息&#x…...

MongoDB性能最佳实践:硬件和操作系统配置

欢迎阅读有关MongoDB性能最佳实践的系列博文。在往期文章中,我们已经讨论过查询模式和性能分析、事务和读/写关注等实现大规模性能的关键考虑因素。在本篇文章中,我们将讨论硬件和操作系统配置。 如果您在阿里云上部署MongoDB,那么阿里云会为…...

mysql查询条件包含IS NULL、IS NOT NULL、!=、like %* 、like %*%,不能使用索引查询,只能使用全表扫描,是真的吗???

不知道是啥原因也不知道啥时候, 江湖上流传着这么一个说法 mysql查询条件包含IS NULL、IS NOT NULL、!、like %* 、like %*%,不能使用索引查询,只能使用全表扫描。 刚入行时我也是这么认为的,还奉为真理! 但是时间工作中你会发现还是走索引…...

使用IDEA2023创建传统的JavaWeb项目并运行与调试

日期:2024-0312 作者:dusuanyun 文档环境说明: OS:Deepin 20.9(Linux) JDK: OpenJDK21 Tomcat:10.1.19 IDEA: 2023.3.4 (Ultimate Edition) 本文档默认已经安装JDK及环境变量的配置。 关键词…...

【快捷部署】002_Flink(1.17.2)

📣【快捷部署系列】002期信息 编号选型版本操作系统部署形式部署模式002Flink1.17.2CentOS 7.Xtgz包单机 👉 演示视频 Flink一键安装(本地模式) install-flink.sh 脚本内容 #!/bin/bash ####变量 ###执行脚本的当前目录 mydir$…...

智慧公厕建设,助力打造宜居、韧性、可持续的智慧城市

公共厕所作为智慧城市的重要组成部分,对于城市的高质量发展起着至关重要的作用。智慧公厕建设旨在通过全面监测、控制和管理公共厕所,实现多方面功能,包括公共厕所环境监测与调控、厕位占用监测与引导、消耗品监测与缺失提示、安全防范与管理…...

[Django 0-1] Core.Cache模块

Caching 源码分析 Django 的 cache 缓存机制,包含了一些代理设计模式(代理了但没完全代理,多此一举)。 通过实现一个CacheHandler的manager类,来实现多缓存后端的统一管理和调用,避免到处实例使用。 缓存的目的 缓存的目的就是…...

spy分析文件另存为弹框【selenium】

有时需要下载多个文件,但是不想保存在同一个目录下,需要做两步 selenium设置浏览器默认下载路径,这个路径需要是个不存在的路径操作文件另存为弹框 文章目录 selenium设置浏览器默认下载路径操作文件另存为弹框 selenium设置浏览器默认下载路…...

分布式与集群,二者区别是什么?

🐓分布式 分布式系统是由多个独立的计算机节点组成的系统,这些节点通过网络协作完成任务。每个节点都有自己的独立计算能力和存储能力,可以独立运行。分布式系统的目标是提高系统的可靠性、可扩展性和性能。 分布式服务包含的技术和理论 负…...

(done) 什么是词嵌入技术?word embedding ?(这里没有介绍词嵌入算法)(没有提到嵌入矩阵如何得到)

参考视频:https://www.bilibili.com/video/BV1sw411S7i1/?spm_id_from333.788&vd_source7a1a0bc74158c6993c7355c5490fc600 词嵌入(word embedding):把词汇表中的词或短语 -------- 映射 ----> 固定长度向量 我们可以把 …...

C++静态成员函数和非静态成员函数之间的相互调用

C静态成员函数和非静态成员函数之间的相互调用 一直对C静态成员函数和非静态成员函数之间的相互调用记不住,都是死记硬背,今天突然醍醐灌顶; 1、静态成员函数不能调用非静态成员函数,因为静态成员函数属于类,没有this…...

最好用的流程编辑器bpmn-js系列之基本使用

BPMN(Business Process Modeling Notation)是由业务流程管理倡议组织BPMI(The Business Process Management Initiative)开发的一套标准的业务流程建模符号规范。其目的是为用户提供一套容易理解的标准符号,这些符号作…...

Singularity(八)| conda实战

Singularity(八)| conda实战 8.1 conda 和容器的区别 Conda和容器技术(如Docker)都是现代软件开发和数据科学中常用的工具,用于解决环境依赖和应用部署的问题。尽管它们有着相似的目标,即确保应用可以在不…...

elementui el-select组件多选设置初始值无法修改问题

elementui el-select组件多选设置初始值无法修改问题 对list直接赋值后点击修改select框&#xff0c;此时数据已改变但显示无变化。 <el-select v-model"form.optrList" multiple placeholder"请选择"><el-optionv-for"item in list":k…...

电脑自动关机后文件夹不见了怎么办?别急,找回方法在这里

在使用电脑的过程中&#xff0c;我们都可能会遇到一些令人头疼的问题&#xff0c;其中之一就是电脑突然自动关机后&#xff0c;发现重要的文件夹不见了。这种情况可能会让你感到焦虑和困惑&#xff0c;因为失去的数据可能涉及到工作、学习或生活中的各个方面。不过&#xff0c;…...

tcp/ip协议2实现的插图,数据结构8 (30 - 32章)

(201) 201 三十0 中断优先级补充 (202) 202 三十1 TCP的用户需求 函tcp_usrreq一 (203) 203 三十2 TCP的用户需求 函tcp_usrreq二 (204) 204 三十3 TCP的用户需求 函tcp_usrreq三 (205) 205 三十4 TCP的用户需求 函tcp_usrreq四 (206) 206 三十5 TCP的用户需求 函tcp_usrreq五 …...

挑战杯 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉

文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习多目标跟踪 …...

【数据结构】顺序表的定义及实现方式

文章目录 顺序表的定义顺序表的实现静态分配动态分配动态申请内存空间&#xff0c;动态释放内存空间&#xff08;malloc&#xff0c;free&#xff09; 顺序表的特点总结 顺序表的定义 顺序表也就是用顺序存储的方式实现线性表。 顺序存储。把逻辑上相邻的元素存储在物理位置上…...

R语言数据挖掘-关联规则挖掘(1)

一、分析目的和数据集描述 要分析的数据是美国一区域的保险费支出的历史数据。保险费用数据表的每列分别为年龄、性别、体重指数、孩子数量、是否吸烟、所在区域、保险收费。 本文的主要目的是分析在年龄、性别、体重指数、孩子数量、是否吸烟、所在区域中这些因素中&#xf…...

【ansible】ansible的介绍和安装

前言运维自动化 云计算核心职能 搭建平台架构 日常运营保障 性能效率优化 相关工具 代码管理&#xff08;SCM&#xff09;&#xff1a;GitHub、GitLab、BitBucket、SubVersion 构建工具&#xff1a;maven、Ant、Gradle 自动部署&#xff1a;Capistrano、CodeDeploy 持续…...

MATLAB 实现轴承振动信号模拟:从动力学方程到故障仿真

MATLAB matlab 轴承振动信号模拟 轴承动力学方程 滚动轴承动力学模型&#xff0c;轴承动力学模型&#xff1a;滚动轴承运动学模型&#xff0c;深沟球轴承故障基于Hertz接触理论&#xff0c;采用龙格库塔方法可根据需求仿真轴承正常状态&#xff0c;外圈、内圈以及滚动体的故障…...

计算机毕业设计:Python汽车销量智能可视化与预测系统 Flask框架 可视化 机器学习 AI 大模型 大数据(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝50W&#xff0c;前互联网大厂软件研发、集结硕博英豪成立软件开发工作室&#xff0c;专注于计算机相关专业项目实战6年之久&#xff0c;累计开发项目作品上万套。凭借丰富的经验与专业实力&#xff0c;已帮助成千上万的学生顺利毕业&#xff0c;…...

Midscene + 本地Ollama-Qwen3-VL 部署操作文档(含踩坑指南)

Midscene 本地Ollama-Qwen3-VL 部署操作文档&#xff08;含踩坑指南&#xff09; 一、文档说明 本文档适用于 Windows 环境&#xff08;以暗影精灵11为例&#xff1a;i9-14900HX 32G内存 RTX5070 8G&#xff09;&#xff0c;完整覆盖从环境安装、模型部署、脚本开发到调试…...

双臂机器人piper_ros

1.piper gazebo仿真启动gazebo终端1&#xff1a;cd piper_ros source devel/setup.bash roslaunch piper_gazebo piper_gazebo.launch #有夹爪roslaunch piper_gazebo piper_no_gripper_gazebo.launch #无夹爪启动rviz终端2&#xff1a;cd ~/piper_ros source devel/setup.bash…...

90% 的 SCI 拒稿都栽在时态上!引言 / 文献综述时态黄金规则,一篇讲透

本文已收录于《科研论文写作与投稿全攻略》专栏&#xff0c;持续更新 SCI 论文写作、选刊投稿、审稿人回复全流程硬核干货。 几乎所有科研人都踩过这个坑&#xff1a;论文的研究内容、实验数据都没问题&#xff0c;结果审稿人一句「时态使用不规范&#xff0c;语言不符合学术写…...

基于Matlab的轴承-空心转轴-飞轮不同耦合类型动力学分析

基于Matlab的轴承-空心转轴-飞轮不同耦合类型动力学分析 保持轴承类型不变&#xff0c;变换飞轮和转轴耦合方式&#xff0c;分固有频率的变化趋势 可自行定义轴承、飞轮、转轴参数 程序高度模块化&#xff0c;修改十分方便 程序已调通&#xff0c;可直接运行最近做了一个关于轴…...

革命性终端网站构建工具LiveTerm:5分钟打造个性化网页终端

革命性终端网站构建工具LiveTerm&#xff1a;5分钟打造个性化网页终端 【免费下载链接】LiveTerm &#x1f4bb; Build terminal styled websites in minutes! 项目地址: https://gitcode.com/gh_mirrors/li/LiveTerm LiveTerm是一款革命性的终端网站构建工具&#xff0…...

解放科研效率:用这款开源工具让图表数据提取效率提升80%

解放科研效率&#xff1a;用这款开源工具让图表数据提取效率提升80% 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer 在科研和工程领域&…...

2025届毕业生推荐的六大AI辅助论文平台解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 它可以助力进行文献梳理&#xff0c;帮助研究者快速筛选出有价值的文献资料&#xff0c;人工…...

Cache 维护实战:深入理解 ARMv8-A 架构下的 Invalidate 与 Clean 操作

1. 为什么需要关注Cache维护&#xff1f; 在嵌入式开发中&#xff0c;Cache就像是你办公桌上的文件架。当你频繁访问某些数据时&#xff0c;CPU会把这些数据放在Cache里&#xff0c;就像把常用文件放在手边一样。但问题来了&#xff1a;如果文件内容更新了&#xff08;比如内存…...