请求一个域名ip的缓存用处
前言
摘录自操作系统,这一段的内容很有启发,稍微加上自己的理解,写一篇博客记录一下。
缓存
缓存成功解决了速度不匹配设备之间的数据传输,并且在一般情况下,是整个系统的瓶颈;缓存的出现,有效减少了低速IO设备的访问频率,从而大幅度提升了速度。比如在处理高并发的场景,常规的mysql根本不够,上万的请求数据库就已经崩了;但往往高并发场景是读多写少,所以可以利用缓存,完全可以在数据库和缓存里都写一份,读的时候大量走缓存就行了。数据库redis 轻轻松松单机几万的并发,就是用了从缓存中存储数据、读写数据的。
浏览器请求一个域名ip的缓存用处
(1)浏览器内部都有dns客户端,首先查询本地dns缓存中是否有该域名的ip,如果有就直接去访问该ip。如果没有,该dns客户端首先查找自己主机所设置的dns服务器,然后去该dns服务器去查询是否有该域名的ip。
(2)如果该dns服务器本地缓存中有该域名的A记录(域名与ip地址的对应记录),则直接返回给浏览器中的dns客户端。若没有该域名的A记录,就通过递归的方式向上询问其他dns服务器,直到遇到A记录,此时这条递归路线上的所有被询问过的dns服务器,都会将此域名对应的A记录缓存到自己的cache中,以备下次有相同域名查询时直接返回。这一点很像路由算法里的LS算法,查询的路由器的信息返回后都会被记录。
(3)浏览器中的dns客户端得到此域名的ip地址后,也将此域名和ip放在自己的缓存中,以备下次用户再键入同一域名时,避免再查一次ip。
(4)浏览器开始通过网络用http协议访问该ip地址的80端口
(5)一般情况下该ip对应的设备不是最终的Web服务器,因为很少有人会把Web服务器直接暴露在公网,假设该ip对应的设备是台网关(一般是硬件路由设备),该网关检查本地缓存中是否有相关Web服务器的缓存,若有则直接将该http请求分配给缓存中的Web服务器。否则从服务器列表中重新分配一台Web服务器,将该http请求转发给该Web服务器处理。随后将该Web服务器的IP地址(内网地址)和端口号缓存起来,以备下次该用户的请求到来时,依然给Web服务器。有的网关可以识别用户cookie信息,从而可以将该请求再次落到 上一个请求的Web服务器上。
(6)Web服务器拿到请求后,如果是静态请求,先检查自己的缓存中是否有该页面的记录,若没有则直接从硬盘中取出页面,将其返回后存入本地静态缓存中。如果为动态请求,则先交给自己的cgi去处理。
(7)cgi拿到请求后,先检查自己的换粗系统,如memcache,如果缓存中没有,则与数据库建立链接,向数据库发出请求
(8)数据库也是先检查自己的缓存,若没有结果集,则从表中检索到数据后返回,并将结果集缓存起来
(9)cgi拿到数据后,返回给web服务器,并将数据缓存到memcache中
(10)web服务器拿到数据后,将数据返回给网关。由于是动态数据,不需要缓存。
(11)网关拿到数据后,直接返回给浏览器
(12)如果浏览器发现数据信息中含有静态数据,则将静态数据缓存到用户的internet临时目录中。
静态数据如图片等信息,动态数据一般如ajax的数据或者js返回的json数据等数据。
请求一个域名ip的缓存用处的更多相关文章
- 使用腾讯地图请求来源未被授权, 此次请求来源域名/ip:servicewechat.com
原文:微信小程序使用腾讯地图请求来源未被授权, 此次请求来源域名:servicewechat.com 版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明 ...
- 负载均衡实现,一个域名对应多个IP地址
负载均衡实现,一个域名对应多个IP地址 - 宏宇 - 博客园 https://www.cnblogs.com/cuihongyu3503319/archive/2012/07/09/2583129.h ...
- 负载均衡实现,一个域名对应多个IP地址【转载】
使用负载均衡实现,传统和常规做法,其他方式需要特殊处理.(dns轮询,或者自己做解析)1.一个域名设定多个dns服务或者服务器进行解析,同一个域名的每个解析都指向不同的ip地址,这样应答快的dns优先 ...
- 一个域名最多能对应几个IP地址?,一个IP地址可以绑定几个域名?
一个域名最多能对应几个IP地址?,一个IP地址可以绑定几个域名?谢谢 xikeboy | 浏览 31055 次 推荐于2016-04-24 14:21:14 最佳答案 1.也就是说通常情况下一个域名同 ...
- MDNS DDoS 反射放大攻击——攻击者假冒被攻击者IP向网络发送DNS请求,域名为“_services._dns-sd._udp.local”,这将引起本地网络中所有提供服务的主机都向被攻击者IP发送DNS响应,列举网络中所有服务
MDNS Reflection DDoS 2015年3月,有报告叙述了mDNS 成为反射式和放大式 DDoS 攻击中所用媒介的可能性,并详述了 mDNS 反射式攻击的原理和相应防御方式.Q3,Akam ...
- WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发)
概述 发起一个http请求的过程就是建立一个socket通信的过程. 我们可以模仿浏览器发起http请求,譬如用httpclient工具包,curl命令等方式. curl "http://w ...
- 谈谈域名DNS的缓存问题
可以从很多地方看到,许多刚开始做站的朋友,对域名设置方面的知识原理一知半解,以至于为了某些测试需要,经常对域名解析大动干戈.今天改个A记录,明天又换个NS.又或者,在迁移域名,迁移网站的时候的时候由于 ...
- BaseHttpListActivity,几行代码搞定Android Http列表请求、加载和缓存
Android开发中,向服务器请求一个列表并显示是非常常见的需求,但实现起来比较麻烦,代码繁杂. 随着应用的更新迭代,这种需求越来越多,我渐渐发现了实现这种需求的代码的共同点. 于是我将Activit ...
- 服务器使用nginx做代理,通过HttpServletRequest获取请求用户真实IP地址
首先,在nginx配置中添加如下配置 server { listen ; server_name www.wenki.info; #要访问的域名 charset utf8; location / { ...
随机推荐
- subprocess模块和logging模块
主要内容: 一.subprocess模块 二.logging模块 1️⃣ subprocess模块 三种执行命令的方法 subprocess.run(*popenargs, input=None, ...
- spring quartz 配置多个定时任务
1.配置文件-quartz-1.7.3jar spring版本为3.1.3jar <?xml version="1.0" encoding="UTF-8&quo ...
- 在VMware中为Red Hat配置静态ip并可访问网络-Windows下的VMware
首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的命令行里输入“ipconfig /all”,找到VMware Network Adapte ...
- 18-拍卖叫价(hdu2149 巴什博弈)
http://acm.hdu.edu.cn/showproblem.php?pid=2149 Public Sale Time Limit: 1000/1000 MS (Java/Others) ...
- ubuntu PCL的使用
cmake_minimum_required(VERSION 2.8) project(MY_GRAND_PROJECT) find_package(PCL 1.3 REQUIRED COMPONEN ...
- 为什么要有http响应码
其实还是比较容易理解的.这就和你去小卖部买东西一样,老板,我想要一袋大米,那老板先得回答有还是没有,还是说我们这没有,去其它地方买去吧,得先给个说法,这个说法就是http相应码,有了http响应码之后 ...
- ESP8266-iot-简介1
ESP8266简介
- Mybatis——Spring整合
一.引入依赖 Spring的相关jar包 mybatis-3.4.1.jar mybatis-spring-1.3.0.jar mysql-connector-java-5.1.37-bin.jar ...
- Java 核心类库之反射机制
1:什么是反射机制? 2:反射机制它可以做什么呢? 3:反射机制对应的API又是什么? 1):通过反射机制来获取一个对象的全限定名称(完整包名),和类名: 2):实例化Class对象 3):获取对象的 ...
- css属性position的运用
随着web标准的规范化,网页的布局也随之千变万化.各种复杂漂亮有创意的页面布局冲 击这人们的视野,相比以前的table布局那就不是一等级的事儿.这个很大一部分功劳是css 样式的引入.而这个多样性布局 ...