这道题目没有所谓的完全的正确答案,这个题目可以让你在任意的一个点深入下去, 只要你对这个点是熟悉的。以下是一个大概流程:

  1. 浏览器向DNS服务器查找输入URL对应的IP地址。
  2. DNS服务器返回网站的IP地址。
  3. 浏览器根据IP地址与目标web服务器在80端口上建立TCP连接
  4. 浏览器获取请求页面的html代码。
  5. 浏览器在显示窗口内渲染HTML。
  6. 窗口关闭时,浏览器终止与服务器的连接。

这其中最有趣的是第1步和第2步(域名解析)。我们输入的网址(域名)是IP地址的一个别名, 在一个DNS内,一个域名对应一个IP地址。域名系统(DNS) 的工作就是将域名与它的IP地址对应起来。DNS是分布式的,同时也是具有层级关系的。

一个域名服务器虽然只记录一个小的子网内的主机名和IP地址, 但所有的域名服务器联合起来工作,就能将全网内的域名与它们的IP地址对应起来。 这也就意味着,如果一个域名服务器无法找到某个请求域名所对应的IP地址, 它就会向其它的域名服务器发出请求进行寻找。

其实就是一个DNS的解析过程:
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。

第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。

第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

第五步:重复第四步,直到找到正确的纪录。

参考:

http://www.cnblogs.com/lichenghan/p/4019370.html

http://www.cnblogs.com/panxueji/archive/2013/05/12/3073924.html

http://www.cricode.com/2398.html

http://www.berlinix.com/net/from-url-input.php

在浏览器中输入一个URL后都发生了什么的更多相关文章

  1. 解释一下,在你往浏览器中输入一个URL后都发生了什么,要尽可能详细

    这道题目没有所谓的完全的正确答案,这个题目可以让你在任意的一个点深入下去, 只要你对这个点是熟悉的.以下是一个大概流程: 浏览器向DNS服务器查找输入URL对应的IP地址. DNS服务器返回网站的IP ...

  2. 网易笔试题:浏览器中输入一个url后回车到返回页面信息的过程

    You enter a URL into the browser输入一个url地址 The browser looks up the IP address for the domain name浏览器 ...

  3. 当在浏览器中输入一个url后回车,后台发生了什么?比如输入url后,你看到了百度的首页,那么这一切是如何发生的呢?

    简单来书有以下步骤: 查找域名对应的IP地址.这一步会依次查找浏览器缓存,系统缓存,路由器缓存,ISPDNS缓存,13台根域名服务器. 向IP对应的服务器发送请求. 服务器响应请求,发回网页内容. 浏 ...

  4. 经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么

    尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...

  5. 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?

    原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有 ...

  6. 【转】当你在浏览器地址栏输入一个URL后回车,将会发生的事情?

    http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ http://www.cnblogs.com/panx ...

  7. 用户在浏览器中输入一个url发生的奥秘

    在HTTP 客户端向服务器发送报文之前,需要用网际协议(Internet Protocol,IP)地址和端口号在客户端和服务器之间建立一条TCP/IP 连接. http://207.200.83.29 ...

  8. 浏览器地址栏输入一个URL后回车,将会发生的事情

    浏览器向DNS服务器查找输入URL对应的IP地址. DNS服务器返回网站的IP地址. 浏览器根据IP地址与目标web服务器在80端口上建立TCP连接 浏览器获取请求页面的html代码. 浏览器在显示窗 ...

  9. 在浏览器地址栏输入一个URL后回车,将会发生的事情?

    https://yq.aliyun.com/articles/20667

随机推荐

  1. python-day16--内置函数

    内置函数操作 #!usr/bin/env python # -*- coding:utf-8 -*- # 1.locals()和globals() # def func(): # x=1 # y=2 ...

  2. XML文档的创建

    右键项目,添加,新建项,XML文件 XML文件的第一行有一个标题,标题描述了这个XML文件的版本和编码 XML文件必须有根节点且只能有一个根节点,如<Books></Books> ...

  3. 54. 59. Spiral Matrix

    1. Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral ...

  4. synchronized锁普通方法和锁静态方法

    1.对象锁钥匙只能有一把才能互斥,才能保证共享变量的唯一性 2.在静态方法上的锁,和 实例方法上的锁,默认不是同样的,如果同步需要制定两把锁一样. 3.关于同一个类的方法上的锁,来自于调用该方法的对象 ...

  5. python 使用yield进行数据的流式处理

    demo:从文件中取包含字符“a”的5行数据做一次批处理!!! # coding: utf-8 import time def cat(f): for line in f: yield line de ...

  6. top k

    def top_k(arr, left, right, k): if left >= right: return pivot = arr[right] index = left for i in ...

  7. html form表单提交后处理返回数据

    上传如果通过form提交并且需要处理返回值.(其实用ajax上传方式刚好,看需要) 可以这么做: <form id="importBookForm" action=" ...

  8. learning uboot enable protect console

    reference :https://github.com/lentinj/u-boot/blob/master/doc/README.autoboot how to enable protect s ...

  9. bzoj1621

    题解: 简单判断一下怎么分 如果分的话继续递归 代码: #include<bits/stdc++.h> using namespace std; int n,k; int js(int x ...

  10. 使用OpenSSL生成证书并配置Https

    1.密钥.证书请求.证书概要说明 在证书申请签发过程中,客户端涉及到密钥.证书请求.证书这几个概念.我们以申请证书的流程说明三者的关系.客户端(相对于CA)在申请证书的时候,大体上有三个步骤: 第一步 ...