ppt web 演示

现场演示是世界各地专业演讲者的祸根。 出于无法预料的原因,即使是准备最充分的现场演示也会出错。 当您在300个人面前上台时,这是一件不好的事情。 远程Web应用程序的实时演示充满了危险,以至于大多数人发现了其他演示方法。 屏幕截图永远不会失败,并且本地沙箱不会在过载的会议Internet连接上失败。 但是,如果我们不能及时建立一个本地沙箱怎么办呢? 如果我们的数据库庞大又复杂怎么办? 如果我们的应用程序具有动画和无法通过屏幕截图显示的互动,该怎么办?

如果可以记录Web应用程序的使用情况,然后在适当的时间重放存储的响应,该怎么办? 幸运的是,代理HTTP很容易,HTTP是Web浏览器和Web服务器用来相互通信的协议。 这意味着您可以在浏览器和服务器之间放置中介,以执行所需的任何操作。 代理通常会进行内容过滤(例如,公司过滤器,父母过滤器)。 代理可以将数据缓存在离用户更近的服务器上,以加快网站访问速度。

在本教程中,我将以类似的方式使用Web代理:我将缓存我的内容,并将缓存的数据提供给我的Web浏览器。 但是,我将在与Web浏览器相同的机器上运行代理。 而且,我将其设置为仅缓存我想要的东西。 这样,我可以在不稳定的连接上运行实时演示。

安装和配置Squid HTTP代理

首先,我需要安装和配置代理。 我在Mac上,因此我通过Homebrew (适用于MacOS的免费软件包管理器)安装了Squid HTTP代理 。 安装代理后,我需要对其进行配置。

对于我的现场演示,我想缓存我要演示的应用程序以及该应用程序需要的任何其他内容。 缓存其他任何东西都是不必要的。 为此,Squid使用访问控制列表 (ACL)。 我将使用要缓存的域列表配置ACL,并拒绝其他所有内容。 为了获得最大的覆盖范围,我将主机名和IP地址都添加到ACL中。 由于HTTP代理也用于DNS,因此大多数情况下,代理都在查找DNS记录。 但是有时浏览器已经知道IP,并且只会告诉代理从IP中获取。

这是我的域和IP列表:

acl cacheDomain dstdomain beta.cpantesters.org
acl cacheDomain dstdomain api.cpantesters.org
acl cacheDomain dstdomain www.cpantesters.org
acl cacheDomain dstdomain 212.110.173.51
acl cacheDomain dstdomain cdnjs.cloudflare.com

前三个域是我正在运行的应用程序。 第四个是我的应用程序服务器的IP地址。 所有域都在同一台计算机上。 最后一个是CDNJS ,这是我获取JavaScriptJavaScript内容交付网络(CDN)。 为了使我的应用程序正常工作,我需要缓存CDNJS依赖的所有JavaScript和CSS。

列出要缓存的内容后,就可以禁止缓存其他任何域:

cache deny ! cacheDomain

接下来,我需要告诉Squid将缓存放在何处以及要使用多少磁盘空间。 Homebrew的Squid配置已注释掉cache_dir行。 我需要启用它并增加可用磁盘空间,以确保我的数据保持高速缓存。 磁盘空间用完后,Squid开始删除旧的缓存数据,这在我的演示过程中是无法实现的。

# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs / usr / local / var / cache / squid 1024 16 256

该行末尾的第一个数字是缓存大小(以MB为单位),我将其调整为1024(1GB)。

最后,我必须确保可以使用Squid的管理API,并且它仅对本地计算机开放。 这应该是默认设置,因此我会寻找这些http_access行,如果不存在,请添加它们。

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

允许从本地主机访问缓存管理器后,我需要禁用缓存管理器密码:

cachemgr_passwd none all

我已经完成了配置文件 。 而且,既然我已经配置了代理,就可以启动它。 在Homebrew中,命令是brew services start squid ,但是您的平台可能有不同的要求。 此命令可启动代理并等待请求。 接下来,我需要配置浏览器以使用代理。

配置网络浏览器

为HTTP代理配置Web浏览器取决于您使用的浏览器和操作系统。 如果您在MacOS上使用Chrome或Safari,则可以转到系统偏好设置来配置代理。 但是,如果您使用的是Firefox,则可以将浏览器配置为使用代理,而将系统的其余部分保留下来。 其他操作系统还有其他配置代理的方法,因此您应该查看操作系统的文档。

有一些不错的浏览器插件可用于管理HTTP代理。 如果您使用的是Chrome,请尝试使用Proxy SwitchyOmega ,对于Firefox,请使用FoxyProxy Standard 。 不幸的是,对于Safari或Internet Explorer没有很好的代理插件选项。

运行演示以缓存内容

配置代理后,就可以通过演示进行测试。 我需要在良好的互联网连接上执行此操作。 在演示过程中,我的浏览器将要求代理获取所有演示数据。 代理执行此操作后,会将其缓存在磁盘上。 由于我的计算机在线,因此Squid将遵循Web服务器要求的缓存规则。 这意味着缓存特定的时间长度,并可能重新验证数据以查看其是否更改。

在演示过程中,应确保正在使用我的缓存。 最简单的方法是读取Squid的日志。 在我的配置中,它位于/usr/local/var/logs/access.log中 。 里面是几行,看起来像这样:

1498020228.970    203 :: 1 TCP_MISS / 200 3653 GET http: // beta.cpantesters.org / chart.html? - HIER_DIRECT / 212.110.173.51 text / html
1498020229.523    314 :: 1 TCP_REFRESH_MODIFIED / 200 8130 GET http: // api.cpantesters.org / v3 / release / dist / Statocles - HIER_DIRECT / 212.110.173.51 application / json

该行的重要部分是URL和状态。 TCP_MISS / 200表示“此请求不在我们的缓存中,并且远程服务器返回了200 OK HTTP响应。” TCP_REFRESH_MODIFIED / 200表示“此请求在我们的缓存中,但是我们从远程服务器刷新了该请求,该服务器返回了200 OK HTTP响应。” 这是我建立和刷新自身的缓存,因为我处于稳定的连接中。 一旦在缓存中保存了一些数据,我将开始看到以下内容:

1498063273.261      0 :: 1 TCP_INM_HIT / 304 299 GET http: // beta.cpantesters.org / chart.html - HIER_NONE / - text / html
1498063281.831      0 :: 1 TCP_MEM_HIT / 200 8187 GET http: // api.cpantesters.org / v3 / release / dist / Statocles - HIER_NONE / - application / json

TCP_INM_HIT / 304的意思是“缓存对此请求的响应为304 Not Modified响应。” TCP_MEM_HIT / 200的意思是“缓存以200 OK HTTP响应响应了此请求。” 这些是我想要的响应:缓存正在提供响应,而不是远程服务器。

运行演示

现在,我的缓存在稳定的连接上运行良好,现在可以在不稳定的连接上运行演示了。 首先,我要确保我的缓存不尝试访问远程服务器(即,它在Squid的“离线”模式下运行)。 为此,Squid有一个名为squidclient的管理客户端,我可以使用它来切换脱机模式。

$ squidclient mgr:offline_toggle
HTTP / 1.1 200 OK
Server: squid / 3.5.26
Mime-Version: 1.0
Date: Tue, 04 Jul 2017 21 : 16 : 36 GMT
Content-Type: text / plain; charset =utf- 8
Expires: Tue, 04 Jul 2017 21 : 16 : 36 GMT
Last-Modified: Tue, 04 Jul 2017 21 : 16 : 36 GMT
X-Cache: MISS from gwen.local
Via: 1.1 gwen.local ( squid / 3.5.26 )
Connection: close

offline_mode is now ON


Squid的离线模式最大程度地减少了获取远程内容的尝试。 因为我缓存了演示过程中运行的所有内容,所以这意味着Squid将提供演示。

所以现在我可以在任何地方运行演示了,不用担心! 所有远程内容均由本地计算机提供,因此会议WiFi的好坏无关紧要。 只要我坚持已经缓存的内容,我的Web应用程序就可以完美运行。

翻译自: https://opensource.com/article/17/7/squid-proxy

ppt web 演示

ppt web 演示_如何通过糟糕的互联网现场演示Web应用相关推荐

  1. python web应用_如何使用Python将通知发送到Web应用

    python web应用 by Lucas Hild 卢卡斯·希尔德(Lucas Hild) 如何使用Python将通知发送到Web应用 (How to send notifications to y ...

  2. 开源web框架_带有酷名称的开源JavaScript和Web框架的词汇表

    开源web框架 It's getting to the point where there are so many cool open source projects that I can't kee ...

  3. 基于web 3d 演示_评论:排名前五的基于Web的演示工具比较

    基于web 3d 演示 photo credit: plural 照片来源: 复数 Recently we looked at a few alternatives that can help you ...

  4. java webpack web项目_官方出品,微信小程序和 Web 端同构解决方案——kbone

    介绍 最近在琢磨一些小程序开发和移动web开发,偶然间在Github上看到了这样一个项目--kbone,一个致力于微信小程序和 Web 端同构的解决方案.微信小程序的底层模型和 Web 端不同,我们想 ...

  5. spring创建web项目_使用Spring WS创建合同优先的Web服务

    spring创建web项目 1引言 本文介绍了如何使用来实现和测试SOAP Web服务 Spring Web Services项目 . 本示例将JAXB2用于(取消)编组. 为了开发服务,我将使用合同 ...

  6. linux下tomcat部署java web项目_在linux下用tomcat部署java web项目的过程与注意事项

    在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...

  7. 华三防火墙web端口_设置H3C SecPath F100 系列防火墙的web访问

    设置 H3C SecPath F100 系列防火墙的 web 访问 最近集团下属酒店退回一台 H3C SecPath F100-S 防火墙,自我学习巩固的同 时, 给大家带来几篇教程, 欢迎大家的拍砖 ...

  8. 学习java web感想_学了近一个月的java web 感想

    对于每天学习的新知识进行一定的总结,是有必要的. 之前我学的每一门知识,我都没有怎么总结自己的问题,也没有怎么去想想该怎样才能学的更好,把知识掌握的更牢固.从现在开始呢,我会每半个月,或每一个月总结总 ...

  9. 用myeclipse开发java web教程_转:在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程...

    本文是一篇在Myeclipse下构建Java Web项目的初级教程.图文并茂,非常详细.所用的Myeclipse版本是7.5. 第一步:新建Web Project,如下图. 第二步,在弹出的窗口填写下 ...

最新文章

  1. Laravel Lumen之Eloquent ORM使用速查-基础部分
  2. R语言聚类分析之基于划分的聚类KMeans实战:基于葡萄酒数据
  3. 用Electron开发企业网盘(二)--分片下载
  4. (转)PHP EOF(heredoc)的使用方法
  5. [BZOJ1007] [HNOI2008] 水平可见直线 (凸包)
  6. python开发环境比较好_python开发环境比较好,python 集成开发环境哪个好
  7. php连接mongoDB的几个问题
  8. css浮动(float)及清除浮动的几种实用方法
  9. Java面试题,java工程师求职简历
  10. java平移变换_java移位运算符:(左移)、(带符号右移)和(无符号右移)。...
  11. mysql——逗号分割字段情况
  12. 控制总线上发送的控制信息
  13. MATLAB 自带RS编码函数中 gf 数据转化为 double 数组的方法
  14. 更新一些CAD中比较容易混淆的概念
  15. IC前端设计使用的EDA软件
  16. 【Java面试题】一次完整的Http请求过程(非常详细)
  17. 大调查:2018中国程序员真实薪资曝光,看看你达到平均水平了吗?
  18. jquery form自动绑定表单内容
  19. vscode 下载慢解决方法
  20. GsonFormat的安装及使用

热门文章

  1. 2023最新彩虹商城时光知识付费源码/UI好看/功能强大
  2. Android使用adb命令查看APP数据流量使用情况
  3. Creator游戏开发社区「脱贫实验室No.1」
  4. Android/iOS如何识别App安装来源追踪?
  5. Faster-RCNN PRN网络解析
  6. UL认证-灯具产品UL1598标准测试项目有哪些?
  7. Unity制作《水果忍者》刀光特效
  8. 5G MEC边缘云组网方案与业务案例分析
  9. 如何Renew你的Office 365开发者订阅
  10. c语言中的sleep(time),c语言中sleep的用法