首页 > 编程知识 正文

页面输入url发生了什么,输入url地址后发生了什么

时间:2023-05-05 09:45:00 阅读:17797 作者:2324

温暖的蜡烛在浏览器中输入http://www.taobao.com这样的网址,回到车上后发生了什么? 请从技术角度说明由浏览器、网络(UDP、TCP、HTTP等)和服务器等各种参与对象引起的一系列活动。 请尽量涉及所有关键技术要点。

1.DNS分析DNS分析的过程是查找哪些机器需要资源的过程,查找过程遵循就近原则。

输入网址并按回车后,浏览器将根据输入的URL搜索相应的IP。 具体步骤如下。

)1)首先,查找浏览器缓存。 浏览器保存一定时间内访问过的网站的DNS信息。 不同的浏览器保存的东西往往不同。

)如果找不到相应的记录,此时浏览器将调用操作系统缓存继续查找此网站的相应DNS信息。

)3)如果仍然找不到相应的IP,请向路由器发送请求,路由器在自己的路由器缓存中查找记录。 路由器上也一般有DNS信息。

)4)如果没有,则该请求发送到ISP (注:互联网服务提供商、互联网运营商、中国电信中国移动等),也是与ISP兼容的ISP DNS服务器

)5)否则,ISP的DNS服务器将请求发送到DNS服务器进行搜索。 根域名服务器是世界领先的DNS服务器,共有13台逻辑服务器。 以A到m命名,实际物理服务器有数百台,分布在世界大陆。

)6)如果来这里找不到域名对应信息,只能说明域名原本就不存在,没有在网上正式注册的问题。 或域名已经过期。

因此,打开新页面可能会有点晚。 因为如果本地没有缓存,则搜索域名的过程将以这种方式递归查询,并在搜索完成后返回。 例如,对于' mp3.baidu.com ',域名首先解析为.com的域名,然后前往管理.com域的服务器进行进一步查询,最后是. baidu,最后是mp3,因此

因此,DNS根据域名查询IP地址的过程是:浏览器缓存——操作系统缓存——路由器缓存——本地——ISP——域名服务器缓存——根域

2 .进行TCP连接的浏览器终于获得IP后,向服务器发送TCP连接,TCP连接经过3次握手。

3 .在浏览器发送HTTP请求并使浏览器与服务器建立连接后,浏览器随后将HTTP请求发送到此IP地址。 这是get,例如访问www.baidu.com。 其本质是在建立的TCP连接中根据HTTP协议标准发送请求网页的请求。

此获取请求包含主机(Host )、用户代理),用户代理是您的浏览器,它是您的“代理”,连接的keep-alive是bub cookie保存着用户的登录信息。 通常存储用户的JSESSIONID,并在每次向服务器发送请求时重复发送到服务器。

在建立连接并发送请求时,每个服务端都需要保持与客户端的通信,许多客户端都会与服务器进行通信。 服务必须用识别信息记录客户端的信息,以识别哪个客户端正在通信。 当客户端第一次访问服务器并且服务端返回响应时,它将以附加记录的客户端信息的标识符返回给客户端。 此标识符为JSESSIONID,JSESSIONID放在客户端的Cookies中。 当客户端再次向服务器发送请求时,请使用上次记录的Cookies中的JSESSIONID。 这样,服务器就可以知道是哪个浏览器。 这样就可以在他们之间保持通信了。

发送请求后,接下来将如下图所示等待响应。

4 .服务器处理并发送请求后,等待响应,如下图所示

服务收到浏览器的请求后,将分析此请求(读请求标头),并生成响应标头和具体响应内容。 然后,服务器将返回响应标头和响应,向浏览器返回所需的信息,如重要的Status Code。 表示一切正常,如以2开始时200,以3开始时重定向,以4开始时客户端错误,以404开始时请求的资源不存在,以5开始时表示服务器端错误。 响应是指具体要求的页面内容。

5 .浏览器分析渲染页面(1)浏览器显示HTML

服务返回响应后,浏览器将读取有关该响应的说明书(响应标头),并开始分析该响应并显示在页面上。

可以看到,当浏览器打开网站时,此页面将逐渐加载,某些视图将完全显示,最后一个旋转进度条将停止。 因此,当浏览器不完全接受所有HTML文档时,此页面开始显示。

(2)浏览器要求服务器获取嵌入在HTML中的对象

当浏览器显示HTML时,如果在打开某个网页的同时发送了主页(索引)页面帧,则浏览器会将页面显示为

的静态资源多次发起连接请求,需要获取嵌入在HTML中的其他地址的资源。这时,浏览器会发送一些请求来获取这些文件。这些内容也要一点点地请求过来,所以标签栏转啊转,内容刷啊刷,最后全部请求并加载好了就终于好了。

这时请求的内容是主页里面包含的一些资源,如图片,视频,css样式,JavaScript文件等等。

这在文件属于静态文件,首次访问会留在浏览器的缓存中,过期才会从服务器去取。缓存的内容通常不会保存很久,因为难保网站不会被改动。

静态的文件一般会从CDN中去取,CDN根据请求获取资源的时候可能还会用到负载均衡。

(3)浏览器发送异步(AJAX)请求

对于那些动态的请求,动态网页等就必须要从服务器获取了。对于静态的页面内容,浏览器通常会进行缓存,而对于动态的内容,浏览器通常不会进行缓存。对于这些动态请求,Nginx可能会专门设置一些服务器用来处理这些访问动态页面的请求。

6.关闭TCP连接

当数据完成请求到返回的过程之后,根据Connection的Keep-Alive属性可以选择是否断开TCP连接,HTTP/1.1一般支持同一个TCP多个请求,而不是1.0版本下的完成一次请求就发生断开。TCP的断开与连接不一样,断开可以分为主动关闭和被动关闭,需要经过4次握手。

当浏览器需要的全部数据都已经加载完毕,一个页面就显示完了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。