以B站为例:

主域名:www.bilibili.com

账户登录注册相关域名,包括app登录:passport.bilibili.com

静态资源css,js,img等相关域名:static.bilibili.com

用户中心相关域名:space.bilibili.com

webapi接口相关域名:api.bilibili.com

app接口相关域名:app.bilibili.com

另外有一些隐性的域名:

例如数据库连接相关的:db.bilibili.com

redis缓存相关的:redis.bilibili.com

由此可见:

系统的架构无非就是一个“拆”字,合理的将不同的模块拆分成不同的域名,有以下几点好处

1、每个域名配置独立的服务器,服务器的业务更加专注,扩展更加方便。

2、针对特定的业务,可以更方便的对服务器进行优化。

相关分析

1、登录状态,设置cookie,范围域名未.bilibili.com,保证跨域名能登录状态

2、用户中心用特定域名,增加url的友好性,防止url过长,能直接https://space.bilibili.com/2374194这种域名+id的格式,url表现力极强。

3、api相关用api.bilibili.com域名。

4、动态数据,例如首页,各分区页,数据变更频繁的页面,全部用ajax请求数据的方式,因为数据变换频繁,也就没有渲染兼容seo的必要了。

5、播放页,最重要的一个页面,相关标题和简介等,则需要用到渲染的方式,兼容seo,其他一些动态数据,例如评论,播放量等数据,统一用ajax加载。

6、cdn,静态资源css,js,img等统一设置了很长的cdn缓存,更新用url参数版本号来控制。

7、甚至一些非动态的接口数据,也可以用cdn来缓存,从而减少db和redis的压力。

关于api接口以及页面数据通信域名,缓存cdn设置优化的更多相关文章

  1. abp 基于api接口的页面内容提交

    项目中,后端api接口需要接收来自页面提交的数据.注意下拉控件对应值,应该按以下方式赋值 @Html.DropDownListFor(m => m.IsFolder, new List<S ...

  2. api接口开发跨域注意事项和设置

    因为跨域请求会先发送一个OPTIONS请求,所以需要判断下OPTIONS请求的就直接返回 if(strtoupper($_SERVER['REQUEST_METHOD'])== 'OPTIONS'){ ...

  3. php下api接口的并发http请求

    php下api接口的并发http请求 ,提高app一个页面请求多个api接口,页面加载慢的问题: func_helper.php/** * 并发http请求 * * [ * 'url' //请求地址 ...

  4. 关于vue2用vue-cli搭建环境后域名代理的http-proxy-middleware解决api接口跨域问题

    在vue中用http-proxy-middleware来进行接口代理,比如:本地运行环境为http://localhost:8080但真实访问的api为 http://www.baidu.com这时我 ...

  5. 万网域名查询API接口

    域名查询 接口地址:http://panda.www.net.cn/cgi-bin/check.cgi 接口采用HTTP,POST,GET协议 参数名称:area_domain 值为标准域名,例:nm ...

  6. nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)

    前提:安装好nginx,如果已经启动nginx,先停止,命令: ./usr/local/nginx/sbin/nginx -s stop 修改nginx配置 vi /usr/local/nginx/c ...

  7. Tomcat 配置 项目 到tomcat目录外面 和 域名绑定访问(api接口、前端网站、后台管理网站)

    先停止tomcat服务 1.进入apache-tomcat-7.0.68/conf/Catalina/localhost(如果之前还都没有启动过tomcat,是不会有此目录的,先启动一次再关闭,会自动 ...

  8. 【AMAD】dogpile.cache -- 一个Python缓存API,提供一套通用的接口来适配不同的缓存后端

    简介 动机 作用 用法 个人评分 简介 Dogpile1由两套子系统组成,其中一个是基于另一个来构建的. dogpile提供了dogpile lock的概念,这个控制结构让一个线程可以被选为一些资源的 ...

  9. php后台对接ios,安卓,API接口设计和实践完全攻略,涨薪必备技能

    2016年12月29日13:45:27    关于接口设计要说的东西很多,可能写一个系列都可以,vsd图都得画很多张,但是由于个人时间和精力有限,所有有些东西后面再补充   说道接口设计第一反应就是r ...

随机推荐

  1. 一百零一:CMS系统之自定义restful风格json返回格式和内容

    鉴于flask-restful用起来太麻烦,这里自定义json统一返回格式和内容 from flask import jsonify class HttpCode: """ ...

  2. Scala安装配置和使用

  3. IDEA结合GIT的使用

    一.本地安装GIT 下载: https://git-scm.com/downloads 安装 略 配置环境变量 在 “我的电脑 --> 属性 --> 高级系统设置 -- > 环境变量 ...

  4. IDEA 底部工具栏没有 Version Control 解决办法

    百度了半天 都说VCS配置不对 但是默认IDEA是配置好的 根本不需要修改 忽然看到 工具栏的快捷键 于是 Alt + 9 就出现了 完美

  5. 【数学建模】线性规划各种问题的Python调包方法

    关键词:Python.调包.线性规划.指派问题.运输问题.pulp.混合整数线性规划(MILP) 注:此文章是线性规划的调包实现,具体步骤原理请搜索具体解法.   本文章的各个问题可能会采用多种调用方 ...

  6. python基于OpenCV的人脸识别系统

    想获得所有的代码,请下载(来自我的CSDN): https://download.csdn.net/download/qq_40875849/11292912 主函数: from recognitio ...

  7. 小程序插件使用wx.createSelectorQuery()获取不到节点信息

    发现小程序一个bug, 在小程序插件中使用wx.createSelectorQuery()获取不到节点信息,需要在后面加入in(this) 例如: const query = wx.createSel ...

  8. iptables基本命令到深入

    1.关闭firewalld,安装iptables-server并启动服务 systemctl stop firewalld systemctl disable firewalld yun -y ins ...

  9. redis的单线程模型

    redis的单线程模型 redis使用文本事件处理器file event handler ,整个文件事件处理器是单线程的, 所以才叫做单线程模型,他采用IO多路复用机制同时监听多个socket,根据s ...

  10. Redis 是怎么实现 “附近的人” 的?

    针对"附近的人"这一位置服务领域的应用场景,常见的可使用PG.MySQL和MongoDB等多种DB的空间索引进行实现. 而Redis另辟蹊径,结合其有序队列zset以及geohas ...