在我们输入google.com之后,浏览器上很快就会呈现出谷歌的页面,本文简单介绍一下从URL的输入到浏览器页面的展示,这中间发生了些什么。

URL是什么
URL全名叫统一资源定位符,uniform resource Locator,字面上来理解,它就是用来定位资源的。
相当于图书上面的标签,有了这些标签,管理员可以很快的找到相应的图书。
一个完整的URL包括以下信息:协议(最常见的有http协议,https协议,file协议、FTP协议等);IP地址(一串数字);路径;端口号(访问的端口等)。

URL输入到浏览器之后

当我们在浏览器的地址栏输入URL之后,浏览器就开始工作了,直到我们看到页面,这期间涉及到以下关键点:

IP地址:
IP地址是设备在互联网当中的唯一标识,计算机是不会将域名作为记录的地址(之所以将域名作为日常标记是因为语义化的原因),它真实访问的其实是一串数字(服务器IP地址)。那么计算机从google.com到对应的服务器IP,这中间的过程就是解析。
根服务器负责解析域名和对应的IP地址,浏览器访问解析完成的域名之后,就会寻找相应的缓存,进而将页面呈现在用户面前。

缓存:
1)浏览器每次访问网站,会在浏览器本地生成缓存,当用户第二次去访问时,会检测到相应缓存,直接进行访问。

2)如果浏览器没有检查到缓存,那么就会去访问系统缓存(也就是我们说的Hosts)。

3)如果本地也没有缓存,那么浏览器就会去检测路由器缓存,进而再检查ISP(运营商)缓存。

4)如果以上缓存都没有找到需求资源,浏览器则会在根域名服务器查找对应的IP地址,并进行访问。

DNS劫持
我们在浏览网页不畅时,有一种解决方法是将DNS修改114.114.114 或者8.8.8.8 。这么做的原因是,浏览器访问期间经过的程序非常多,需要一级一级得寻找缓存,其中有一级缓存出现问题,那么访问的页面就会有偏差。我们将DNS修改成114.114.114或者8.8.8.8,让浏览器直接访问dns服务器,减少中间环节。改成这样之后浏览器就不从ISP找,而是是从谷歌DNS(8.8.8.8)或者114 DNS(114.114.114)里面找。

服务器
服务器只是一台计算机,计算机本身是不能处理浏览器的请求,必须要有相应的软件。这种软件叫做Web server,常见的web server有Apache、Nginx,IIS、node.js等。将本地计算机作为web服务器来用,也需要安装web server。

MVC

MVC(model view controller),是将业务逻辑、界面和数据显示分离的方法框架。控制器从模型中获取数据,将数据套入html模板反馈给浏览器,浏览器再显示出来。

在浏览器输入URL发生了什么的更多相关文章

  1. 从浏览器输入URL回车发生了什么

    在浏览器输入url后回车,整个过程发生了什么?整个过程如果节节细述的话,那非常的复杂.我就简单的描述一下整个过程 1.查询DNS,获取域名对应的IP地址 (1).浏览器搜索自身的DNS缓存 (2).搜 ...

  2. 浏览器输入URL之后,HTTP请求返回的完整过程

    1.输入url,按下回车时,先做一个redirect(重定向),因为浏览器可能记录本机的地址已经永久跳转成新的地址,所以一开始浏览器就先要判断下需不需要重定向,以及重定向到哪里:2.然后第二步就是看A ...

  3. 从用户浏览器输入url到用户看到页面结果的过程,发生了什么事情?

    1.域名解析 域名解析的过程:  1).查询浏览器自身DNS缓存 2).若上面没有查找到,则搜索操作系统自身的dns缓存 3).若上面没有找到,则尝试读取hosts文件 4).若上面没有找到,向本地配 ...

  4. 在浏览器输入URL后发生了什么?

    摘录部分一:https://www.cnblogs.com/kongxy/p/4615226.html 从输入URL到浏览器显示页面发生了什么 当在浏览器地址栏输入网址,如:www.baidu.com ...

  5. [网络] 在浏览器输入URL回车之后发生了什么

    目录 一  前言 二  URL解析 三  DNS域名解析 1  IP 地址 2  什么是域名解析 3  浏览器如何通过域名去查询 URL 对应的 IP 呢 4  小结 四  建立连接 1  TCP三次 ...

  6. 天龙八步"细说浏览器输入URL后发生了什么

    本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ...

  7. 【转】浏览器输入URL后发生了什么

    转自:http://www.cnblogs.com/webdeve/p/7865520.html本文摘要: 输入网址 当我们在浏览器输入网址并回车后,一切从这里开始. 一.DNS域名解析 我们在浏览器 ...

  8. “天龙八步”细说浏览器输入URL后发生了什么

    本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ...

  9. 浏览器中输入URL发生了什么

    浏览器中输入URL会发生什么呢?这是我们经常会问到的一个问题. 我们知道的都是会发送http请求,服务端会处理请求给我们响应的结果,浏览器会渲染html 页面 但其实会遗漏掉一些比较重要的东西.下面的 ...

随机推荐

  1. Qt数据库之数据库连接池

     前面的章节里,我们使用了下面的函数创建和取得数据库连接: void createConnectionByName(const QString &connectionName) { QSql ...

  2. jQuery file upload callback options

    autoUpload By default, files added to the widget are uploaded as soon as the user clicks on the star ...

  3. SSH port forwarding: bind: Cannot assign requested address

    https://www.electricmonk.nl/log/2014/09/24/ssh-port-forwarding-bind-cannot-assign-requested-address/

  4. db2缓冲池调优

    缓存池: 冲池是内存中的一块区域,db2会将用到数据放到缓冲池中提高性能.缓冲池太小,每次查询仍然要到磁盘中操作,达不到缓冲的效果.缓冲池太大,超出操作系统管理的限制,会导致数据库无法连接的错误. 缓 ...

  5. nginx排查502错误

    排查502错误1.查看/usr/local/nginx/conf/nginx.conf从而知道其错误日志在哪.重点查看其错误日志.2.如果是/tmp/dd.sock2017/05/01 18:48:3 ...

  6. ES6标准入门 第三章:变量的解构赋值

    解构赋值:从数组和对象中提取值,对变量进行赋值. 本质上,这种写法属于“匹配模式”:只要等号两边的模式相同,左边的变量就会被赋予对应的值. 1.数组的结解构赋值 基本用法 let [foo, [[ba ...

  7. .net core 学习小结之 Cookie-based认证

    在startup中添加授权相关的管道 using System; using System.Collections.Generic; using System.Linq; using System.T ...

  8. js函数的定义和调用

    函数的定义 函数使用function 声明,后跟一组参数以及函数体,语法如下: function functionName([age0,age1,......argn]){ statements } ...

  9. oracle中与mysql中的命令 show databases, show tables, desc table类似的命令集

    1 怎样执行一个sql脚本文件,这个脚本文件写了一系列的sql语句集,比如sql.sql 放在D:\MyEclipse 8.6\Workspaces\OASystem\WebRoot\sql.sql下 ...

  10. [19/05/28-星期二] JavaScript_ 对象和引用数据类型

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...