浏览器地址栏输入URL,回车......

问题解析

这是一道经典的面试题目,考察对网络知识的了解程度,回答必须到点上!

参考解答

在任意浏览器端输入URL(Uniform Resource Locator,统一资源定位符,区别URI)地址,敲下回车键。
URL格式:如http://10.18.34.113:8080/scms 包括协议(http)、网络地址(10.18.34.113:8080)、资源路径(/scms )三个部分。浏览器中输入URL默认缺省http

从输入URL回车到浏览器返回加载页面开始,经历的主要过程有四步:
http://www.cnblogs.com/gnss523-webrtc/articles/4834900.html

1.查找到URL所在的服务器地址

如果URL的地址的网络地址部分是一个域名,不是IP地址,则通过DNS(Domain Name System,域名系统)将域名解析成IP地址。步骤如下:

  1. 浏览器缓存。如果存在,则解析过程结束;
  2. 系统缓存。如果浏览器未缓存,浏览器会检查操作系统缓存中是否有这个这个域名对应的ip地址。
  3. 路由器缓存。若本机中没有解析到,则将请求发送给路由器。
  4. DNS提供商缓存。若仍未解析到,则检查TCP/IP中设置的DNS服务器,将URL发送给DNS服务器,最终返回域名的Ip地址。

2.TCP三次握手,建立连接

http应用层协议是建立在TCP传输层协议之上的。在浏览器发送http请求之前,会先通过三次握手建立TCP连接,提供可靠传输。

3.浏览器根据http规范,产生请求数据包

浏览器地址栏输入URL,回车......_第1张图片

http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE
不管请求的URL是一个静态的HTML文件,还是一个动态脚本(ASPX、PHP或JSP),服务器返回给浏览器的一定是HTML文档。该HTML文档就是浏览器需要呈现的页面

4.服务器与客户端交互

HTTP 请求返回的 HTML 传递到浏览器后,如果有 gzip 会先解压,根据编码对文档进行解析,生成DOM树,进行渲染……

页面框架传送过来以后,浏览器还要继续向服务器发送请求,请求的内容是主页里面包含的一些资源,如图片,视频,css样式等等;

对于静态的页面内容,浏览器通常会进行缓存,而对于动态的内容,浏览器通常不会进行缓存。

PS:可附带一些CDN和负载均衡的知识

你可能感兴趣的:(计算机网络,笔试&面试)