记一次简单的HTTP请求

一 概述

        一次简单的HTTP请求的简单分析:

  1.         浏览器从地址栏的输入中获得服务器的 IP 地址和端口号;
  2.         浏览器用 TCP 的三次握手与服务器建立连接;
  3.         浏览器向服务器发送拼好的报文;
  4.         服务器收到报文后处理请求,同样拼好报文再发给浏览器;
  5.         浏览器解析报文,渲染输出页面。

二 DNS与CDN

        假设你要访问的是 Apple 网站,显然你是不知道它的真实 IP 地址的,在浏览器里只能使用域名“www.apple.com”访问,那么接下来要做的必然是域名解析。这就要用 DNS 协议开始从操作系统、本地 DNS、根 DNS、顶级 DNS、权威 DNS 的层层解析,当然这中间有缓存,可能不会费太多时间就能拿到结果。

        别忘了互联网上还有另外一个重要的角色 CDN,它也会在 DNS 的解析过程中“插上一脚”。DNS 解析可能会给出 CDN 服务器的 IP 地址,这样你拿到的就会是 CDN 服务器而不是目标网站的实际地址。

        因为 CDN 会缓存网站的大部分资源,比如图片、CSS 样式表,所以有的 HTTP 请求就不需要再发到 Apple,CDN 就可以直接响应你的请求,把数据发给你。

        由 PHP、Java 等后台服务动态生成的页面属于“动态资源”,CDN 无法缓存,只能从目标网站获取。于是你发出的 HTTP 请求就要开始在互联网上的“漫长跋涉”,经过无数的路由器、网关、代理,最后到达目的地。

        注:由于Chrome浏览器会缓存之前访问过的网站,所以当你再次访问"127.0.0.1"的时候它可能会直接从本地缓存而不是服务器获取数据,这样就无法用wireshark获取网络流量,我们可以通过Chrome的开发这工具或者设置来清除相关的缓存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值