1、URL是什么
全称URL(uniform resource locator),即统一资源定位符。
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
它最初是由蒂姆·伯纳斯·李发明用来作为万维网的地址。现在它已经被万维网联盟编制为互联网标准RFC1738了。
2、URL的结构
基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名。
- 第一部分:模式/协议:它告诉浏览器如何处理将要打开的文件。我偶们最常用的就是http,除此之外还有常用的在本地电脑打开文件的file协议,等等。
- 第二部分:文件所在的服务器的名称或IP地址,后面是到达这个文件的路径和文件本身的名称。服务器的名称或IP地址后面有时还跟一个冒号和一个端口号,它也可以包含接触服务器必须的用户名称和密码。路径部分包含等级结构的路径定义,一般来说不同部分之间以斜线(/)分隔。询问部分一般用来传送对服务器上的数据库进行动态询问时所需要的参数。
3、输入url到页面返回的全过程(简写)
我们输入一个域名:[www.baidu.com](http://www.baidu.com/)
浏览器查找浏览器缓存,如果有域名的IP地址则返回,如果没有继续查找;
系统查找系统缓存,如果有域名的IP地址则返回,如果没有继续查找;
路由器查找路由器缓存,如果有域名的IP地址则返回,如果没有继续查找;
本地域名服务器采用迭代查询,它先向一个根域名服务器查询;
根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址;
本地域名服务器向顶级域名服务器dns.com进行查询;
顶级域名服务器dns.com告诉本地域名服务器,下一次应查询的权限域名服务器dns.baidu.com的IP地址;
本地域名服务器向权限域名服务器dns.baidu.com进行查询;
- 权限域名服务器dns.baidu.com告诉本地域名服务器,所查询的主机www.baidu.com的IP地址;
- 本地域名服务器最后把查询结果告诉主机;
- 主机浏览器获取到Web服务器的IP地址后,与服务器建立TCP连接;
- 浏览器所在的客户机向服务器发出连接请求报文;
- 服务器接收报文后,同意建立连接,向客户机发出确认报文;
- 客户机接收到确认报文后,再次向服务器发出报文,确认已接收到确认报文;
- 此处客户机与服务器之间的TCP连接建立完成,开始通信;
- 浏览器发出取文件命令:GET;
- 服务器给出响应,将指定文件发送给浏览器;
- 浏览器释放TCP连接;
- 浏览器所在主机向服务器发出连接释放报文,然后停止发送数据;
- 服务器接收到释放报文后发出确认报文,然后将服务器上未传送完的数据发送完;
- 服务器数据传输完毕后,向客户机发送连接释放报文;
- 客户机接收到报文后,发出确认,然后等待一段时间后,释放TCP连接;
- 浏览器显示页面中所有文本。
4、输入url到页面返回的全过程(详细)
因为觉得写得很好很清晰,此处引用同学的答案
第一步、在本地DNS缓存和hosts文件查找对应ip
在本地DNS缓存中查找域名对应ip浏览器和操作系统在获取网站域名的实际IP地址后会对其IP进行缓存,在短时间内重复访问同一域名时,会直接在DNS缓存中读取域名对应的IP地址,以减少网络请求的损耗(先在浏览器DNS缓存中查找,如果没有找到,则会在操作系统DNS缓存中查找)。浏览器和操作系统都有一个固定的DNS缓存时间,其中Chrome的过期时间是1分钟,在这个期限内不会重新请求DNS。2、查询hosts文件如果在本地DNS缓存中没有找到域名对应的IP地址,则会查询hosts文件,看其中是否已经有与当前域名对应的 IP 地址,如果有就会直接采用,如果没有,那么就得由DNS服务器进行域名解析完成域名与IP的转换工作。
第二步、域名解析
DNS域名系统DNS(Domain Name System):用来把人们使用的域名转换为IP地址的系统。它是一个联机分布式数据库系统,采用客户服务器方式。2、DNS解析域名到IP地址的解析:当浏览器需要把域名解析为IP地址时,会调用解析程序,并成为DNS的一个客户,把带解析的域名放在DNS请求报文中,以UDP用户数据报方式发送给本地域名服务器可以是路由器或者是运营商服务器)。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。浏览器在获取相应的IP地址后即可进行下一步的通信。
第三步、浏览器发送请求给服务器
当浏览器得到域名对应的IP地址后,则会使用TCP协议,和服务器建立连接(三次握手)。2、和服务器建立连接后,浏览器则会使用相关协议(http或https),向服务器发送请求。3、HTTP协议请求方法主要有:get、post、put、delete等几种方式。
第四步、服务器请求并返回结果
服务器上的web server来处理这些请求。以MVC框架为例,当服务器收到来自用户的请求后,首先Controller(控制器)根据用户的请求调用相应的Model(模型)去处理用户请求相关的业务逻辑(包括对数据库的增删改查),然后将处理结果传递给对应的View(视图),构造显示页面(HTML文件)。最后服务器使用HTTP响应返回相应的资源(HTML文件)。
第五步、浏览器处理响应
浏览器收到来自服务器的响应后,会将响应中的HTML字符串一句句读取解析,解析到link标签后重新发送请求下载css文件,解析到script标签后重新发送请求下载js文件,并执行代码,解析到img标签后重新发送请求获取图片资源。