欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

深入Web请求过程

程序员文章站 2022-06-22 14:01:18
深入Web请求过程学习《深入分析Java Web技术内幕》第1章的笔记浏览器输入URL发生的操作域名解析:DNS服务把域名解析为IP地址向找到IP地址的服务器发送一个get请求服务器返回默认的数据资源给访问的用户注意事项服务器可能有多台,需要通过负载均衡来确定哪一台服务器来接受请求请求数据可能储存在分布式缓存/静态文件/数据库当数据返回给浏览器时,浏览器解析数据发现有一些......

深入Web请求过程

学习《深入分析Java Web技术内幕》第1章的笔记

浏览器输入URL发生的操作

  1. 域名解析:DNS服务把域名解析为IP地址
  2. 向找到IP地址的服务器发送一个get请求
  3. 服务器返回默认的数据资源给访问的用户
  4. 注意事项
    • 服务器可能有多台,需要通过负载均衡来确定哪一台服务器来接受请求
    • 请求数据可能储存在分布式缓存/静态文件/数据库
    • 当数据返回给浏览器时,浏览器解析数据发现有一些静态资源(CSS,JS,IMG…)时又会发起另外的HTTP请求,而这些静态资源很可能在CDN上,于是CDN服务器来处理这个用户请求

浏览器缓存机制

  1. 在浏览器端按Ctrl+F5组合键,浏览器会直接向目标URL发送请求,而不会使用浏览器的数据
  2. 即使请求发送到服务器,也可能访问到缓存起来的数据
  3. 按下Ctrl+F5,实际上是在请求头中加入了两个请求头:Pragma:no-cacheCache-Control:no-cache,这两个字段的作用是如果知道该页面是否为缓存,不仅可以控制浏览器,还可以控制和HTTP相关的缓存或代理服务器,这两个字段的可选值可百度
  4. 其它缓存相关字段
    • Expires:值为日期和时间,超过这个时间值后缓存内容将会失效,即浏览器发送请求前检查这个页面的这个字段,看该页面是否过期,过期了就重新向服务器发送请求
    • Last-Modified:表示一个服务器上的资源的最后修改时间,响应报文中返回,浏览器再次发送请求时在请求头中增加一个If-Modifified-since字段,询问浏览器页面是否为最新的,如果为最新的服务器就返回304状态码,告诉浏览器为最新的,服务器也不会传输新的数据
    • Etag:类似Last-Modified字段,该字段作用为让服务器给每一个页面分配一个唯一的编号,通过这个编号来确定当前页面是否为最新的

DNS域名解析过程

  1. 浏览器首先检查缓存中有没有域名对应解析过的IP地址(浏览器缓存域名有大小和时间限制,时间一般为几分钟到几小时不等,域名被缓存时间限制可以通过TTL属性来设置)
  2. 如果上一步找不到,浏览器会检查操作系统缓存中是否有解析结果,例如hosts文件
  3. 如果上一步找不到,那么向LDNS即本地区域名服务器发送请求,这个LDNS的IP是我们自己设置的。大部分的域名解析都在这里已经完成了
  4. LDNS没有命中,那么向Root Server发送域名解析请求
  5. 根域名服务器返回LDNS一个查询的主域名服务器(gTLD Sserver)地址,gTLD是国际*域名服务器,如.com/.cn/.org
  6. LDNS向上一步返回的gTLD服务器发送请求
  7. 接受请求gTLD服务器查找并返回该域名对应的Name Server域名服务器地址,这个Name Server通常就是我们注册的域名服务器,例如我们在某个域名服务提供商申请域名,那么这个域名解析任务就由这个提供商的服务器完成
  8. LDNS向Name Server发送请求,接受请求的服务器查询存储域名和IP地址的映射关系表,正差情况下都可以根据域名得到目标IP记录,连同一个TTL值返回给LDNS
  9. LDNS缓存这个域名和IP对应关系,缓存时间由TTL值控制
  10. 解析结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束

CDN(Content Delivery Network)

  1. CDN即内容分布网络,构筑在Internet上的一种先进流量分配网络,目的为将网站内容发布到最接近用户的网络边缘,使得用户可以就近获取所需内容
  2. CDN缓存网站静态数据为主,如CSS/JS/图片/静态页面等
  3. 一个用户访问某一个静态页面,首先向LDNS发起域名解析请求,最后会到这个域名的注册服务器上解析,一般一个公司都会有一个DNS解析服务器,这个DNS解析服务器会将它重新CHAME(一种域名解析方法)解析到另外一个域名,这个域名最终被指向CDN全局中的DNS负载均衡服务器,再由这个GTM来最终分配哪一个地方的访问用户,返回给离这个访问用户最近的CDN节点

本文地址:https://blog.csdn.net/qq_37993487/article/details/85913859

相关标签: 计算机基础