Web请求过程


浏览器缓存

开发过程中会经常去刷新缓存。通常通过ctrl+F5来刷新缓存。但是为什么会刷新缓存呢?

因为我们的请求中会增加header

pragma:no-cache

cache-control:no-cache

Cache-Control的可选值

  • Public 缓存所有,响应头设置
  • Private 缓存到私有缓存,响应头设置
  • no-cache 所有内容都不会缓存,请求头&响应头设置
  • no-store 所有内容都不缓存,也不进入Internet临时文件,响应头中设置
  • must-revalidation 若缓存内容失效,则必须发送给服务器进行验证,请求头中设置。
  • max-age 缓存的内容将于xxx秒后失效。 HTTP1.1 比Last-Modified优先级高

DNS解析

  1. 在浏览器中输入 www.xxxx.com 并回车
  2. 浏览器检测浏览器是否有该域名的缓存。
    1. 如果有,则直接返回 域名和IP的对应关系给浏览器。
    2. 否则 访问本机的hosts
      1. 如果有,则返回 域名和IP对应关系给浏览器。
      2. 否则 浏览器访问LDNS服务器
        1. 如果 LDNS上有该域名和IP的对应关系,则返回给浏览器
        2. 否则 LDNS访问RootDNSServer,并得到一个NameServer地址
          1. LDNS访问NameServer,并获取到  域名和IP的对应关系
          2. LDNS 缓存该映射关系到本LDNS 缓存时间由TTL决定
          3. LDNS返回映射关系给浏览器
  3. 浏览器 缓存(根据TTL)域名和IP的对应关系并根据此内容去发起请求。
通过nslookup 和  dig www.xxx.com +trace 来跟踪域名解析的过程
  Java 的JVM 通过InetAddress来缓存内容  
        %JAVA_HOME%/lib/security/java.security 
  networkaddress.cache.ttl 默认-1 永不失效
 networkaddress.cache.negative.ttl 默认10秒失效
也可以通过 -Dsun.net.inetaddr.ttl=xxxx 来启动时修改

域名解析配置

A记录:Address  域名和IP对应关系
MX记录:Mail Exchange 指定域名指向的邮箱地址。
CNAME记录:Canonical Name 别名解析
NS记录:指定DNS服务器进行解析
TXT记录:一些存储信息

CDN配置

CDN简单来讲就是 内容分布网络(Content Delivery Network)  在用户和服务器间增加一层缓存结构,让一些静态信息可以通过就近的缓存服务器返回。这样就大大加快了访问的速度。
CDN=镜像+缓存+负载均衡
CDN动态回源,通过计算得到最近的一条回源路径,这样可以增大请求的效率。

阅读更多
文章标签: java Web读书笔记
个人分类: java Web读书笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭