资讯专栏INFORMATION COLUMN

一次页面请求过程

Lyux / 1389人阅读

摘要:很早之前就想写一篇关于页面请求整个过程的文章。递归查询这个过程详细可以。服务器处理请求如图,请求经转发给进行处理。请求处理就是一个能够读懂请求并且能够生成来进行响应的程序像。浏览器开始显示在浏览器没有完整接受全部文档时,就开始显示页面了。

很早之前就想写一篇关于页面请求整个过程的文章。当然,这样的文章网上到处都是。而且自己写的并没有比别人好,那为什么还要写那。人都是善忘的动物,写下来主要是作为备忘,同时锻炼下自己的表达能力。毕竟能把一个问题讲明白才能说明真正的懂了。

首先,在浏览器输入网址(www.melody.com/index.php) 浏览器查找该域名对应的 IP 地址(DNS 解析)

DNS 解析过程:

浏览器缓存 - 浏览器会缓存 DNS记录一段时间,俺电脑上的谷歌浏览器默认是1分钟。

hosts 文件 - 不同系统放置的目录不一样,Mac 是在 /etc/hosts.

路由器缓存 - 额,这个就没什么好说的了。

ISP 解析服务器 - 其实这个是 DNS记录的缓存。

递归查询 - 这个过程详细可以google。这个查询是由 ISP 的解析服务器发起的,所以查到后,ISP 会将记录缓存后发送给浏览器。

注:DNS 查找的过程就这样完成了, 假设查询到的 IP 地址为 115.26.23.117。值得注意的是(4)中,一般默认是运营商解析服务器。比如笔者用的是联通的宽带,默认的就是联通的解析服务器。linux/mac 可以通过 cat /etc/resolv.conf 查看。

浏览器发起到115.26.23.117端口80的连接

TCP 连接建立需要经历三次握手(SYN -> SYN+ACK -> ACK)

浏览器给Web服务器发送一个HTTP请求

详细的报文分析可以参考《HTTP权威指南》,这里不做赘述。
服务器接收请求


  如图1,实际上是Nginx 接收了请求。

服务器"处理"请求

如图1,请求经Nginx 转发给App Server 进行处理。

请求处理就是一个能够读懂请求并且能够生成HTML来进行响应的程序(像Python、PHP、Ruby)。

 服务器返回一个HTML响应

 APP Server 生成一个HTML响应经Nginx 返回给浏览器。

浏览器开始显示HTML

在浏览器没有完整接受全部HTML文档时,就开始显示页面了。 

浏览器会根据响应报头的信息来决定如何解释该响应。

 浏览器获取嵌入在HTML中的对象(css、js、img等)

 如:

总结一下:

  1. 加深下记忆
  2. 参考: http://www.cnblogs.com/wenanr...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23214.html

相关文章

  • 一次排查页面重复请求的经历

    摘要:前段时间重构一个页面,页面中存在通过第三方代码插入的动态广告正常的产品需求,上线后发现第三方的广告资源存在重复请求的问题。所以,同一个请求会触发两次的原因页面加载时渲染元素会触发第一次请求,执行代码导致重新渲染触发第二次请求。 前段时间重构一个页面,页面中存在通过第三方JavaScript代码插入的动态广告(正常的产品需求),上线后发现第三方的广告资源存在重复请求的问题。由于控制广告插...

    notebin 评论0 收藏0
  • 一次排查页面重复请求的经历

    摘要:前段时间重构一个页面,页面中存在通过第三方代码插入的动态广告正常的产品需求,上线后发现第三方的广告资源存在重复请求的问题。所以,同一个请求会触发两次的原因页面加载时渲染元素会触发第一次请求,执行代码导致重新渲染触发第二次请求。 前段时间重构一个页面,页面中存在通过第三方JavaScript代码插入的动态广告(正常的产品需求),上线后发现第三方的广告资源存在重复请求的问题。由于控制广告插...

    hightopo 评论0 收藏0
  • 一次排查页面重复请求的经历

    摘要:前段时间重构一个页面,页面中存在通过第三方代码插入的动态广告正常的产品需求,上线后发现第三方的广告资源存在重复请求的问题。所以,同一个请求会触发两次的原因页面加载时渲染元素会触发第一次请求,执行代码导致重新渲染触发第二次请求。 前段时间重构一个页面,页面中存在通过第三方JavaScript代码插入的动态广告(正常的产品需求),上线后发现第三方的广告资源存在重复请求的问题。由于控制广告插...

    habren 评论0 收藏0
  • 一次页面请求过程

    摘要:很早之前就想写一篇关于页面请求整个过程的文章。递归查询这个过程详细可以。服务器处理请求如图,请求经转发给进行处理。请求处理就是一个能够读懂请求并且能够生成来进行响应的程序像。浏览器开始显示在浏览器没有完整接受全部文档时,就开始显示页面了。 很早之前就想写一篇关于页面请求整个过程的文章。当然,这样的文章网上到处都是。而且自己写的并没有比别人好,那为什么还要写那。人都是善忘的动物,写下来主...

    Chiclaim 评论0 收藏0
  • YAHOO 军规

    摘要:一尽可能减少请求什么是请求官方回答从客户端到服务器端的请求消息包括消息首行中对资源的请求方法资源的标识符及使用协议菜鸟回答当你打开网页的时候所看到的文字图片多媒体等都是从服务器获取的每一个内容的获取就是请求把图片合并二使用内容分发网络官方回 一、尽可能减少Http请求 什么是Http请求?官方回答:从客户端到服务器端的请求消息包括消息首行中对资源的请求方法 资源的标识符及使用协议菜鸟回...

    lansheng228 评论0 收藏0

发表评论

0条评论

Lyux

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<