浏览器输入URL到响应页面的全过程

面试突击:输入URL之后会执行什么流程? 在浏览器中输入 URL 之后,它会执行以下几个流程:执行 DNS 域名解析;封装 HTTP 请求数据包;封装 TCP 请求数据包;建立 TCP 连接(3 次握手);参数从客户端传递到服务器端;服务器端得到客户端参数之后,进行相应的业务处理,再将结果封装成 HTTP 包,返回给客户端;服务器端和客户端的交互完成,断开 TCP 连接(4 次挥手);浏览器通过自身执行引擎,渲染并展示最终结果给用户。... 阅读详情

浏览器输入URL到响应页面的全过程
B/S网络架构从前端到后端都得到了简化,都基于统一的应用层协议HTTP来交互数据,HTTP协议采用无状态的短链接的通信方式,通常情况下,一次请求就完成了一次数据交互,通常也对应一个业务逻辑,然后这次通信连接就断开了。采用这种方式是为了能够同时服务更多的用户,因为当前互联网应用每天都会处理上亿的用户请求,不可能每个用户访问一次后就一直保持住这个连接。

①输入URL:www.google.com;

②DNS域名解析:域名与IP映射(发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址);

③建立TCP连接: 客户端浏览器与WEB服务器建立TCP(传输控制协议)连接,三次握手;

④发送Http Request:请求信息(客户端浏览器向对应IP地址的WEB服务器发送相应的HTTP或HTTPS请求);

⑤WEB服务器:Nginx反向代理(客户端本来可以直接通过HTTP协议访问某网站应用服务器,网站管理员可以在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器);

⑥应用服务器:Server处理请求(数据库等交互…);

⑦用户浏览器:渲染响应页面(客户端浏览器下载数据,解析HTML源文件,解析的过程中实现对页面的排版,解析完成后,在浏览器中显示基础的页面);

⑧关闭TCP连接:响应完成(非持久连接);

一句话概括:浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP,然后通过IP地址找到IP对应的服务器后,要求建立TCP连接,等浏览器发送完HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包,服务器调用自身服务,返回HTTP Response(响应)包;客户端收到来自服务器的响应后开始渲染这个Response包里的主体(body),等收到全部的内容随后断开与该服务器之间的TCP连接;

一些具体详细的补充:

浏览器是怎么查找域名对应的IP地址的?

  1. 请求一旦发起,浏览器首先要做的事情就是解析这个域名,一般来说,浏览器会首先查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。
  2. 如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请求到本地DNS服务器 。本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。
  3. 查询你输入的网址的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果,此过程是递归的方式进行查询。如果没有,本地DNS服务器还要向DNS根服务器进行查询。
  4. 根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。
  5. 本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。
  6. 最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

浏览器向 web 服务器发送一个 HTTP 请求的过程大概是?

拿到域名对应的IP地址之后,浏览器会以一个随机端口(1024<端口<65535)向服务器的WEB程序(常用的有httpd,nginx等)80端口发起TCP的连接请求。这个连接请求到达服务器端后(这中间通过各种路由设备,局域网内除外),进入到网卡,然后是进入到内核的TCP/IP协议栈(用于识别该连接请求,解封包,一层一层的剥开),还有可能要经过Netfilter防火墙(属于内核的模块)的过滤,最终到达WEB程序,最终建立了TCP/IP的连接。
建立了TCP连接之后,发起一个http请求。一个典型的 http request header 一般需要包括请求的方法,例如 GET 或者 POST 等,不常用的还有 PUT 和 DELETE 、HEAD、OPTION以及 TRACE 方法,一般的浏览器只能发起 GET 或者 POST 请求。

客户端向服务器发起http请求的时候,会有一些请求信息,请求信息包含三个部分:
-------请求方法URI协议/版本
-------请求头(Request Header)
-------请求正文:

GET/sample.php
HTTP/1.1 Accept:image/gif.image/jpeg,/
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate

username=jinqiao&password=1234
注意:最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

服务器是如何处理请求的呢?

后端从在固定的端口接收到TCP报文开始,它会对TCP连接进行处理,对HTTP协议进行解析,并按照报文格式进一步封装成HTTP Request对象,供上层使用。
一些大一点的网站会将你的请求到反向代理服务器中,因为当网站访问量非常大,网站越来越慢,一台服务器已经不够用了。于是将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。此时,客户端不是直接通过HTTP协议访问某网站应用服务器,而是先请求到Nginx,Nginx再请求应用服务器,然后将结果返回给客户端,这里Nginx的作用是反向代理服务器。同时也带来了一个好处,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。
通过Nginx的反向代理,我们到达了web服务器,服务端脚本处理我们的请求,访问我们的数据库,获取需要获取的内容。

服务器返回一个 HTTP 响应大概包括哪些?

HTTP响应与HTTP请求相似,HTTP响应也由3个部分构成,分别是:
----- 状态行
----- 响应头(Response Header)
----- 响应正文

HTTP/1.1 200 OK 
Date: Sat, 31 Dec 2005 23:59:59 GMT 
Content-Type: text/html;charset=ISO-8859-1 Content-Length: 122 
<html> 
<head> 
<title>http</title> 
</head> 
<body> 
<!-- body goes here --> 
</body> 
</html>
浏览器输入URL到服务器响应的过程 1.浏览器输入url 2.DNS系统完成域名解析IP得到地址;先查浏览器缓存,没有再查寻系统缓存,即本地host文件,再没有向ISP的DNS服务器请求解析域名得到IP地址的映射关系 3.浏览器和服务器之间建立TCP连接,通过socket发送HTTP请求;发送端从应用层往链路层,接收端从链路层往应用层。 4.服务器响应请求,处理,返回数据;事实上,在进入服务器之前,可能还会先经过负责负载均衡的... 阅读详情

相关推荐

Web安全测试(二):HTTP状态码、响应和url详解

HTTP状态码的作用是:Web服务器用来告诉客户端,发生了什么事。 HTTP状态码被分为五大类, 目前我们使用的HTTP协议版本是1.1, 支持以下的状态码。

ml202187的博客 1521

02、HTTP基本原理之URL、请求和响应

文章目录前言一、URI和URL二、请求(Request)1、请求方法(Request Method)*a、常见的请求方法:GET和 POST**b、GET和 POST请求方法有如下区别:**c、请求方法和描述*2、请求的网址(Request URL)3、请求头(Request Header)4、请求体(Request Body)5、Content-Type和POST提交数据方式的关系三、响应(Response)1、响应状态码(Response Status Code)2、响应头(Response Head.

weixin_44749822的博客 3164

银河麒麟v10(x86_64)升级openssh实操成功

本文详细介绍了在银河麒麟V10系统上将OpenSSH从8.2p1升级至9.9p2版本的全过程。主要内容包括:系统环境确认、安装telnet备用连接、备份配置、卸载旧版本、安装新版本、服务配置与验证等关键步骤。特别强调了安全注意事项,如必须安装telnet作为备用连接、重要配置备份等。升级后提供了安全加固建议,包括修改SSH端口、禁用root登录等。文章还包含详细的故障排查方法和恢复方案,确保升级过程安全可靠。通过本教程,用户可以顺利完成OpenSSH版本升级,提升系统安全性。

淘淘小窝 1090

浏览器输入url后执行的整个过程(详细解析)

详细介绍浏览器输入url后执行的整个过程

失眠时间的博客 8668

手把手教你用ET-BERT预训练模型搞定加密流量分类(附完整代码)

本文详细介绍了如何使用ET-BERT预训练模型实现加密流量分类,包括环境配置、数据预处理、模型微调及优化策略。通过实战代码示例,帮助开发者快速掌握这一技术,提升网络安全领域的加密流量分析能力。

weixin_29166013的博客 494

STM32F407编译下载全流程:从CubeMX到HEX烧录

嵌入式固件开发中,编译与下载是连接代码与硬件的关键闭环。其本质是将高级语言描述的逻辑,经交叉编译(ARM GCC)、链接(ELF生成)、格式转换(HEX/BIN)后,通过调试接口(SWD/UART)写入MCU Flash存储器的过程。该流程涉及工具链协同、二进制格式特性(如Intel HEX的地址映射与无元数据设计)、启动模式(System Memory Bootloader)、Flash选项字节(RDP/WRP)等底层机制,直接决定固件可运行性与安全性。典型应用场景包括STM32F407开发板调试、量产固

weixin_28840811的博客 260

面试环节:在浏览器输入 URL 回车之后发生了什么?(超详细版)

点击蓝色“五分钟学算法”关注我哟加个“星标”,天天中午 12:15,一起学算法作者 | 4Ark来源 |https://4ark.me/post/b6c7c0a2.ht...

程序员吴师兄的博客 1万+

YOLOv13有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

《YOLOv13改进专栏重磅更新》推出500+创新改进方案,涵盖卷积、主干网络、注意力机制、检测头等核心模块优化。专栏提供完整项目代码及答疑服务,包含YOLOv13网络结构解析、环境配置、模型训练全流程指导。内容分为八大模块:卷积优化、注意力机制、细节涨点、主干网络改进、特征融合、检测头优化、小目标检测及Mamba联合改进等,支持多种创新点组合应用,助力科研论文发表。现开放限时订阅,提供试读章节和详细技术解析。

Ai缝合怪、助力小伙伴高效发论文 3385

从输入URL到页面加载完成都发生了什么

1、浏览器的地址栏输入URL并按下回车。 1.)名词解释 举个栗子:https://www.baidu.com/send 这个域名由三部分组成:协议名、域名、端口号,这里端口是默认所以隐藏,后边还可以加一些参数或者路径也可以不加, 协议分https,http,FTP协议、FILe协议,http默认端口号80,https默认端口是443,默认端口都会自动隐藏了,所以才会不显示; ...

Army-海军的博客 1万+

【华为OD机试真题】45、 分糖果 | 机试真题+思路参考+代码解析(C++、Java、Py、JS)

### 🎃题目描述 >小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。 >  当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。 >  小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。

正在更新最新华为OD机试2025B卷,提供OJ在线刷题 1290

基于STM32设计的智能家居控制系统(华为云)_363

本项目设计并实现了一种基于STM32的智能家居控制系统,融合了语音识别、远程控制、环境监测与安全报警等功能。系统以STM32F103C8T6单片机为核心控制器,集成ESP8266 Wi-Fi模块实现与华为云IOT物联网平台的数据交互,采用MQTT协议进行通信。用户可通过语音识别模块控制风扇、空调、窗帘、卧室灯、客厅灯和电视等家电的开关操作,同时也可通过Android手机APP或Windows电脑上位机进行远程控制。系统还具备温湿度、光照强度、烟雾浓度和火焰检测功能,当检测到异常情况时,自动触发蜂鸣器报警并向

882

大厂常问:输入URL到显示页面的全过程(敲详细)

你到现在都不知道从浏览器地址栏输入URL到显示页面的发生了什么嘛?我来教你,还有谁如果再说前端简单,你就拿这个面试题怼他!

漫漫前端路,进一寸有进一寸的欢喜 3万+

uniapp(全端兼容) - 超详细接入百度统计功能,给uniapp全平台各端项目引入添加百度统计的插件统计流量详细的步骤教程(提供最新的百度统计源代码,详细的示例代码复制粘贴即可快速搞定!)

uniapp h5 app 使用加入接入百度统计,uniapp百度统计,uniapp详细引入百度统计的教程,uniapp接入百度统计,uniapp如何实现加入百度的统计代码,uniapp怎么植入百度统计详细教程,uniapp如何对接百度统计,uniapp百度统计不生效怎么办,uniapp使用百度统计不生效常见问题,uniapp引入百度统计后没有生效,uniapp h5网页接入百度统计代码后没有统计无效,uniapp最新接入使用百度统计功能,uniapp增加百度统计代码,uniapp app如何接入百度统计,

✅ 精选推荐文章 1万+

【浏览器系列】从输入网址(URL)到页面加载的全过程

1.首先在浏览器中输入URL 2.缓存解析: 3.DNS域名解析: 4.建立TCP连接: 5.发起HTTP请求: 6.服务器响应请求并返回结果: 7.关闭TCP连接: 8.浏览器渲染: 9.JS引擎解析过程:

pakerder的博客 5435

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

从输入网址(URL)到页面加载的全过程

1. 当浏览器输入一个url后,首先要在客户端上进行url解析, 2. 缓存检查 3. 在DNS服务器上进行DNS解析, 4. 建立tcp连接通道后浏览器向服务器发送http请求, 5. 服务器把结果返回给浏览器,返回要关闭tcp连接通道, 6. 然后在浏览器上把获取的结果进行渲染。 7. 浏览器内核拿到相应内容后,渲染开始, 8. 解析html,css分别建立DOM Tree和CSSOM Tree, 9. 随后这两个合并成Render Tree。 10. 然后布局Render Tree

weixin_42367460的博客 3295

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

简单谈谈浏览器从输入URL到页面渲染的过程

简单谈谈浏览器从输入URL到页面渲染的过程 这也是一个经典的面试题,无论前端还是后端都可能都会遇到,知识点相对来说也比较多,考察得比较全面的。最近也看了很多浏览器相关的文章,结合起来,在这里简单梳理总结下。同时,感谢浏览器这个伟大的发明。 知识点罗列 下面是我简单粗糙画的一张流程图: 过程分为下方几个流程: DNS解析:把域名解析成IP地址 TCP 建立连接:TCP三次握手 发送HTTP请...

weixin_30693683的博客 1827

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

从输入URL到浏览器显示页面,中间都经历了哪些过程?

从输入URL到浏览器显示页面,中间大概分为两个过程: 1.网络通信 2.页面渲染 站在网络原理的角度看,网络通信差不多经历了以下过程: 1. 在浏览器中输入url: 用户输入url,例如http://www.baidu.com。其中http为协议www.baidu.com为网络地址,及指出需要的资源在哪台计算机上。一般网络地址可以为域名或IP地址,此处为域名。使用域名是为了方便记忆,但是为了让计算机理解这个地址还需要把它解析为IP地址。 2.应用层DNS解析域名: 客户端先检查本地是否有对应的IP地址,若找

weixin_45755718的博客 4109

输入URL到页面展示发生了什么

详解输入URL到浏览器页面展示过程都发生了什么 一、简单的过程总体概览 ①DNS域名解析 ②建立TCP连接 ③发送HTTP请求 ④服务器处理并返回HTTP报文 ⑤浏览器解析渲染页面 ⑥关闭TCP连接 二、详细过程解析 1、DNS域名解析 ​ 在浏览器输入熟悉的网址 比如www.baidu.com,这个叫做网址,并不是百度真实的地址,互联网中每一台机器都有唯一标识的ip地址。网址和ip地址的转换,就是DNS解析。 ​ 网址简单容易记住,但是ip地址很复杂,所以需要一个地址簿记录哪个ip对应哪一个网址,这个地址

weixin_45709829的博客 3691

从输入URL到页面加载发生了什么

用户输入URL到页面加载发生了什么整个过程涉及包含:一、输入URL浏览器进行查找二、DNS解析为IP三、根据IP建立TCP连接(三次握手)HTTP请求处理请求返回HTTP响应页面渲染关闭连接(四次挥手) 前言:当用户打开浏览器,在地址栏输入完整的url到页面最终结构与数据呈现的过程中,到底发生了什么?这是一个非常经典的前端面试题。涉及到部分资料来源于网络,如有侵权,联系必删! 整个过程涉及包含: 一、输入URL浏览器进行查找 输入URL 我们常见的URL地址:http://www.baidu.com。UR

herman_student的博客 2709

浏览器从输入URL到渲染完页面的整个过程

一、获取IP地址 IP地址对应一台真实的物理机器,而且IP地址就像人的身份证是唯一的,用户请求服务器,只需要输入为该服务器分配的唯一的IP地址即可。但由于IP地址不便于记忆,因而使用较为语义化的域名来替代IP地址,而且一个域名可能对应了对个IP地址,比如用户输入www.baidu.com,该域名下对应了多个IP,域名解析服务器会根据一定的规则分配给用户其中一个IP地址。 首先会在浏览器的缓存中查找,是否缓存了URL,如果有,就直接向该URL对应的服务器发送请求;如果没有则进行下一步; 在本地的hosts文

猫老板的豆 4243

在浏览器地址栏输入url到按下回车发生了什么?

作者 |peach来源 | https://juejin.cn/post/6896844956284125191这个问题是一个非常普遍且经典的问题,一个合格的web程序员必须要搞懂的问...

web前端开发 2603

在浏览器输入 URL 回车之后发生了什么?

在浏览器输入 URL 回车之后发生了什么? 大致流程 URL 解析 DNS 查询 TCP 连接 处理请求 接受响应 渲染页面 地址解析: 首先判断你输入的是一个合法的 URL 还是一个待搜索的关键词,并且根据你输入的内容进行自动完成、字符编码等操作。 检查缓存 二、DNS 查询 基本步骤 1. 浏览器缓存 浏览器会先检查是否在缓存中,没有则调用系统库函...

wwxy1995的博客 352

浏览器工作原理(5)-从输入URL到页面展示,中间经历了什么

从在地址栏输入URL按下enter键,到页面展示,这中间都发生了什么 这是一道常考的面试题,涉及到网络、操作系统、浏览器渲染等问题,看一下李兵老师的一副总结图片,比较全面的总结了其中的过程 由上图可知,整个发生过程,涉及到了多个进程共同工作,简单看一下各个进程的工作职责: 浏览器进程:用户交互,子进程管理,文件存储 网络进程:为浏览器进程和渲染进程提供网络下载服务 渲染进程:把网络进程获取到的资源渲染成可以交互的前端页面 一起看一下各个步骤都如何工作的: 浏览器进程收到URL请求,首先进行信息处理.

ES6之super关键字详解 1017
上一篇: Unknown system variable ‘transaction_isolation
下一篇: 堆和栈的区别
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值