导航:首页 > 配服务器 > 缓存服务器是什么

缓存服务器是什么

发布时间:2023-01-21 11:09:10

‘壹’ 浏览器缓存和服务器缓存

一、浏览器缓存 浏览器缓存即http缓存;浏览器缓存根据是否需要向服务器重新发起HTTP请求将缓存过程分为两个部分,分别是 强制缓存 和 协商缓存  。浏览器第一次请求资源的时候服务器会告诉客户端是否应该缓存资源,根据响应报文中HTTP头的缓存标识,决定是否缓存结果,是则将请求结果和缓存标识存入浏览器缓存中。如下图:1.强制缓存 :浏览器会对缓存进行查找,并根据一定的规则确定是否使用缓存。 强制缓存的缓存规则? HTTP/1.0 Expires 这个字段是绝对时间,比如2018年6月30日12:30,然后在这个时间点之前的请求都会使用浏览器缓存,除非清除了缓存。 这个字段的缺点就是只会同步客户端的时间,这就有可能修改客户端时间导致缓存失效。 HTTP/1.1 cache-Control       这个是1.1的时候替换Expires的,它会有几种取值: public :所有内容都将被缓存(客户端和代理服务器都可缓存) private :所有内容只有客户端可以缓存, Cache-Control的默认取值 no-cache :客户端缓存内容,但是是否使用缓存则需要经过协商缓存来验证决定 no-store :所有内容都不会被缓存,即不使用强制缓存,也不使用协商缓存 max-age=xxx (xxx is numeric) :缓存内容将在xxx秒后失效 比如max-age=500,则在500秒内再次请求会直接只用缓存。 优先性:cache-Control > Expires 如果同时存在,cache-Control会覆盖Expires。 这个字段的缺点就是: 如果资源更新的速度是秒以下单位,那么该缓存是不能被使用的,因为它的时间单位最低是秒。 如果文件是通过服务器动态生成的,那么该方法的更新时间永远是生成的时间,尽管文件可能没有变化,所以起不到缓存的作用。上图中浏览器缓存中存在该资源的缓存结果,并且没有失效,就会直接使用缓存的内容。上图中浏览器缓存中没有该资源的缓存结果和标识,就会直接向服务器发起HTTP请求。2.协商缓存: 浏览器的强制缓存失效后(时间过期),浏览器携带缓存标识请求服务器,由服务器决定是否使用缓存。 服务器决定的规则? 控制协商缓存的字段有 Last-Modified / If-Modified-Since 和 Etag / If-None-Match。 ①Last-Modified 是服务器返回给浏览器的本资源的最后修改时间。 当下次再次请求的时候,浏览器会在请求头中带 If-Modified-Since ,即上次请求下来的 Last-Modified 的值, 然后服务器会用这个值和该资源最后修改的时间比较,如果最后修改时间大于这个值,则会重新请求该资源,返回状态码200。 如果这个值和最后修改时间相等,则会返回304,告诉浏览器继续使用缓存。 ② Etag 是服务器返回的一个hash值。 当下次再次请求的时候,浏览器会在请求头中带 If-None-Match ,即上次请求下来的 Etag 值, 然后服务器会用这个值和该资源在服务器的 Etag 值比较,如果一致则会返回304,继续使用缓存;如果不一致,则会重新请求,返回200。二、服务器缓存 上面是一个简单的流程图: 用户1访问A页面,服务器解析A页面返回给用户1,同时在服务器内存上做一定映射,把A页面缓存在硬盘上面 用户2访问A页面,服务器直接根据内存上的映射找到对应的页面缓存,直接返回给用户2,这样就减少了服务器对同一页面的重复解析 服务器缓存和浏览器缓存的区别: 服务器缓存是把页面缓存到服务器上的硬盘里,而浏览器缓存是把页面缓存到用户自己的电脑里Nginx服务器  Nginx是一个高性能的HTTP和反向代理服务器。具有非常多的优越性: 在连接高并发的情况下,Nginx是Apache服务器不错的替代品,Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。 Nginx提供了expires、etag、if-modified-since指令来实现浏览器缓存控制。nginx -s reload#重新加载配置文件  nginx -s reopen#重新打开log文件  nginx -s stop#快速关闭nginx服务  nginx -s quit #优雅的关闭nginx服务,等待工作进程处理完所有的请求Nginx设置静态文件的缓存过期时间  location ~.*\.(js|css|html|png|jpg)$ {   expires 3d; }  expires    3d;//表示缓存3天 expires    3h;//表示缓存3小时 expires    max;//表示缓存10年 expires    -1;//表示永远过期。 如果设置为-1在js、css等静态文件在没有修改的情况下返回的是http 304,如果修改返回http 200 对于静态资源会自动添加ETag,可以通过添加etag off指令禁止生成ETag。如果是静态文件,那么Last-Modified值为文件的最后修改时间。在开发调试web的时候,经常会碰到因浏览器缓存(cache)而经常要去清空缓存或者强制刷新来测试的烦恼,提供下apache不缓存配置和nginx不缓存配置的设置。在常用的缓存设置里面有两种方式,都是使用add_header来设置:分别为Cache-Control和Pragma。 location ~ .*\.(css|js|swf|php|htm|html )$ {   add_header Cache-Control no-store;   add_header Pragma no-cache;   } nginx gzip压缩 使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度。 主要在nginx服务端将页面进行压缩,然后在浏览器端进行解压和解析, 目前大多数流行的浏览器都迟滞gzip格式的压缩,所以不用担心。 默认情况下,Nginx的gzip压缩是关闭的,同时,Nginx默认只对text/html进行压缩 gzip on; ersio #开启gzip压缩输出 gzip_http_vn 1.0 ;#默认1.1 #其中的gzip_http_version的设置,它的默认值是1.1,就是说对HTTP/1.1协议的请求才会进行gzip压缩 #如果我们使用了proxy_pass进行反向代理,那么nginx和后端的upstream server之间是用HTTP/1.0协议通信的。 gzip_vary on ; #和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持, #所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩 gzip_comp_level 6; #设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大 1-9 gzip_proxied any; #Ngnix作为反向代理的时候启用 #expample:gzip_proxied no-cache; # off – 关闭所有的代理结果数据压缩 # expired – 启用压缩,如果header中包含”Expires”头信息 # no-cache – 启用压缩,如果header中包含”Cache-Control:no-cache”头信息 # no-store – 启用压缩,如果header中包含”Cache-Control:no-store”头信息 # private – 启用压缩,如果header中包含”Cache-Control:private”头信息 # no_last_modified – 启用压缩,如果header中包含”Last_Modified”头信息 # no_etag – 启用压缩,如果header中包含“ETag”头信息 # auth – 启用压缩,如果header中包含“Authorization”头信息 # any – 无条件压缩所有结果数据 gzip_types text/html ;#压缩的文件类型 #设置需要压缩的MIME类型,非设置值不进行压缩 #param:text/html|application/x-javascript|text/css|application/xml gzip_buffers 16 8k; #设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间 #设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间 # param1:int 增加的倍数 # param2:int(k) 后面单位是k # example: gzip_buffers 4 8k; # Disable gzip for certain browsers. gzip_disable “MSIE [1-6].(?!.*SV1)”; #ie6不支持gzip,需要禁用掉ie6

‘贰’ dns缓存服务器是什么意思

DNS缓存服务器,即用来存储计算机网络上的用户需要的网页、文件等信息的专用服务器。这种服务器不仅可以使用户得到他们想要的信息,而且可以减少网络的交换量。缓存服务器往往也是代理服务器。由解析器和域名服务器组成的,用于TCP/IP网络。

‘叁’ 认识HTTP----缓存篇

本文内容大多参考 《图解HTTP》一书

所以讲缓存为什么要先扯代理服务器?别急,让我们看一下一个请求的简单示意图。

我们看到客户端(用户)发送了一个请求并不是直接发给源服务器的而是经过了代理服务器,然后经由代理服务器再发送给源服务器,响应也同样遵循这个顺序。
那么代理服务器在这中间担任了什么角色?

缓存是指代理服务器或客户端本地磁盘内保存的资源副本。利用缓存可减少对源服务器的访问,因此也就节省了通信流量和通信时间。
缓存服务器是代理服务器的一种,并归类在缓存代理类型中。换句话说,当代理转发从服务器返回的响应时,代理服务器将会保存一份资源的副本。

缓存服务器的优势在于利用缓存可避免多次从源服务器转发资源。因此客户端可就近从缓存服务器上获取资源,而源服务器也不必多次处理相同的请求了。

即便缓存服务器和客户端内有缓存,也不能每次都给我返回缓存吧,如果是这样,源服务器更新了我也不知道,因为我每次都是看缓存的资源。
为了解决这个问题,针对缓存设计了时效性的概念:
即使存在缓存,也会因为客户端的要求、缓存的有效期等因素,向源服务器确认资源的有效性。若判断缓存失效,缓存服务器将会再次从源服务器上获取“新”资源。

缓存不仅可以存在于缓存服务器内,还可以存在客户端浏览器中。以Internet Explorer 程序为例,把客户端缓存称为临时网络文件(Temporary Internet File)。
浏览器缓存如果有效,就不必再向服务器请求相同的资源了,可以直接从本地磁盘内读取。
另外,和缓存服务器相同的一点是,当判定缓存过期后,会向源服务器确认资源的有效性。若判断浏览器缓存失效,浏览器会再次请求新资源。

Pragma 是HTTP/1.1 之前版本的历史遗留字段,仅作为与HTTP/1.0的向后兼容而定义。
规范定义的形式唯一,如下所示。
Pragma: no-cache
该首部字段属于通用首部字段,但只用在客户端发送的请求中。客户端会要求所有的中间服务器不返回缓存的资源。

通过指定首部字段Cache-Control 的指令,就能操作缓存的工作机制。

可用的指令按请求和响应分类如下所示:

public指令
Cache-Control: public
当指定使用public 指令时,则明确表明其他用户也可利用缓存。
private指令

no-store指令
Cache-Control: no-store
当使用no-store 指令时,暗示请求(和对应的响应)或响应中包含机密信息。
因此,该指令规定缓存不能在本地存储请求或响应的任一部分。

ps:从字面意思上很容易把no-cache误解成为不缓存,但事实上no-cache代表不缓存过期的资源,缓存会向源服务器进行有效期确认后处理资源,也许称为do-not-serve-from-cache-without-revalidation更合适。no-store 才是真正地不进行缓存,请读者注意区别理解。

s-maxage指令
Cache-Control: s-maxage=604800 //(单位:秒)
s-maxage 指令的功能和max-age 指令的功能相同, 它们的不同点是s-maxage 指令只适用于供多位用户使用的公共缓存服务器(这里指代理服务器)。也就是说,对于向同一用户重复返回响应的服务器来说,这个指令没有任何作用。
另外,当使用s-maxage 指令后,则直接忽略对Expires 首部字段及max-age 指令的处理。
max-age指令

cache-extension token
Cache-Control: private, community="UCI"
通过 cache-extension 标记(token),可以扩展Cache-Control 首部字段内的指令。
如上例,Cache-Control 首部字段本身没有community 这个指令。借助extension tokens 实现了该指令的添加。如果缓存服务器不能理community 这个新指令,就会直接忽略。因此,extension tokens 仅对能理解它的缓存服务器来说是有意义的。

If-Unmodified-Since: Thu, 03 Jul 2012 00:00:00 GMT
首部字段If-Unmodified-Since 和首部字段If-Modified-Since 的作用相反。它的作用的是告知服务器,指定的请求资源只有在字段值内指定的日期时间之后,未发生更新的情况下,才能处理请求。如果在指定日期时间后发生了更新,则以状态码412 Precondition Failed 作为响应返回。

ps:Last-Modified 存在一定问题,如果在服务器上,一个资源被修改了,但其实际内容根本没发生改变,会因为Last-Modified时间匹配不上而返回了整个实体给客户端(即使客户端缓存里有个一模一样的资源)。

首部字段If-None-Match 属于附带条件之一。它和首部字段If-Match 作用相反。用于指定If-None-Match 字段值的实体标记(ETag)值与请求资源的ETag 不一致时,它就告知服务器处理该请求。
在GET 或HEAD 方法中使用首部字段If-None-Match 可获取最新的资源。因此,这与使用首部字段If-Modified-Since 时有些类似。

不与服务器确认,而是直接使用浏览器缓存的内容。其中响应内容和之前的响应内容一模一样,例如其中的Date时间是上一次响应的时间。

F5的作用和直接在URI输入栏中输入然后回车是不一样的,F5会让浏览器无论如何都发一个HTTP Request给Server,即使先前的响应中有Expires头部。

Ctrl+F5要的是彻底的从Server拿一份新的资源过来,所以不光要发送HTTP request给Server,而且这个请求里面连If-Modified-Since/If-None-Match都没有,这样就逼着Server不能返回304,而是把整个资源原原本本地返回一份,这样,Ctrl+F5引发的传输时间变长了,自然网页Refresh的也慢一些。

Cache-Control 是 HTTP1.1 才有的,不适用于 HTTP1.0,而 Expires 既适用于 HTTP1.0,也适用于 HTTP1.1,所以说在大多数情况下同时发送这两个头会是一个更好的选择,当客户端两种头都能解析的时候,会优先使用 Cache-Control。

二者都是通过某个标识值来请求资源, 如果服务器端的资源没有变化,则自动返回 HTTP 304 (Not Changed)状态码,内容为空,这样就节省了传输数据量。当资源变化后则返回新资源。从而保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。
其中Last-Modified使用文件最后修改作为文件标识值,它无法处理文件一秒内多次修改的情况,而且只要文件修改了哪怕文件实质内容没有修改,也会重新返回资源内容;ETag作为“被请求变量的实体值”,其完全可以解决Last-Modified头部的问题,但是其计算过程需要耗费服务器资源。

Expires和Cache-Control都有一个问题就是服务端的修改,如果还在缓存时效里,那么客户端是不会去请求服务端资源的(非刷新),这就存在一个资源版本不符的问题,而强制刷新一定会发起HTTP请求并返回资源内容,无论该内容在这段时间内是否修改过;而Last-Modified和Etag每次请求资源都会发起请求,哪怕是很久都不会有修改的资源,都至少有一次请求响应的消耗。
对于所有可缓存资源,指定一个Expires或Cache-Control max-age以及一个Last-Modified或ETag至关重要。同时使用前者和后者可以很好的相互适应。
前者不需要每次都发起一次请求来校验资源时效性,后者保证当资源未出现修改的时候不需要重新发送该资源。而在用户的不同刷新页面行为中,二者的结合也能很好的利用HTTP缓存控制特性,无论是在地址栏输入URI然后输入回车进行访问,还是点击刷新按钮,浏览器都能充分利用缓存内容,避免进行不必要的请求与数据传输。

做法很简单,就是把可能会更新的资源以版本形式发布,常用的方法是在文件名或参数带上一串md5或时间标记符:

可以看到上面的例子中有不同的做法,有的在URI后面加上了md5参数,有的将md5值作为文件名的一部分,有的将资源放在特性版本的目录中。
那么在文件没有变动的时候,浏览器不用发起请求直接可以使用缓存文件;而在文件有变化的时候,由于文件版本号的变更,导致文件名变化,请求的url变了,自然文件就更新了。这样能确保客户端能及时从服务器收取到新修改的文件。通过这样的处理,增长了静态资源,特别是图片资源的缓存时间,避免该资源很快过期,客户端频繁向服务端发起资源请求,服务器再返回304响应的情况(有Last-Modified/Etag)。

‘肆’ 缓存是啥意思

缓存指的是将需要频繁访问的网络内容存放在离用户最近、访问速度更快的系统中,以提高内容访问速度的一种技术。缓存服务器就是存放频繁访问内容的服务器。

帧缓冲存储器(Frame Buffer):简称帧缓存或显存,它是屏幕所显示画面的一个直接映象,又称为位映射图(Bit Map)或光栅。帧缓存的每一存储单元对应屏幕上的一个像素,整个帧缓存对应一帧图像。

可刻录CD或DVD驱动器一般具有2MB-4MB以上的大容量缓冲器,用于防止缓存欠载(buffer underrun)错误,同时可以使刻录工作平稳、恒定的写入。一般来说,驱动器越快,就有更多的缓冲存储器,以处理更高的传输速率。

(4)缓存服务器是什么扩展阅读

缓存工作原理

1、读取顺序

CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入Cache中,可以使得以后对整块数据的读取都从Cache中进行,不必再调用内存。

正是这样的读取机制使CPU读取Cache的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在Cache中,只有大约10%需要从内存读取。

这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先Cache后内存。

2、缓存分类

Intel从Pentium开始将Cache分开,通常分为一级高速缓存L1和二级高速缓存L2。在以往的观念中,L1 Cache是集成在CPU中的,被称为片内Cache。在L1中还分数据Cache(D-Cache)和指令Cache(I-Cache)。

它们分别用来存放数据和执行这些数据的指令,而且两个Cache可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。

3、读取命中率

CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有2级Cache的CPU中,读取L1 Cache的命中率为80%。

也就是说CPU从L1 Cache中找到的有用数据占数据总量的80%,剩下的20%从L2 Cache读取。由于不能准确预测将要执行的数据,读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。

在一些高端领域的CPU(像Intel的Itanium)中,我们常听到L3 Cache,它是为读取L2 Cache后未命中的数据设计的—种Cache,在拥有L3 Cache的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。

‘伍’ 什么叫缓存

所谓的缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。

1、通过文件缓存;顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式;

2、内存缓存;也就是创建一个静态内存区域,将数据存储进去,例如我们B/S架构的将数据存储在Application中或者存储在一个静态Map中。

3、本地内存缓存;就是把数据缓存在本机的内存中。

4、分布式缓存机制;可能存在跨进程,跨域访问缓存数据

对于分布式的缓存,此时因为缓存的数据是放在缓存服务器中的,或者说,此时应用程序需要跨进程的去访问分布式缓存服务器。

(5)缓存服务器是什么扩展阅读

当我们在应用中使用跨进程的缓存机制,例如分布式缓存memcached或者微软的AppFabric,此时数据被缓存在应用程序之外的进程中。

每次,当我们要把一些数据缓存起来的时候,缓存的API就会把数据首先序列化为字节的形式,然后把这些字节发送给缓存服务器去保存。

同理,当我们在应用中要再次使用缓存的数据的时候,缓存服务器就会将缓存的字节发送给应用程序,而缓存的客户端类库接受到这些字节之后就要进行反序列化的操作了,将之转换为我们需要的数据对象。

‘陆’ DNS的主服务器 DNS的辅服务器 DNS的缓存服务器 (这三个的意思是什么)

DNS主服务器,这是主要的服务器,它在内存和磁盘上都保持有整个数据库的拷贝。如果系统崩溃,该数据库能重载到内存中。
DNS辅服务器,起辅助的作用,它获得一份来自主DNS服务器的数据库备份。当主服务器作修改时,辅服务器也要求作相应修改。
DNS缓存服务器,用来存储网络上用户需要的网页和内容的网络服务器。
以上在网络上找的,希望能帮到LZ

‘柒’ 网站后台缓存 浏览器缓存 服务器缓存这三者有什么区别呢

网站后台缓存 是网站程序产生的一些临时文件,如PHP程序最喜欢。这个文件一般是在网站程序目录。
服务器缓存是服务器为了提升速度而产生的一些临时文件,如gzip的文件,一般是防在特定的目录。
浏览器缓存是用户本地浏览器缓存的网页文件,比如我们第一次打开一个网站速度会慢一些,第二次打开就很快,就是缓存在了本地。

‘捌’ http缓存过程

注:http 缓存只能缓存 get 方式请求的资源
缓存是指 代理服务器 客户端本地磁盘 内保存的资源副本。利用缓存可减少对源服务器的访问,因此也就节省了通信流量和通信时间。
缓存服务器是代理服务器的一种,并归类在缓存代理类型中。换句话说, 当代理转发从服务器返回的响应时,代理服务器将会保存一份资源的副本
缓存服务器的优势在于利用缓存可避免多次从源服务器转发资源。因 此客户端可就近从缓存服务器上获取资源,而源服务器也不必多次处 理相同的请求了。

浏览器缓存分 强制缓存 协商缓存 ,分别使用的字段前者是Expires和Cach-control,后者是 Etag 和 Last-modified。

Expires (http/1.0):设的是资源的过期时间(绝对时间),浏览器判断这次请求的时候是不是超过这个日期,没超的话就直接读取缓存中的资源,不向服务器发请求。

Pragma :字段值为“no-cache”的时候,会通知客户端不要对该资源读缓存,即每次都得向服务器发一次请求才行。但是这种禁用缓存的形式作用不是那么太大:1. 仅有IE才能识别这段meta标签含义,其它主流浏览器仅能识别“Cache-Control: no-store”的meta标签。2. 在IE中识别到该meta标签含义,并不一定会在请求字段加上Pragma,但的确会让当前页面每次都发新请求,但是仅限页面,页面上的资源则不受影响。
如果Pragma和Expires一起出现的话,Pragma的优先级是高的。

Cach-Control (http/1.1):缓存控制 示例:

Cache-Control 有三种属性:缓冲能力、过期时间和二次验证。

缓冲能力:

过期时间:

二次验证:

Expires使用的是服务端时间,可能出现客户端和服务端时间不同步,导致本地缓存无用或无法过期。
Max-Age使用的是客户端本地时间的计算,不会出现这个问题,推荐Max-Age。
如果同时启用了Cache-Control和Pragma ,Expires,Cache-Control优先级高。

Last-Modified / If- Modified-Since (http/1.0):判断资源最后修改时间,只要这个日期改变了就不使用缓存。浏览器的头部是If- Modified-Since,服务端的是Last-Modified,如果两个匹配,代表服务器资源未改变,服务端不会返回资源实体,只返回头部,通知浏览器使用缓存。
缺点:可能有些文件会周期性地改变日期,但是内容其实没变,但是该字段只判断最后修改时间,
E-tag / If-None-Match (http/1.1):Etag 是服务器针对请求的资源文件生成的唯一标识,只要文件内容没变化,则Etag值不变,克服了 Last-Modified / If- Modified-Since 的缺点。浏览器的头部是If-None-Match,服务端的是E-tag,如果两个匹配,代表内容未改变,通知浏览器使用缓存。
Etag 缺点:不适用于分布式系统 ,因为每个服务器上的 Etag 值不同。

如果同时带有E-tag和Last-Modified,服务端优先检查E-tag。

阅读全文

与缓存服务器是什么相关的资料

热点内容
数控车床编程初学实例 浏览:946
cad中筛选命令是什么 浏览:800
数控铣床法兰克编程 浏览:330
怎么样分解压缩包图标 浏览:619
php两年工作经验简历 浏览:763
怎么提前解压房贷 浏览:698
反诈宣传app哪里可以拿到用户资料 浏览:855
华为交换机命令配置 浏览:11
电机pid算法实例c语言 浏览:972
安装ue5未找到金属编译器 浏览:963
l1压缩性骨折微创手术 浏览:615
看电脑配置命令 浏览:108
单片机调用db数值偏移量 浏览:446
奔驰smart车型压缩机功率 浏览:527
服务器预留地址获取 浏览:1005
云库文件夹怎么设置 浏览:295
文件夹目录制作自动跳转 浏览:454
在哪个音乐app能听exo的歌 浏览:850
pdf超级加密 浏览:52
苹果手机app安装包怎么解压并安装 浏览:908