从浏览器地址栏输入 URL 到请求返回发生了什么?

在地址栏输入URL后,会发生哪些事 这个过程涉及了计算机网络的多个层面(应用层、传输层、网络层等)和浏览器的核心工作原理,构建 DOM → 构建 CSSOM → 构建渲染树 → 布局 → 绘制 → 合成理解这个流程对于前端性能优化至关重要,因为它帮助我们:最小化关键资源(如压缩、减少CSS/JS阻塞)。减少重排(回流)和重绘的次数(如使用transform代替修改top/left利用合成机制来创建平滑的动画。 阅读详情

从浏览器地址栏输入 URL 到请求返回发生了什么?

这个应该算面试高频的问题了吧。

简略的答案

  1. 用户输入URL地址:用户在浏览器的地址栏中输入一个URL地址(例如:http://www.example.com)。

  2. DNS解析:浏览器首先会检查本地缓存中是否有该URL的IP地址,如果没有,则会向本地DNS服务器发送一个DNS查询请求,以获取URL的IP地址。如果本地DNS服务器也没有该IP地址的缓存,它将向顶级DNS服务器发出请求,并依次向下查找,直到找到URL的IP地址。

  3. 建立TCP连接:浏览器使用URL中的IP地址与服务器建立TCP连接。这是通过三次握手来完成的,即浏览器发送一个连接请求,服务器回复一个确认连接的响应,最后浏览器再次发送一个确认连接的响应。

  4. 发送HTTP请求:一旦TCP连接建立,浏览器就会向服务器发送一个HTTP请求。这个请求包含了用户想要获取的资源的类型(例如HTML页面、图片、视频等)以及其他相关的信息,如请求方法(GET、POST等)、请求头部、请求体等。

  5. 服务器处理请求:服务器接收到浏览器发送的HTTP请求后,会根据请求的内容进行相应的处理。这可能涉及到查询数据库、处理业务逻辑等操作。

  6. 服务器发送HTTP响应:服务器处理完请求后,会生成一个HTTP响应。这个响应包含了请求的资源以及其他相关的信息,如响应状态码、响应头部、响应体等。

  7. 接收HTTP响应:浏览器接收到服务器发送的HTTP响应后,会对响应进行解析。它会检查响应的状态码,以确定请求是否成功,并根据响应的内容类型来决定如何处理。

  8. 渲染页面:如果响应的内容类型是HTML页面,浏览器会解析HTML代码,并根据CSS样式和JavaScript脚本来渲染页面。它会将页面的结构、样式和交互行为展示给用户。

  9. 关闭TCP连接:一旦页面渲染完成,浏览器会关闭与服务器之间的TCP连接。这是通过四次握手来完成的,即浏览器发送一个关闭连接的请求,服务器回复一个确认关闭连接的响应,最后浏览器再次发送一个确认关闭连接的响应。

当用户在浏览器中输入一个URL地址到响应发生,涉及到DNS解析、TCP连接的建立与关闭、HTTP请求的发送与响应的接收等过程。这些过程通过TCP/IP协议进行通信,最终实现了用户请求的资源在浏览器中的展示。

什么是 URL?

URL(Uniform Resource Locator),统一资源定位符,用于定位互联网上资源.俗称网址。

scheme: // host.domain:port / path / filename ? abc = 123 # 456789
  • scheme - 定义因特网服务的类型。常见的协议有 http、https、ftp、file,其中最常见的类型是 http,而 https 则是进行加密的网络传输。
  • host - 定义域主机(http 的默认主机是 www)
  • domain - 定义因特网域名,比如 baidu.com
  • port -定义主机上的端口号(http 的默认端口号是 80)
  • path - 定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)。
  • filename - 定义文档/资源的名称
  • query -即查询参数
  • fragment - 即 # 后的hash值,一般用来定位到某个位置

DNS域名解析

在浏览器输入网址后,首先要经过域名解析,因为浏览器并不能直接通过域名找到对应的服务器,而是要通过 IP 地址。

在这里插入图片描述

TCP建立连接:三次握手

第一次握手,由浏览器发起,告诉服务器我要发送请求了

第二次握手,由服务器发起,告诉浏览器我准备接受了,你赶紧发送吧

第三次握手,由浏览器发送,告诉服务器,我马上就发了,准备接受吧

补充:

为什么需要三次握手,两次不行吗?
其实这是由 TCP 的自身特点 可靠传输 决定的。
客户端和服务端要进行可靠传输,那么就需要确认双方的接收和发送能力。
第一次握手可以确认客服端的 发送能力,
第二次握手,确认了服务端的 发送能力 和 接收能力 ,所以第三次握手才可以确认客户端的接收能力。
不然容易出现 丢包 的现象。

发送HTTP请求

TCP三次握手结束后,开始发送 HTTP 请求报文。

HTTP是一种通讯协议。

基本性质 :无连接、可扩展、无状态。

  • HTTP是无连接的: 无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 一个连接是由传输层来控制的,这从根本上不属于HTTP的范围。HTTP并不需要其底层的传输层协议是面向连接的,只需要它是可靠的,或不丢失消息的(至少返回错误)。

  • HTTP是可扩展的: 在 HTTP/1.0 中出现的 HTTP headers 让协议扩展变得非常容易。只要服务端和客户端就新 headers 达成语义一致,新功能就可以被轻松加入进来。

HTTP是无状态: HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 使用Cookies可以创建有状态的会话。

消息结构

请求报文

HTTP请求报文由:请求行、请求头部、空行和请求数据四个部分组成。

在这里插入图片描述

POST /user HTTP/1.1                       // 请求行 请求方法、请求URL(不包括域名 | 、HTTP协议版本
Host: www.user.com
Content-Type: application/x-www-form-urlencoded
Connection: Keep-Alive
User-agent: Mozilla/5.0.                  // 以上是请求头
(此处必须有一空行 |                         // 空行分割header和请求内容 
name=world                                // 请求体(可选,如get请求时可选)

请求行

请求方法

  1. GET
    传递参数长度受限制,因为传递的参数是直接表示在地址栏中,而特定浏览器和服务器对url的长度是有限制的。
    因此,GET不适合用来传递私密数据,也不适合拿来传递大量数据。
    一般的HTTP请求大多都是GET。

  2. POST
    POST把传递的数据封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,对数据量没有限制,也不会显示在URL中。   表单的提交用的是POST。

  3. HEAD
    HEAD跟GET相似,不过服务端接收到HEAD请求时只返回响应头,不发送响应内容。所以,如果只需要查看某个页面的状态时,用HEAD更高效,因为省去了传输页面内容的时间。

  4. DELETE
    删除某一个资源。

  5. OPTIONS
    用于获取当前URL所支持的方法。若请求成功,会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。

  6. PUT
    把一个资源存放在指定的位置上。
    本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。

  7. TRACE
    回显服务器收到的请求,主要用于测试或诊断。

  8. CONNECT
    CONNECT方法是HTTP/1.1协议预留的,能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接与非加密的HTTP代理服务器的通信。

HTTP协议版本:

  1. HTTP/1.0
    HTTP/1.0支持:GET、POST、HEAD三种HTTP请求方法。

  2. HTTP/1.1
    HTTP/1.1是当前正在使用的版本。该版本默认采用持久连接,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。
    HTTP/1.1新增了:OPTIONS、PUT、DELETE、TRACE、CONNECT五种HTTP请求方法。

请求头

请求头部由关键字/值对组成,每行一对。

典型的请求头有:

  • Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;

  • Connection:连接方式(close 或 keepalive);

  • Accept:客户端可识别的响应内容类型列表;星号 “ * ” 用于按范围将类型分组,用 “ / ” 指示可接受全部类型,用“type/* ”指示可接受 type 类型的所有子类型; 比如
    Accept:text/xml(application/json)表示希望接受到的是xml(json)类型。

  • User-Agent:产生请求的浏览器类型;

  • Accept-Language:客户端可接受的自然语言;

  • Accept-Encoding:客户端可接受的编码压缩格式;

  • Accept-Charset:可接受的应答的字符集;

  • Cookie:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie;

  • Content-Type:发送端发送的实体数据的数据类型。
    比如,Content-Type:text/html(application/json)表示发送的是html类型。

请求体

GET没有请求数据,POST有。

与请求数据相关的最常使用的请求头是 Content-Type 和 Content-Length。

当用户通过Web浏览器向Web服务器发送请求时,Web浏览器会根据用户的具体请求来选择不同的HTTP请求方法,再将相应的URL和HTTP协议版本及相关的标头填入头部行中,若是POST方法,还会将相关的表单数据填入实体主体中,产生一个HTTP请求报文,然后将这个报文发送给Web服务器。

Content-Type 的常见格式:

  • text/html:html格式
  • text/plain:纯文本格式
  • text/xm:POST专用,发送xml数据
  • multipart/form-data:POST专用,以支持向服务器发送二进制数据,以便可以在 POST 请求中实现文件上传等功能。
  • text/css:CSS格式
  • text/javascript:js格式
  • image/gif:gif图片格式
  • image/jpeg:jpg图片格式
  • image/png:png图片格式
  • application/x-www-form-urlencoded:POST专用,普通的表单提交默认是通过这种方式。form表单数据被编码为key/value格式发送到服务器。
  • application/json:POST专用,用来告诉服务端消息主体是序列化后的 JSON 字符串。

响应报文

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

在这里插入图片描述

举例:

在这里插入图片描述

响应行

状态行由三部分组成:HTTP协议版本,响应状态码,状态码的文本描述

格式:HTTP-Version Status-Code Reason-Phrase CRLF

比如:HTTP/1.1 200 OK

状态码

  1. 1xx:指示信息,表示请求已接收,继续处理
  2. 2xx:成功,表示请求已被成功接受,处理。
  3. 3xx:重定向
  4. 4xx:客户端错误
  5. 5xx:服务器端错误,服务器未能实现合法的请求。
响应头
  • Date标头:消息产生的时间
  • Age标头:(从最初创建开始)响应持续时间
  • Server标头: 向客户端标明服务器程序名称和版本
  • ETage标头:不透明验证者
  • Location标头:URL备用的位置
  • Content-Length标头:实体的长度
  • Content-Tyep标头:实体的媒体类型
响应体

服务器返回给客户端的文本信息。

服务器处理请求并返回 HTTP 报文

每台服务器上都会安装处理请求的应用——Web server。常见的web server产品有apache、nginx、IIS、Lighttpd等。

传统的MVC模型:

在这里插入图片描述

浏览器渲染页面

浏览器主要构成

在这里插入图片描述

浏览器主要构成:

  • 用户界面 (User Interface) -包括地址栏、后退/前进按钮、书签目录等,也就是你所看到的除了用来显示你所请求页面的主窗口之外的其他部分

  • 浏览器引擎 (Browser Engine) - 用来查询及操作渲染引擎的接口

  • 渲染引擎 (Rendering Engine) - 用来显示请求的内容,例如,如果请求内容为html,它负责解析html及css,并将解析后的结果显示出来

  • 网络 (Networking) - 用来完成网络调用,例如http请求,它具有平台无关的接口,可以在不同平台上工作

  • JS解释器 (JS Interpreter) - 用来解释执行JS代码

  • UI后端 (UI Backend) -用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口

  • 数据存储 (DB Persistence) -属于持久层,浏览器需要在硬盘中保存类似cookie的各种数据,HTML5定义了web database技术,这是一种轻量级完整的客户端存储技术

多进程的浏览器

浏览器是多进程的,有一个主控进程,以及每一个tab页面都会新开一个进程(某些情况下多个tab会合并进程)。

进程可能包括主控进程,插件进程,GPU,tab页(浏览器内核)等等。

  • Browser进程:浏览器的主进程(负责协调、主控),只有一个
  • 第三方插件进程:每种类型的插件对应一个进程,仅当使用该插件时才创建
  • GPU进程:最多一个,用于3D绘制
  • 浏览器渲染进程(内核):默认每个Tab页面一个进程,互不影响,控制页面渲染,脚本执行,事件处理等(有时候会优化,如多个空白tab会合并成一个进程)

多线程的浏览器内核

每一个tab页面可以看作是浏览器内核进程,然后这个进程是多线程的,它有几大类子线程:

  • GUI线程
  • JS引擎线程
  • 事件触发线程
  • 定时器线程
  • 网络请求线程

内核拿到内容后的渲染步骤

  1. 解析HTML,构建DOM树
    在这里插入图片描述

其中比较关键的几个步骤:

  1. 转换(Conversion):浏览器将获得的HTML内容(Bytes)基于他的编码转换为单个字符
  2. 分词(Tokenizing):浏览器按照HTML规范标准将这些字符转换为不同的标记token。每个token都有自己独特的含义以及规则集
  3. 词法分析(Lexing):分词的结果是得到一堆的token,此时把他们转换为对象,这些对象分别定义他们的属性和规则
  4. 构建(DOM):因为HTML标记定义的就是不同标签之间的关系,这个关系就像是一个树形结构一样。例如:body对象的父节点就是HTML对象,然后段落p对象的父节点就是body对象。
  1. 解析CSS,生成CSS规则树。过程:Bytes → characters → tokens → nodes → CSSOM。

  2. 合并DOM树和CSS规则,生成render树。一般来说,渲染树和DOM树相对应的,但不是严格意义上的一一对应,因为有一些不可见的DOM元素不会插入到渲染树中,
    如head这种不可见的标签或者display: none等。

  3. 布局render树(Layout/reflow),负责各元素尺寸、位置的计算。 布局:通过渲染树中渲染对象的信息,计算出每一个渲染对象的位置和尺寸。主要定位坐标和大小,是否换行,各种position overflow z-index属性。Layout,也称为Reflow,即回流。一般意味着元素的内容、结构、位置或尺寸发生了变化,需要重新计算样式和渲染树。

  4. 绘制render树(paint),绘制页面像素信息。

Repaint,即重绘。
意味着元素发生的改变只是影响了元素的一些外观之类的时候(例如,背景色,边框颜色,文字颜色等),此时页面中元素样式的改变并不影响它在文档流中的位置,只需要应用新样式绘制这个元素就可以了。
回流必将引起重绘,而重绘不一定会引起回流。

关闭TCP连接:四次挥手

当数据传送完毕,需要断开 tcp 连接,此时发起 tcp 四次挥手。

由浏览器发起的,发送给服务器,我请求报文发送完了,你准备关闭吧
由服务器发起的,告诉浏览器,请求报文我接受完了,准备关闭了,你也准备吧
由服务器发起,告诉浏览器,我响应报文发送完了,你准备关闭吧
由浏览器发起,告诉服务器,我响应报文接受完了,我准备关闭了,你也准备吧

YOLO26科研优化:多损失函数(EIoU、SIoU等)融合,让边界框回归精度再上台阶 将原有损失函数替换为我们编写的MultiLoss。例如,在bbox_loss。 阅读详情

相关推荐

【论文阅读】AU检测|《Deep Adaptive Attention for Joint Facial Action Unit Detection and Face Alignment》

摘要 本文旨在从大量没有人工标注的视频中学习用于面部动作单元检测的区分表示。受面部动作是面部肌肉运动这一事实的启发,论文将这些运动描述为不同帧中两幅面部图像之间的转换,并将其用作学习表示的自我监控信号。但是,在不受控制的情况下,这种转换是由面部动作和头部运动引起的。为了消除头部运动的影响,我们提出了一个双圈自动编码器(TCAE),它可以解开面部动作相关运动和头部运动相关运动。具体而言,TCAE被训练成分别将源面部的面部动作和头部姿态改变为目标面部的面部动作和头部姿态。我们的实验验证了TCAE解耦运动的能力。

Celine的博客 4554

在浏览器地址栏输入URL,按下回车后究竟发生了什么?

这是一道面试会经常问的问题,平时虽然很常见的操作,但是探究其底层原理,可能并不是一件简单的事情,于是我从各处搜罗整理下全过程,在这里做分享。 第一步:浏览器输入域名 例如输入:www.youkuaiyun.com/ 第二步:浏览器查找域名的IP地址 浏览器会把输入的域名解析成对应的IP,其过程如下: 1.查找浏览器缓存:因为浏览器一般会缓存DNS记录一段时间,不同浏览器的时间可能不一样,一般2-...

jiao_0509的博客 2万+

RS485两线制接线实战:从差分信号原理到Modbus避坑指南

本文深入解析RS485两线制接线的核心原理与实战步骤。从差分信号的抗干扰机制出发,详细拆解总线规划、屏蔽层接地、终端电阻安装等关键实操细节,并针对Modbus应用中常见的信号反射、极性接反、共模干扰等问题提供系统化的排查指南与解决方案,助力工程师构建稳定可靠的工业通讯网络。

7up55的博客 734

从浏览器地址栏输入url到请求返回发生了什么?

1、进行域名解析、根据DNS进行IP查找 URL 常见的RUL是这样的:http://www.baidu.com,这个域名由三部分组成:协议名、域名、端口号。 除此之外URL还会包含一些路径、查询和其他片段,例如:http://www.baidu.com/search?k=E5S56。 我们最常见的的协议是HTTP协议,除此之外还有加密的HTTPS协议、FTP协议、FILe协议等等。 mailto: 协议指示浏览器打开邮件客户端;ftp:协议指示浏览器处理文件传输。 URL的中间部分为域名或者是IP,之后就

renxing的博客 966

保姆级教程:在RK3568上搞定PR2100K+GC2385双摄(从DTS配置到HAL层补丁)

本文详细介绍了在RK3568平台上调试PR2100K+GC2385双摄系统的完整流程,从DTS配置到HAL层补丁。涵盖硬件连接、媒体控制器拓扑验证、Camera3配置、HAL层特殊补丁及性能优化等关键步骤,帮助开发者快速解决双摄调试中的常见问题,提升嵌入式视觉系统开发效率。

weixin_28724661的博客 195

STM32裸机开发基础:寄存器直接操作详解

寄存器是微控制器内部的特殊存储单元,直接与硬件电路连接,用于控制和监视硬件功能。与普通内存不同,寄存器的每一位(bit)通常都有特定的硬件含义。寄存器就是机器的控制面板上的各种开关和指示灯每个开关控制一个具体功能(如打开LED、启动通信)每个指示灯显示一个具体状态(如数据接收完成、错误发生)// GPIO引脚定义1。

2401_88760782的博客 2187

从url输入到页面到底发生了什么?(详解)

从url输入到页面发生的过程详解。

weixin_47818125的博客 1191

TCN实战:用Python手把手搭建时序预测模型(附完整代码)

本文详细介绍了如何使用Python搭建TCN(Temporal Convolutional Network)时序预测模型,包括数据预处理、模型架构实现、训练调优及预测评估。通过完整的代码示例和实用技巧,帮助开发者快速掌握TCN在时间序列预测中的应用,特别适合处理长期依赖问题。

weixin_29041195的博客 372

从浏览器地址栏输入 url 到请求返回发生了什么(7步)

DNS 解析:将域名解析成 IP 地址TCP 连接:TCP 三次握手发送 HTTP 请求服务器处理请求并返回 HTTP 报文浏览器解析渲染页面断开连接:TCP 四次挥手。

m0_52711377的博客 767

Cesium实战:全球海洋动态水面与自定义区域波浪效果实现

本文详细介绍了在Cesium中实现全球海洋动态水面与自定义区域波浪效果的实战方法。通过解析核心概念Primitive与Geometry,并深入讲解Water材质的关键参数调节,指导开发者快速创建逼真的动态海洋。文章重点阐述了如何利用多边形坐标定义不规则图形区域,实现精准的局部水域波浪效果,并提供了性能优化与视觉提升的实用技巧。

weixin_29256771的博客 501

S速度曲线轨迹规划(普通变频位置闭环控制算法详细介绍+SCL代码)

位置控制用PD控制器,详细内容介绍请查看下面博客文章:PD控制器算法详细解读_RXXW_Dor的博客-优快云博客鉴于积分和微分在工程上的大量应用,这篇博文主要讲解工程上的如何求导f'(x),导数反映的是函数(信号)的变化率,牛顿也是在研究运动的时候提出了微积分的概念,我们知道反映位移变化的快慢程度是速度v(t),反映速度变化快慢程度的物理量是加速度(速度的变化率)。

RXXW_Dor的博客 3886

浏览器工作原理:从 URL 输入到页面展现到底发生了什么?

浏览器的地址栏输入URL并按下回车。 浏览器查找当前URL的DNS缓存记录。 没有缓存记录,DNS解析URL对应的IP。 查看浏览器缓存 没有数据缓存,根据IP建立TCP连接,发送HTTP请求并响应。 渲染页面,构建DOM树。 URL是什么 URL(Uniform Resource Locator),统一资源定位符,用于定位互联网上的资源,实际上就是网站网址。url的格式一...

weixin_39307273的博客 3008

【制作100个unity实战之2】实现一款简单的FPS游戏

你将学到: fps武器脚本 基础瞄准功能 僵尸敌人AI 巡逻范围 攻击间 搜寻半径 追击 枪声吸引周围的僵尸 击中僵直效果

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3551

从浏览器地址栏输入url到请求返回发生了什么

由于经常在面试中会遇到这个问题,所以某天在看到一篇文章后决定也对其中会拓展的一些点进行记录总结。 过程:url解析 —> 根据DNS进行ip查找 —> tcp协议三次握手(建立链接)—> 请求HTML文件(查询缓存)—> 解析HTML渲染页面 详细如下: step1 浏览器进程 • 用户输入内容,进行URL 解析(编码) • 如果是文本,则拼接成默认搜索引擎加关键字的 URL 进行搜索 • 如果是 URL 就进行页面访问请求,并加上协议头(http、https 的区别)

a19802007852的博客 463

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

从浏览器地址栏输入url到请求返回发生了什么?

你一看这种烂掉牙的问题,小case,但996面试大佬由此延展的问题已经远远超越了这个问题本身了,不信你就接着看。 我回答了首先会进行 url 解析,根据 dns 系统进行 ip 查找。 话音刚落,此时一位喜欢修福报的公司的大佬打断了我,说url为啥要解析,dns查询规则是什么?我一听就心里想,不按套路出牌啊,网上一般都没问这两个问题,心里再一想,俗话说,万事开头难,扛过这一波,答出来,就是阳光明媚,万物骚动的春天! 先说为什么url要解析(也就是编码) 我回答大概内容是:因为网络标准规定了U

HY1273383167的博客 291

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

从浏览器地址栏输入url到请求返回发生了什么(深问)

问题: 从浏览器地址栏输入url到请求返回发生了什么 你一看这种烂掉牙的问题,小case,但996面试大佬由此延展的问题已经远远超越了这个问题本身了,不信你就接着看。 我回答了首先会进行 url 解析,根据 dns 系统进行 ip 查找。 话音刚落,此时一位喜欢修福报的公司的大佬打断了我,说url为啥要解析,dns查询规则是什么?我一听就心里想,不按套路出牌啊,网上一般都没问这两个问题,心里再一想,俗话说,万事开头难,扛过这一波,答出来,就是阳光明媚,万物骚动的春天! 先说为什么url要解析(也就是编码)

song854601134的博客 386

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

个人记录:从浏览器地址栏输入url到请求返回发生了什么

个人记录:从浏览器地址栏输入url到请求返回发生了什么

qq_44886882的博客 306

面试必知必会 -- 从浏览器地址栏输入url到请求返回发生了什么

1、进行域名解析、根据DNS进行IP查找 2、通过IP向服务器发起TCP连接(三次握手) 3、向服务器发起请求 4、服务器返回请求内容 5、浏览器解析渲染页面 6、关闭连接(4次挥手) 参考(https://segmentfault.com/a/1190000013522717) ...

zhangchb的博客 193

前端基础知识HTTP系列 - 12(地址栏输入 URL 敲下回车后发生了什么)

本文分析了从输入URL到页面显示的完整流程:1.URL解析阶段判断输入合法性;2.通过DNS查询获取IP地址;3.进行TCP三次握手建立连接;4.浏览器发送HTTP请求(包含请求行、头、主体);5.服务器处理请求并返回响应(状态行、头和正文);6.保持TCP长连接直到页面关闭;7.浏览器解析响应内容,构建DOM树和CSS规则树,合并生成渲染树,进行布局和绘制,最终通过GPU合成显示页面。整个过程涉及网络协议、资源解析和页面渲染等多个技术环节。

m0_67078501的博客 698

从浏览器中输入URL到返回页面的过程,都发生了什么?

递归查询就是如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步查询。查询到IP回来后,又会经过本地域名服务器。

Charte的博客 5522

浏览器输入URL,回车后发生什么?

浏览器输入URL → DNS解析获取IP → TCP三次握手建立连接 → 发送HTTP请求 →服务器处理请求 → 返回HTTP响应 → 浏览器解析HTML/CSS/JS → 构建DOM/CSSOM树 →生成渲染树 → 布局与绘制页面 → 加载剩余资源 → 完成渲染。

2401_89241768的博客 1108

【前端小记】-- 浏览器--3.在地址栏里输入一个 URL,到这个页面呈现出来,中间会发生什么

简单理解这个过程: 用户输入url—>浏览器解析url—>浏览器发送请求—>服务端返回数据—>浏览器渲染页面那么是它是怎么找到相应服务器的呢?找到之后又是怎么把我们需要的数据返回给我们,并呈现在页面上的呢?用户输入url后,浏览器会先去看缓存(浏览器缓存–>系统缓存–>路有缓存)中有没有这个url,如果有会直接在屏幕中显示url对应的页面内容 1、浏览器缓存(可见上篇浏览器的缓存机制):如果在之前对该url指定的主机进行过访问,浏览器会缓存该主机的IP一段时间(该时间浏览器指定),所以第一步会去找浏览器缓存

am_xiao_hui的博客 781

浏览器地址栏输入 URL 敲下回车后发生了什么?

详细分析: 1、url解析: 首先判断你输入的是一个合法的URL 还是一个待搜索的关键词,并且根据你输入的内容进行对应操作,从右向左解析 2、DNS查询 最终,获取到了域名对应的目标服务器IP地址 TCP连接 在确定目标服务器服务器的IP地址后,则经历三次握手建立TCP连接,流程如下: 发送 http 请求 当建立tcp连接之后,就可以在这基础上进行通信,浏览器发送 http 请求到目标服务器 请求的内容包括: 请求行 请求头 请求主体 响应请求 当服务器接收到浏览器的请求之后,就会进行逻辑操作,.

u013994400的博客 146

从浏览请地址栏输入URL到出现网页,其中发生了什么

这基本是前端面试中遇到的必问的面试题 1、输入url后,首先需要找到这个url域名的服务器ip,为了寻找这个ip,浏览器首先会寻找缓存,查看缓存中是否有记录,缓存的查找记录为:浏览器缓存-》系统缓存-》路由器缓存,缓存中没有则查找系统的hosts文件中是否有记录,如果没有则查询DNS服务器。 2、得到服务器的ip地址后,浏览器根据这个ip以及相应的端口号,构造一个http请求,这个请求报文会包括这次请求的信息,主要是请求方法,请求说明和请求附带的数据,并将这个http请求封装在一个tcp包中,这个tcp

weixin_41227874的博客 238

浏览器地址栏输入url,发生了什么?--小小笔记

浏览器地址栏输入url,发生了什么 第一个版本 1.DNS解析url的IP地址 2.发送HTTP请求 3.TCP分割HTTP请求报文进行可靠的传输 4.IP协议对请求报文进行中转和传送 5.服务端TCP接受并重组报文 6.服务端HTTP处理请求 7.返回资源 第二个版本 1.浏览器向DNS服务器查找输入URL对应的IP地址 2.DNS服务器返回网站对应的IP地址 3.浏览器根据IP地址,在80端口...

weixin_44675782的博客 233

面试官问我:从地址栏输入URL到显示页面都发生了什么?(建议收藏)_从输入地址到页面显示发生了什么web面试

从地址栏输入URL到显示页面都发生了什么?这是一道面试经常会考的面试题。那么下面我们就来探讨一下从你输入URL后到响应,都经历了哪些过程。

2401_84281698的博客 535
上一篇: 华为机试真题练习汇总(81~90)
下一篇: 快速排序(C++ Version)
UestcXiye
博客等级 码龄8年 9028粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值