CDN经营许可证描述
内容分发网络(CDN)业务是第一类增值电信业务(B12类)。内容分发网络(CDN)业务是指利用分布在不同区域的节点服务器群组成流量分配管理网络平台,为用户提供内容的分散存储和高速缓存,并根据网络动态流量和负载状况,将内容分发到快速、稳定的缓存服务器上,提高用户内容的访问响应速度和服务的可用性服务。

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
服务模式:
内容分发网络(CDN)是一种新型网络构建方式,它是为能在传统的IP网发布宽带丰富媒体而特别优化的网络覆盖层;而从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式。
简单地说,内容分发网络(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。
总的来说,内容服务基于缓存服务器,也称作代理缓存(Surrogate),它位于网络的边缘,距用户仅有"一跳"(Single Hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。
自从2016年12月12日,工信部向阿里云正式发放内容分发网络(CDN)业务经营许可证,以后我国CDN产业发展进入了牌照时代,这也意味着以后CDN服务商如果对外提供业务需要"持证上岗"!
function getshangpin($params) {
extract($params);
if(empty($sid)) return null;
$db = _G('db');
global $_G;
$table_name = $_G['dns']['dbpre'] . 'subject';
$sids = array_map('intval', explode(',', $sid));
$select_fields = $select ? $select : 'sid,name,subname,thumb,catid,pid,reviews,avgsort,address,tel,description';
$sql = "SELECT {$select_fields} FROM `{$table_name}` WHERE sid IN (" . implode(',', $sids) . ") AND status = 1";
if($orderby) $sql .= " ORDER BY " . $orderby;
else $sql .= " ORDER BY FIELD(sid, " . implode(',', $sids) . ")";
$limit_rows = isset($rows) ? (int)$rows : 10;
$start = isset($start) ? (int)$start : 0;
$sql .= " LIMIT {$start}, {$limit_rows}";
$result = $db->query($sql);
if(!$result) return null;
$return = array();
while($row = $db->fetch_array($result)) $return[] = $row;
$db->free_result($result);
return !empty($return) ? $return : null;
}
function subject_hyrw($params) {
extract($params);
if(empty($catid) && empty($sid)) return null;
$db = _G('db');
global $_G;
$table_name = $_G['dns']['dbpre'] . 'subject';
$where = array("status = 1");
if(!empty($catid)) $where[] = "catid = " . (int)$catid;
if(!empty($sid)) $where[] = "sid IN (" . implode(',', array_map('intval', explode(',', $sid))) . ")";
if(!empty($city_id)) $where[] = "city_id = " . (int)$city_id;
$select_fields = $select ? $select : 'sid,name,subname,thumb,catid,pid,reviews,avgsort';
$sql = "SELECT {$select_fields} FROM `{$table_name}` WHERE " . implode(' AND ', $where);
if($orderby) $sql .= " ORDER BY " . $orderby;
else $sql .= " ORDER BY sid DESC";
$limit_rows = isset($rows) ? (int)$rows : 10;
$start = isset($start) ? (int)$start : 0;
$sql .= " LIMIT {$start}, {$limit_rows}";
$result = $db->query($sql);
if(!$result) return null;
$return = array();
while($row = $db->fetch_array($result)) $return[] = $row;
$db->free_result($result);
return !empty($return) ? $return : null;
}
function product_pic_li($params) {
extract($params);
if(empty($sid)) return null;
$db = _G('db');
global $_G;
$table_name = $_G['dns']['dbpre'] . 'subject_picture';
$sids = array_map('intval', explode(',', $sid));
$select_fields = $select ? $select : 'sid,pid,title,description,thumb,pictures,posttime';
$sql = "SELECT {$select_fields} FROM `{$table_name}` WHERE sid IN (" . implode(',', $sids) . ") AND status = 1";
if($orderby) $sql .= " ORDER BY " . $orderby;
else $sql .= " ORDER BY posttime DESC";
$limit_rows = isset($rows) ? (int)$rows : 10;
$start = isset($start) ? (int)$start : 0;
$sql .= " LIMIT {$start}, {$limit_rows}";
$result = $db->query($sql);
if(!$result) return null;
$return = array();
while($row = $db->fetch_array($result)) $return[] = $row;
$db->free_result($result);
return !empty($return) ? $return : null;
}