web请求过程分析

web请求过程分析

大致过程

首先用户输入URL网址,会请求DNS对域名进行解析成相应的IP地址,然后根据IP地址,在互联网上寻找对应的服务器,向服务器发起一个get请求,服务器返回对应的数据资源。

当然,服务器可能有很多台,负载均衡设备会平均分配所有用户的请求,请求的数据可能存储在分布式缓存中或是静态文件,或是数据库里。

当数据返回浏览器,浏览器解析数据发现还有一些静态资源,则又会发起HTTP请求,这些请求很可能在CDN上,CDN服务器又会处理这个用户的请求。!


image

HTTP请求:

HTTP请求头:

请求头 说明
Accept 浏览器可接受的MIME类型
Accept-Charset 浏览器可接受的字符集
Accept-Encoding 浏览器能够进行解码的数据编码方式
Accept-Language 浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到
Authorization 授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中
Connection 表示是否需要持久连接
Content-Length 表示请求消息正文的长度
Cookie 这是最重要的请求头信息之一
From 请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它
Host 初始URL中的主机和端口
If-Modified-Since 只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304“Not Modified”应答
Pragma 指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝
Referer 包含一个URL,用户从该URL代表的页面出发访问当前请求的页面
User-Agent 浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用
UA-Pixels,UA-Color,UA-OS,UA-CPU 由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPU类型
响应头 说明
Allow 服务器支持哪些请求方法(如GET、POST等)
Content-Encoding 文档的编码(Encode)方法
Content-Length 表示内容长度
Content-Type 表示后面的文档属于什么MIME类型
Date 当前的GMT时间
Expires 指明应该在什么时候认为文档已经过期,从而不再缓存它
Last-Modified 文档的最后改动时间
Location 表示客户应当到哪里去提取文档
Refresh 表示浏览器应该在多少时间之后刷新文档,以秒计

常用状态码

1**:请求收到,继续处理

100——客户必须继续发出请求

2**:操作成功收到,分析、接受

200——交易成功

3**:完成此请求必须进一步处理

302——在其他地址发现了请求数据

4**:请求包含一个错误语法或不能完成

400——错误请求,如语法错误

403——禁止访问

404——没有发现文件、查询或URl

5**:服务器执行一个完全有效请求失败

500 - 内部服务器错误

浏览器缓存机制

cache control

当刘拉起页面异常,通常可能是浏览器做了缓存。如果ctrl+F5重新请求页面,则请求到的是最新的页面。因为此时请求会增加Pragma:no-cache和Cache-Control :no-cache

Expires

浏览器在发出请求之前会检查这个字段,过期则会重新发起请求

Last-Modefied

表示最后修改时间,浏览器再次请求时在请求头上加上,询问当前缓存是否是最新的,是则不会传输新的数据。

DNS域名解析

步骤:(输入回车后)

  1. 浏览器检查缓存有没有域名对应的IP地址,如果IP没有发生变化,则直接访问成功。如果变化了则失败,因此缓存时间设置不能太长。
  2. 如果浏览器缓存中没有,则会查找操作系统缓存红是否有对应的解析结果。
  3. 如果还没有,操作系统把域名发送给LDNS服务器,该服务器一般都会缓存域名解析结果,缓存时间是受域名失效时间控制,缓存空间一般不是影响域名失效的主要因素。80%的域名解析在这里完成,LDNS承担了域名解析的主要工作。
  4. 如果还没有找到,就去ROOTServer域名服务器请求解析。
  5. 根域名服务器返回给本地域名服务器一个所查询主域名服务器地址(gTLD server)。gTLD是国际顶级域名服务器,全球只有13台。
  6. LDNS向gTLD服务器发送请求。
  7. gTLD查找并返回域名对应的Name Server域名服务器地址。
  8. Name Server根据映射表,得到IP记录,连同一个TTL值返回给DNS Server域名服务器。
  9. 返回该域名对应的IP地址和TTL值,LDNS缓存域名和IP,缓存时间由TTL控制。
  10. LDNS把结果返回给用户,用户根据TTL值缓存在本地缓存中。

总结:

浏览会先查找缓存,未找到则会查本地的DNS缓存和hosts文件,
未找到则会调用DNS服务,将地址给本地解析服务器,解析域名,若未找到则会向上寻找,一直到到根域名服务器
根域名服务器会顶级域名寻找顶级域名服务器,将该服务器IP发给本地DNS域名解析(根服务器在顶层,不会一层层向下寻找,向下找到一层就让本地DNS自己去找)
例如:根域名服务器找到.com域服务器地址IP,将ip发送给我们的域名解析服务器,我们的服务器再向该ip地址询问,直到找到域名对应的IP地址

几种域名解析方式

  • A记录,A代表的是Address,用来指定域名对应的IP地址。
  • MX记录,表示Mail Exchange,将域名下的邮件服务器指向自己的Mail Server
  • CNAME记录,Canonical Name(别名解析)。一个ip地址对应多个域名。
  • NS记录,为某个域名指定DNS解析服务器
    TXT记录,为某个主机名或域名设置说明

CDN架构

用户要访问某个静态文件(如CSS文件),假设这个文件域名是cdn.jianshu.com,那么首先要想LDNS发请求,经过迭代解析后会回到这域名的注册服务器去解析,这个DNS解析服务器通常会把它重新CNAME解析到另外一个域名,这个域名最终会指向CDN全局中的DNS负载均衡服务器,再由这个GTM来最终分配给访问用户最近的CDN节点。

用户拿到DNS解析结果,用户去CDN节点访问静态文件,如果节点中所请求的文件不存在, 就会回到源站去获取这个文件,再返回给用户。

负载均衡

Load Balance:对工作任务进行平衡、分摊到多个操作单元上执行,如图片服务器、应用服务器。

链路负载均衡

通过DNS解析成不同的IP,用户根据IP来访问不同的目标服务器

集群负载均衡

  • 硬件负载均衡
    一主一备,优点是性能非常好,但较为昂贵,访问量增大到极限时,不能进行动态扩容。
  • 软件负载均衡
    成本低,缺点请求要多次经过代理服务器,增加网络延时,如图,LVS和HAProxy对用户的HTTp请求中的URL或者Coolie来进行负载均衡,发送给指定访问的机器。

操作系统负载均衡

利用操作系统级别的软中断或者硬件中断达到负载均衡,如设置多队列网卡
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容