从输入 URL 到页面加载完成的过程中都发生了什么事情?

1.browser checks cache; if requested object is in cache and is fresh, skip to #9
2.browser asks OS for server‘s IP address
3.OS makes a DNS lookup and replies the IP address to the browser
4.browser opens a TCP connection to server (this step is much more complex with HTTPS)
5.browser sends the HTTP request through TCP connection
6.browser receives HTTP response and may close the TCP connection, or reuse it for another request
7.browser checks if the response is a redirect (3xx result status codes), authorization request (401),
	error (4xx and 5xx), etc.; these are handled differently from normal responses (2xx)
8.if cacheable, response is stored in cache
9.browser decodes response (e.g. if it‘s gzipped)
10.browser determines what to do with response
	(e.g. is it a HTML page, is it an image, is it a sound clip?)
11.browser renders response, or offers a download dialog for unrecognized types

1.检查浏览器缓存,如果你请求的对象依据缓存下来了,则跳到第9步
2.浏览器会询问操作系统你请求的服务器的IP
3.操作系统先查询本地Host文件;如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存;
	如果还是没有,会找TCP/ip参数中设置的首选DNS服务器,查询本地区域文件与缓存;
		如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,
		如果未用转发模式,本地DNS就把请求发至13台根DNS,
		如果开启转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,
		上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。最后返回IP给浏览器
4.浏览器拿到IP后,想会向服务器建立一个socket连接(不考虑https)
5.浏览器通过TCP向服务器发送HTTP请求的
6.浏览器接收到服务器响应就会断开TCP连接,或者为了其他请求重用它
7.浏览器检查响应的状态是重定向(3xx)、要求授权(401)、服务器错误(4xx 和 5xx),如果是正常则会返回2xx(200),
8.如果是可缓存的,响应则缓存在内存里
9.浏览器将解码响应(不考虑gzip压缩)
10.浏览器决定如何响应,例如图片、HTML、媒体文件
11.浏览器将渲染请求,或者弹出一个下载对话框
 
时间: 2024-10-08 04:19:29

从输入 URL 到页面加载完成的过程中都发生了什么事情?的相关文章

【转】 从输入 URL 到页面加载完成的过程中都发生了什么事情?

该问题总结 一. 往浏览器输入URL后给你一个页面,你天天在使用的东西,学过计算机网络的知道是怎么回事,就DNS解析然后页面的回馈,不过要讲好还是有难度. 之前fex团队的nwind专门写过这个问题的博客: http://fex.baidu.com/blog/2014/05/what-happen/ 厉害的地方是将整个计算机体系和硬件都涉及进来,很广很深,太强大了. 然后找到一个StackOverFlow的答案: what happens when you type in a URL in br

【转】从输入 URL 到页面加载完成的过程中都发生了什么事情?

第一个问题:从输入 URL 到浏览器接收的过程中发生了什么事情? 从触屏到 CPU(文章已手机为例) CPU 内部的处理 从 CPU 到操作系统内核 从操作系统 GUI 到浏览器 第二个问题:浏览器如何向网卡发送数据? 从浏览器到浏览器内核 HTTP 请求的发送 DNS 查询 通过 Socket 发送数据 Socket 在内核中的实现 底层网络协议的具体例子 第三个问题:数据如何从本机网卡发送到服务器? 从内核到网络适配器(Network Interface Card) 连接 Wi-Fi 路由

从输入URL到页面加载完成的过程中都发生了什么事情?

为了便于理解,我将整个过程分为了六个问题来展开. 第一个问题:从输入 URL 到浏览器接收的过程中发生了什么事情? 从触屏到 CPU 首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接覆盖在显示屏上的,不过最近出现了 3 种嵌入到显示屏中的技术,第一种是 iPhone 5 的 In-cell,它能减小了 0.5 毫米的厚度,第二种是三星使用的 On-cell 技术,

[转]从输入url到页面加载完成的过程中都发生了什么事情

第一个问题:从输入 URL 到浏览器接收的过程中发生了什么事情? 从触屏到 CPU 首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接覆盖在显示屏上的,不过最近出现了 3 种嵌入到显示屏中的技术,第一种是 iPhone 5 的 In-cell,它能减小了 0.5 毫米的厚度,第二种是三星使用的 On-cell 技术,第三种是国内厂商喜欢用的 OGS 全贴合技术,具体

从输入 URL 到页面加载完的过程中都发生了什么事情?

1)把URL分割成几个部分:协议.网络地址.资源路径.其中网络地址指示该连接网络上哪一台计算机,可以是域名或者IP地址,可以包括端口号:协议是从该计算机获取资源的方式,常见的是HTTP.FTP,不同协议有不同的通讯内容格式:资源路径指示从服务器上获取哪一项资源. 例如:http://www.guokr.com/question/554991/协议部分:http网络地址:www.guokr.com资源路径:/question/554991/ 2)如果地址不是一个IP地址,通过DNS(域名系统)将该

面试经典——从输入 URL 到页面加载完的过程中都发生了什么事情?

想要更加了解http协议,猛戳这里 1)把URL分割成几个部分:协议.网络地址.资源路径.其中网络地址指示该连接网络上哪一台计算机,可以是域名或者IP地址,可以包括端口号:协议是从该计算机获取资源的方式,常见的是HTTP.FTP,不同协议有不同的通讯内容格式:资源路径指示从服务器上获取哪一项资源.例如:http://www.guokr.com/question/554991/协议部分:http网络地址:www.guokr.com资源路径:/question/554991/ 2)如果地址不是一个I

一个页面从输入 URL 到页面加载完的过程中都发生了什么事情?

过程概述 浏览器查找域名对应的 IP 地址: 浏览器根据 IP 地址与服务器建立 socket 连接: 浏览器与服务器通信: 浏览器请求,服务器处理请求: 浏览器与服务器断开连接. 以下为详细解析: 根据域名查找 IP 地址 概念解释 IP 地址:IP 协议为互联网上的每一个网络和每一台主机分配的一个逻辑地址.IP 地址如同门牌号码,通过 IP 地址才能确定一台主机位置.服务器本质也是一台主机,想要访问某个服务器,必须先知道它的 IP 地址: 域名( DN ):IP 地址由四个数字组成,中间用点

从输入 URL 到页面加载完成的过程中都发生了什么(转)

从输入 URL 到页面加载完成的过程中都发生了什么 过程描述 浏览器查找域名对应的 IP 地址: 浏览器根据 IP 地址与服务器建立 socket 连接: 浏览器与服务器通信: 浏览器请求,服务器处理请求: 浏览器与服务器断开连接. 根据域名查找IP地址 概念解析 IP地址:IP协议为互联网上的每一个网络和每一台主机分配的一个逻辑地址.IP地址如同门牌号码,通过 IP地址才能确定一台主机位置.服务器本质也是一台主机,想要访问某个服务器,必须先知道它的IP地址: 域名(HOST):IP 地址由四个

从输入 URL 到页面加载完的过程中都发生了什么---优化

这篇文章是转载自:安度博客,http://www.itbbu.com/1490.html 在很多地方看到,感觉不错,理清了自己之前的一些思路,特转过来留作记录. 一个HTTP请求的过程 为了简化我们先从一个HTTP请求开始,简要介绍一下一个HTTP求情的网络传输过程,也就是所谓的“从输入 URL 到页面下载完的过程中都发生了什么事情”,直白点就是:输入网址到打开网页这个过程中都发生了什么,你不知道的事情. ● DNS Lookup 先获得URL对应的IP地址 ● Socket Connect 浏