浏览器输入URL加载的全过程都发生了什么事情,你知道?
什么是URL:
- 统一资源定位符(URL,英文 Uniform / Universal Reaource Locator 的缩写)
- 标准的URL由服务类型(协议)、存放资源的主机域名(可以是域名或者ip地址,可以包括端口号)、主机资源路径和文件名
eg:http://www.cnblogs.com/wyx8891/
协议部分:http
主机域名:www.cnblogs.com
资源路径:/wyx8891/
URL请求顺序:
- 当发送一个URL请求时,浏览器会开启一个线程来处理这个请求,对URL 分析判断如果是 http 协议就按照 Web 方式来处理
- 请求的URL交给DNS域名解析,使浏览器获得对应网址的IP地址
- 浏览器拿到IP后,会向服务器建立一个socket链接
- 浏览器通过TCP向服务器发送HTTP请求
- 浏览器接收HTTP响应并且可能关掉TCP连接,或者是重新使用连接处理新请求
- 浏览器检查HTTP响应是否为一个重定向(3xx 结果状态码 ),一个验证请求(401),错误(4xx 5xx)等等,这些都是不同响应的正常处理(2xx)
- 如果响应可缓存,响应将缓存在内存里
- 浏览器解码响应
- 浏览器决定如何处理这些响应(例如,它是HTML页面,一张图片,一段音乐)
- 浏览器展现响应,对未知类型还会弹出下载对话框。
概念解释:
- IP 地址:IP 协议为互联网上的每一个网络和每一台主机分配的一个逻辑地址。IP 地址如同门牌号码,通过 IP 地址才能确定一台主机位置。服务器也是一台主机,想要访问某个服务器,必须先知道它的 IP 地址;
- 域名(DN):IP 地址由四个数字组成,中间用点号连接,在使用过程中难记忆且易输入错误,所以用我们熟悉的字母和数字组合来代替纯数字的 IP 地址,比如我们只会记住 www.baidu.com(百度域名) 而不是 220.181.112.244(百度的其中一个 IP 地址);
- DNS: 每个域名都对应一个或多个提供相同服务服务器的 IP 地址,只有知道服务器 IP 地址才能建立连接,所以需要通过 DNS 把域名解析成一个 IP 地址。
- 协议:从该计算机获取资源的方式,常见的是Http、Ftp、Gopher、Telnet、File,不同协议有不同的通讯内容格式;资源路径指示从服务器上获取哪一项资源。
浏览器输入URL加载的全过程都发生了什么事情,你知道?的更多相关文章
- 一个url加载的全过程
最近在进行前端面试方面的一些准备,遇到了一个经典前端问题,一个url从输入到页面加载中间到底发生了什么,以前也认真想过这个问题,但是当时回答的都不全面,现在来好好总结一下: 总体来说分为以下六个步骤: ...
- 详解--从地址栏输入url到页面展现中间都发生了什么?
这是一个综合性很强的问题,个人理解包含以下七个基本点: 1.在浏览器地址栏输入url并按下回车. 2.浏览器检查当前url是否存在缓存和缓存是否过期. 3.域名解析(DNS解析url对应的ip). 4 ...
- HTTP工作过程(浏览器输入URL到返回HTML页面都经历了什么)
超文本传送协议(HyperText Transport Protocol,HTTP)是互联网上应用最为广泛的一种网络协议,它工作在应用层,使用TCP的80号端口提供服务.并且HTTP是工作在客户/服务 ...
- 浏览器输入URL,按下回车后发生什么?
大致流程 URL 解析 DNS 查询 TCP 连接 服务器处理请求 浏览器接受响应 浏览器解析渲染页面 断开连接
- 从输入URL到页面加载的全过程
前面的话 本文将详细介绍从输入URL到页面加载的全过程 概述 从输入URL到页面加载的主干流程如下: 1.浏览器构建HTTP Request请求 2.网络传输 3.服务器构建HTTP Response ...
- 一个页面从输入URL到加载显示完成,发生了什么?
面试经典题--URL加载 一.涉及基本知识点: 1. 计算机网络 五层因特尔协议栈: 应用层(dns.http):DNS解析成IP并完成http请求发送: 传输层(tcp.udp):三次握手四次挥手模 ...
- [转载]浏览器中输入url 并且按下回车之后发生了什么?
解析URL 浏览器通过 URL 能够知道下面的信息: Protocol "http" 使用HTTP协议 Resource "/" 请求的资源是主页(index) ...
- 练习启动各种浏览器的同时加载插件:Firefox, Chrome, IE
# -*- coding:utf-8 -*-import osimport seleniumfrom selenium import webdriverfrom selenium.webdriver. ...
- URL加载系统----iOS工程师必须熟练掌握
URL加载系统----iOS工程师必须熟练掌握 iOS根本离不开网络——不论是从服务端读写数据.向系统分发计算任务,还是从云端加载图片.音频.视频等. 当应用程序面临处理问题的抉择时,通常 ...
随机推荐
- LINUX 笔记-vmstat命令
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff ...
- win7与centos虚拟机的共享文件夹创建
本文在win7环境下,在virtualbox5.0.16中的虚拟机centos6.7创建linux虚拟机与win7主机的共享文件夹. 首先点击virtualbox上"设置"按钮,在 ...
- Azure环境中Nginx高可用性和部署架构设计
前几篇文章介绍了Nginx的应用.动态路由.配置.在实际生产环境部署时,我们需要同时考虑Nginx的高可用性和部署架构. Nginx自身不支持集群以保证自身的高可用性,商业版本的Nginx+推荐: T ...
- javascript 之作用域链-07
复习作用域 上一节我们说到作用域:是指变量可以访问的范围,他规定了如何查找变量,以及确定当前执行代码对变量的访问权限:也说到静态作用域即词法作用域,是在编译阶段决定变量的引用(由程序定义的位置决定,和 ...
- Android Studio 中修改Apk名称
修改生成的apk名称,并且使调试时也可以使用. 在app->build.gradle 中增加以下内容: android.applicationVariants.all { variant-> ...
- 白皮书之C++学习第一天
大三荒废了一年的时间在lol上,上头了吧.后悔也来不及了,总之我会拼命追回来的! 今天重拾起这本白皮书,也是很感慨啊! 废话不多说,好好学,好好找工作吧!大三结束了啊! 每个C++程序都有一个main ...
- Holding Bin-Laden Captive!(1.多重背包 2.母函数)
Holding Bin-Laden Captive! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/ ...
- HDU 4267 A Simple Problem with Integers(树状数组区间更新)
A Simple Problem with Integers Time Limit: 5000/1500 MS (Java/Others) Memory Limit: 32768/32768 K ...
- form提交地址地址正确但是依旧报错404找不到路径
---恢复内容开始--- 我的jsp中保含了">="和"<="符号,form提交的时候会有个标签校验,如下: private static bool ...
- TOMCAT启动到一半停止如何解决
当你的项目过大的时候,往往会导致你的TOMCAT启动时间过长,启动失败,遇到该情况可以试一下下面两招: TOmcat启动到一半的时候停止了,以下原因: 1. tomcat启动时间超过了设置时间: 解 ...