图解从输入网址到显示页面中间发生了什么(一)

【计网】从输入 URL 到显示页面发生了什么? 一共分为以下几个过程 输入网址, 浏览器分析超链指向页面的 URL 浏览器向 DNS 请求解析出域名的 IP 地址  浏览器向服务器发送一个 HTTP 请求(建立 TCP 连接) 服务器的永久重定向响应 服务器处理请求 服务器返回一个 HTTP 响应(TCP 连接释放) 浏览器发送请求获取嵌入在 HTML 中的资源显示 HTML 1.输入地址用户输入url,例如http://www.90sec.co 阅读详情

概述

从我们在地址栏中输入网址,如www.findme.wang,到页面显示中间发生了哪些过程呢?查询缓存、域名解析、三次握手、网络协议、新鲜度检查、HTTP协议、GET请求、DOM树、渲染树等一连串的关键字浮现在脑海中,于是简要的绘制了一副图如下:
这里写图片描述

相关说明

浏览器如何检查缓存是否存在

浏览器会依据请求的相关信息http header,经过一系列的计算作为Hash的key值,查询缓冲是否存在。

缓存控制细节

关于缓存,我看有的地方将其分类为强缓存和协商缓存,其实协商缓存就是对过期的缓冲一种处理方式,感觉没必要分类。

怎样判断缓存是否过期

浏览器在查找到缓存后,会检查cache-control 和expires来判断缓存是否过期,如下图。浏览器通过比较该值就能判断缓存是否过期。
这里写图片描述
两则区别如下:
Expires是老版本的HTTP协议中规定的,返回的是一个绝对时间,在服务器的时间与客户端的时间相差较大时,缓存管理容易出问题,当客户端修改本地时间,就会影响缓存命中的结果。于是在http1.1的时候,提出了Cache-Control,这是一个相对时间,在配置缓存的时候,以秒为单位,用数值表示,如:Cache-Control:max-age=1296000,其参数比较多,可以参考如下:
浏览器缓存机制剖析
当这两个属性Expires和Cache-Control同时存在时,Cache-Control优先级高于Expires。

缓存的新鲜度检查

当浏览器首次向服务器发送请求的时候,服务器响应的http头部会携带,Last-Modified和ETag。
这里写图片描述
当缓存过期的时候,浏览器就会将该两个参数的值以If-Modified-Since、If-None-Match形式写在HTTP头中,发服务器请求资源。其中If-Modified-Since是与Last-Modified相互对应,If-None-Match与ETag相互对应,。为了演示,我们通过下图方式复制浏览器请求
这里写图片描述
请求内容如下,有状态码304,可以看出,这是在检查缓存的新鲜度。复制的请求头,删除cookie后的信息如下:

GET /Public/Home/css/blog.css HTTP/1.1
Host: www.findme.wang
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Accept: text/css,*/*;q=0.1
Referer: http://www.findme.wang/Blog/detail/id/181.html
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
If-None-Match: "b410bb-cdf-54d69e0160e80"
If-Modified-Since: Tue, 18 Apr 2017 05:06:50 GMT

然后通过命令提示符中telnet模拟请求,如下图:
这里写图片描述
从上图,可以看出,当服务器匹配到相应的资源,且发行资源并没有修改的时候,并不会返回资源具体的信息,而是返回304,即资源并没有修改。

后期补充

由于时间限制以及自己对下面一块了解也不是很透彻,需要查阅更多的资源以下内容,将会在后期补充上。
1.客户端与服务器的连接与断开连接
2.浏览器的渲染过程(同时介绍一下rectJS相关内容)
3.mac地址查询

—-有不对的地方,请各位不吝赐教—-

从浏览器输入网址(URL),到最终展示页面,都发生了什么? 从(如下图)到你按下回车,再到最后出现这个网页界面(如下图)中间到底发生了什么?接下来就带你一步步进行解析~ 阅读详情

相关推荐

MCP4728 电路及stm32F103程序移植

写在前面 通过优快云查到一些MCP4728 的程序,结合程序及datasheet对于驱动的描述,理清了思路 感谢开路者! MCP4728的电路比较简单,见下文描述 应用电路 datasheet: 实际测试电路: SCL接stm32的PB10,SDA接PB11 RDY/BSY引脚和LDCA引脚,悬空 解释见截图: MCP4728地址 选择任意输出通道写入DAC输入寄存器 应用程序 int mcp4728_write_all_channel(float vol1, float vol2, fl

u013074298的专栏 5425

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

用户在浏览器中输入一个 url 或直接点开一个 url 后,就可以看到网页内容了。虽然可以直接显示,但在这背后却经过了非常复杂的操作,主要有五大过程:

forever__fish的博客 1928

Hermes-Agent-完整指南

Hermes Agent 是由 **Nous Research** 开发的一款**自我改进型 AI Agent**,具有内置的学习闭环系统。它的核心理念是"一个与你共同成长的 Agent"。- 能够从经验中创建技能(Skill-Learning Automated),在使用过程中自我改进, 跨会话持久记忆, 深度用户建模

liu_zhiyi的博客 3033

输入一个网址到网页过程中都发生了什么?

输入一个网址到网页过程中都发生了什么?

weixin_45639224的博客 4097

Omnibox 2.11 NAS部署指南:家庭影音中枢的轻量化落地实践

家庭影音平台本质是本地化内容调度中枢,其核心在于聚合NAS媒体库、统一管理直播/IPTV/音频/视频等多源内容,并通过智能元数据匹配与硬解加速实现零门槛播放体验。技术原理上依赖Java轻量Web容器(Jetty)、SQLite嵌入式数据库双缓存架构,以及宿主机FFmpeg动态链接与HTTP/2直播代理治理能力。该方案显著降低4K播放卡顿、EPG加载失败、海报缺失等高频问题,适用于群晖、飞牛、绿联等主流NAS设备,尤其适配ARM64芯片与Realtek网卡等国产硬件生态。本文聚焦Omnibox 2.11在真实

weixin_30846347的博客 471

Android/AutoMotive 多用户文件操作与权限管理

本文深入探讨了Android/Automotive多用户系统的文件操作与权限管理机制。文章阐述了多用户隔离与共享的核心原理,重点介绍了如何使用adb指令精准管理不同用户的应用与数据,并提供了在Android Automotive车载场景下实现安全跨用户数据共享与权限控制的最佳实践。

weixin_29214691的博客 162

从输入URL到页面展示这中间发生了什么

仅仅打开了1个页面,为什么有4个进程? 因为打开1个页面至少需要1个网络进程、1个浏览器进程、1个GPU进程以及1个渲染进程,共4个进程是一个程序运行的实例,操作系统会为进程创建独立的内存,用来存放运行所需要的代码和数据 线程是进程的组成部分,每个进程可以有多个线程其中至少一个主线程,这些线程由所属的进程进行启动和管理。进程和线程之间关系的特点:浏览器接收到输入的URL后,先对URL解析,把我们请求需要的协议、域名、端口、路径这些信息解析提取出来。 URL结构:,判断用户输入的是 还是?网络进程会查找本地

好好学习天天向上 3059

张量/数组存储方式与向量化展开/展平、view、reshape、permute对比

对于一个Tensor来说,我们可以认为它有两种存储方式。

欢迎关注,共同进步! 3434

从输入URL到网页显示,期间发生了什么(详解)

浏览器通过调用Socket库,来委托协议栈工作,协议栈的上半部分有两块协议,分别是收发数据的TCP和UDP,这两个协议会接受应用层的委托执行收发数据的操作。

aoeaoao的博客 2408

Astah 9.0升级步骤(Widnows/Mac OS)

Astah Professional是一款全新的轻量级UML建模工具。软件集思维导图和UML建模于一体,采用100%纯JAVA构建, 兼容性强,不仅能够实现分布式建模、项目合并,还能够实现和其它建模工具的交互。

tequiero777的博客 2824

Redhawk:什么是timing window?

STA timing file中timing window的作用和计算方式

m0_61544122的博客 1万+

八千字长文详细图解:从输入URL到浏览器显示页面到底发生了什么?

我们每天上网都使用http协议,我们每天编程也使用http协议,Spring Cloud的微服务使用Http template实现RPC调用,到处都是HTTP这四个字…… 作为一名天天接触HTTP协议的程序员,不管是前端还是后端,怎能不了解HTTP协议呢?就连校招面试,HTTP协议也作为考官必点的一道开胃菜进行提问! 不管是面试还是开发,学好http协议都是必要的~ 今天我们就来好好深入钻研,死磕HTTP协议!现在让我们泡杯咖啡,好好梳理一下HTTP协议~

浩然的博客 2382

如何为 Claude Code 配置代理与网络环境

那么大概率不是软件问题,而是。因为 Claude Code 是运行在终端里的,不是浏览器。

sg_knight的专栏 3480

当输入网址后,到网页显示,期间发生了什么

当输入网址后,到网页显示,期间发生了什么,你想知道数据包在中间经过了什么吗,仔细看看,对你应该会有帮助,干货建议反复阅读

小金的博客 887

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

阅读路线 1.输入地址 —> 2.浏览器查找域名的IP地址 —> 3.浏览器想web服务器发送一个http请求 —> 4.服务器的永久重定向响应 —> 5.浏览器跟踪重定向地址 —> 6.服务器处理请求 —> 7.服务器返回一个http响应 —> 8.浏览器显示HTML —> 9.浏览器发送请求获取嵌在HTML...

yuzhangsir 759

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

当打开 优快云,到网页显示,其间发生了什么?

前言 想必不少小伙伴面试过程中,会遇到「当键入网址后,到网页显示,其间发生了什么」的面试题。 还别说,这真是挺常问的这题,前几天坐在我旁边的主管电话面试应聘者的时候,也问了这个问题。 这次,小林我带大家一起探究下,一个数据包在网络中的心路历程。 每个阶段都有数据包的「心路历程」,我们一起看看它说了什么? 正文 接下来以下图较简单的网络拓扑模型作为例子,探究探究其间发生了什么? 01 孤单小弟 —— HTTP 浏览器做的第一步工作是解析 URL 首先浏览器做的第一步工作就是要对 URL 进行解析,..

小林coding 6361

从输入一个URL到页面展示这期间发生了什么?

从输入一个URL到页面展示这期间发生了什么?chrome进程从用户输入URL到页面显示发生了什么? chrome进程 我们先了解一下多进程浏览器打开页面后都有哪些进程?从图中可以看出,现在的chrome浏览器包括:一个浏览器主进程、多个渲染进程、多个插件进程、网络进程、1个GPU进程。 1.浏览器进程:主要负责界面显示、用户交互、子进程管理、提供存储功能等功能 2.渲染进程:将HTML、CSS、Javascript转换为用户可以交互的界面,默认情况下,chrome会为每个Tab标签提供一个渲染进程,渲染进程

The_upside_of_down的博客 218

从输入网址到显示页面:浏览器工作原理拆解分析

本文深入的研究了浏览器从输入网址到显示页面之间发生的事情。本文内容面向对网络应用相关技术,如浏览器、HTTP、HTML、网络服务器、需求处理等方面有一定了解的软件开发人员。  浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。 路由器缓

林学森的技术专栏 1495

40张图彻底揭秘:输入网址究竟发生了什么?

1 源头------网址网址即平时所说的URL。就是经常使用的以“Http://”开头的那一串东东,其实常用的还有很多,比如 "FTP" , "FILE"等,我们所访问的目标网站不同,网址开头的写法也就不同,下面列出常见的几种URL。从上图可知,URL 中可以包含服务器的域名,文件的路径,收件人邮件地址,用户名,密码等信息。总之URL想表达的是:访问时所使用的协议。"HTTP" , "FTP" ,...

十指波课堂的博客 495

asp.net 的那点事(1、当用户在浏览器地址栏输入了网址后,发生了什么?)

从今天开始我将抽出空闲时间复习asp.net相关知识。此篇博文只是为了记录学习当中的知识点和感觉到比较重要的知识点。 本人才疏学浅,如有遗漏或者错误希望广大博友尽情拍砖。我会在后续中进行更正。 这个问题估计大家可能都在面试的时候遇见这样的问题。那么到底是什么呢?那么我们来看下图解: 一、那么在用户输入了地址后,浏览器就将请求报文发送给百度的服务器了。我们可以看到请求报文里面包括了如下信...

lion_1874的博客 306

《图解网络》学习-网络基础篇-键入网址到网页显示,期间发生了什么?

键入网址到网页显示,期间发生了什么?

muziyun1992的博客 331

字节一面:在浏览器地址栏输入一个 URL 后回车,背后发生了什么?

在浏览器的地址栏输入一个 URL 后回车,背后到底发生了什么才能使得一个界面完美的展现在我们眼前?今天讲解的这道题目,由于其涉及大量网络协议,可以非常直观的看出诸位小伙伴对计算机网络体系的整体把握程度,所以自然成为了各大公司的面试常客。在浏览中输入 URL 并且获取响应的过程,其实就是浏览器和该 URL 对应的服务器的网络通信过程。比如我们输入,那么会返回一个百度搜索的界面,这其实就是浏览器和百度服务器之间的网络通信过程。浏览器就是客户端,用于发出请求,而百度的服务器就是服务端,用于接收并响应请求。

架构师尼恩 8217

当你在浏览器地址栏输入URL按下回车之后发生了什么???

文章目录输入URL后Web页面是如何呈现的?一、准备:DHCP、UDP、IP和以太网二、仍在准备:DNS和ARP三、仍在准备:域内路由选择到DNS服务器四、Web客户—服务器交互:TCP和HTTP 学习了《计算机网络——自顶向下》总结一下第六章,也就是学完了应用层、运输层、网络层、链路层后的一个案例:Web页面的历程 首先,对于学习计算机网络,目前看了《图解HTTP》、《计算机网络——自顶向下》两本书,准备记录一些笔记,对于前一本《图解HTTP》里面有许多插图,而且比较简单好理解,基本只涉及了HTTP协议

weixin_46351593的博客 2562

经典面试题:浏览器输入 URL 背后发生了什么?(图解版)

概述过程 ---- 分为两个大部分,一部分是生成HTTP请求,另外一部分是浏览器委托协议栈进行通信。 大体分为如下步骤: 解析url 生成HTTP请求 向DNS服务器查询WEB服务器的IP地址 全世界DNS服务器的接力 委托协议栈发送信息 创建套接字 连接服务器 收发数据 断开连接 由于知识点有点多,请各位大佬细听小弟娓娓道来。 生成HTTP请求 -------- 解析url 我们的探索之旅从在浏览器中输入网址开始,在介绍浏览器的工作方式之前,让我们先来介绍一下网址,准确来说应该叫URL。 实际上除了“

weixin_46635091的博客 522

点击一个网址到显示网页发生了什么?

解析url最终显示页面时,每一层每一个协议发挥的作用

m0_51547272的博客 448

xiaolingcoding 图解网络笔记——基础篇

网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。我们不希望传输层协议处理太多的事情,只需要服务好应用即可,让其作为应用间数据传输的媒介,帮助实现应用到应用的通信,而实际的传输功能就交给下一层,也就是。转发的过程中,源IP地址和目标IP地址是不会变的(前提:没有使用 NAT 网络的),源 MAC 地址和目标 MAC 地址是会变化的。这样可以减少中断处理的频率,降低系统的负载。

weixin_44553952的博客 3010
上一篇: 基于Highcharts的图表绘制
下一篇: jQuery中$(document).ready与Javascript中window.onload区别
我爱默小兜
博客等级 码龄14年 387粉丝 266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值