第1章 深入Web请求过程

Http解析

HTTP采用无状态的短连接的通信方式
B/S网络架构的核心是HTTP。其中HTTP Header是最重要的一部分,它控制着互联网中海量用户的数据传输。最关键的是它控制着用户浏览器的渲染行为和服务器的执行逻辑

常见的HTTP请求头

请求头说明
Host用于指定被请求资源的Internet主机和端口号
User-Agen客户端将它的操作系统、浏览器和其他属性告诉服务器。
Connection当前连接是否保持

常见的HTTP响应头

响应头说明
Server使用的服务器名称
Content-Type用来指明发送给接收者的实体正文的媒体类型,如Content-Type:text/html;charset=GBK
Keep-alive保持连接的时间

常见的HTTP状态码

状态码说明
200客户端请求成功
302临时跳转,跳转的地址通过Location确定
400客户端请求有语法错误,不能被服务器识别
404请求的资源不存在
500服务器发生不可预测的错误

浏览器缓存机制

Ctrl+F5组合键刷新页面,服务器会直接向目标URL发送请求,而不会使用浏览器缓存的数据。原因是在请求头中增加了两项:Pragma:no-cache和Cache-Control:no-cache

下面是浏览百度主页时的request header:

下面是CTRL+F5后的request header:

  • Cache-Control/Pragma
    • 这个HTTP Head字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令
    • no-cache:所有内容都不会被缓存,在请求头和响应头中设置
  • Experies
    • 后面一般跟着一个日期,超过这个时间后,缓存的内容失效,浏览器在发起请求之前会检查这个字段。
  • Last-Modified/Etag
    • Last-Modified 字段一般用于表示一个服务器上的资源的最后修改时间。
    • Etag 这个字段让服务器给每个页面分配一个唯一的编号,然后通过这个编号来区分当前这个页面是否是最新的。

DNS域名解析

将域名解析成IP地址就是DNS解析的主要工作内容。

当用户在浏览器中输入域名并确定后:

  1. 浏览器检查缓存中是否有这个域名对应的解析过的IP地址,如果有,解析结束。
  2. 如果缓存中没有,浏览器查找操作系统的缓存是否有这个域名对应的解析结果。
  3. 如果还没有,操作系统会把这个域名发送给本地区的域名服务器-LDNS
  4. 假如LDNS仍然没有命中,就直接到Root Server域名服务器请求解析。
  5. 根据域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server)地址。
  6. LDNS向上一步返回的gTLD Server发送请求
  7. 接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址。
  8. Name Server域名服务器会查询域名和IP的映射关系,在正常情况下根据域名得到目标IP记录,连通一个TTL值返回给DNS域名服务器。
  9. 返回该域名对应的IP值和TTL值,Local DNS Server 会缓存这个域名和IP的对应关系,缓存时间由TTL值控制。
  10. 把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。

Linux下常用命令:

  • curl URL :返回这个页面的HTML数据
  • nslookup :查询域名的解析结果
  • dig :查询DNS的解析过程

注:如果用InetAddress类来解析域名,必须是单例模式

几种域名的解析方式:

  • A记录:A=Address,用来指定域名对应的IP地址
  • MX记录,表示的是Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的Mail Server
  • CNAME记录,全称是 Canoncial Name(别名解析)
  • NS记录,为某个域名指定DNS解析服务器
  • TXT记录,为某个主机名或域名设置说明

CDN工作机制

CDN也就是内容分布网络(Content Delivery Network),其目的是在现有的 Internet 中增加一层新的网络架构,将网站的内容发布到离用户最近的网络“边缘”,使用户可以就近取得所需内容,提高用户访问网站的速度。
CDN = 镜像(Mirror) + 缓存(Cache) + 整体负载均衡(GSLB)

CDN要达到以下的几个目标:

  • 可扩展
  • 安全性
  • 可靠性、响应和执行

负载均衡(Load Balance)就是对工作任务进行平衡,分摊到对个操作单元上执行。通常有3种负载架构,分别是链路负载均衡、集群负载均衡和操作系统负载均衡。

CDN动态加速

技术原理:在CDN的DNS解析中通过动态的链路探测来寻找回源最好的一条路径,然后通过DNS的调度将所有请求调度到选定的这条路径上回源,从而加速用户的访问效率。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值