- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
(这个问题很奇怪,我承认。它本质上是一个“假设”的问题,不是我需要的任何项目。如果你能纠正我在下面做的任何假设,我将不胜感激这不是真的——我肯定不是网络工程师!)
是否可以使用 DNS txt 记录(或新记录)来缓存整个 .css/.js 文件以用于网页浏览?
我怀疑最简单的方法(如果可能的话)是使用 browserify 和小型 DNS 客户端来“挖掘”一个定制的 node.js DNS 服务器,该服务器经过训练可以用整个静态文件 (.css) 进行回复,.js)。示例请求可能是:jquery.min.js.example.com 其中 txt 记录响应将是 jquery.min.js 的全部内容。它甚至可以是像 7fba88.js.example.com 这样的部分散列,因此可以验证结果文件来自“未中毒”的 DNS 缓存,在浏览器的回复上运行 javascript 散列。
我怀疑 DNS 协议(protocol)可能比 HTTP 协议(protocol)更快(开销更少,UPD 与 TCP 相比)并且还可以提供更好的缓存形式。 DNS txt 请求(以 255 字节的 block ...)可能能够缓存在您的本地主机上,以用于您访问的任何网站——以及任何网络浏览器——并且通常也由您的 ISP 缓存。
HTTP 请求也有缓存,但没那么好。如果 .css 文件与已经下载到浏览器的文件相同,浏览器仍需要连接到 HTTP d(或像 CloudFlare.com 这样的 CDN)才能获得 304 响应。 (请忽略离线缓存 list 。)此外,如果您在浏览器中打开一个新选项卡,该新选项卡将再次为同一站点请求这些静态文件。
我想很多 ISP 服务器管理员看到他们的 DNS 缓存被静态文件填满会非常恼火。我不知道他们在那种情况下会怎么做,也许他们会禁止对您的域进行缓存,这可不好。
有什么想法吗?
@Joe 的回答:在这个假设的场景中,一个 DNS 客户端,可能是 browserify 和 this module or similar , 将在 head-tag 中运行并在显示 body-tag 之前拉出其余的静态内容。它与 websocket 连接没有太大区别,因为它会在网页内运行。
最佳答案
这种方式的主要问题是浏览器无法发送UDP数据包。
如您所述,请参阅此处讨论 DNS TXT 记录潜在漏洞的文章:DNS TXT records represent vulnerability for caching DNS servers .如文章中所述,系统管理员和公共(public) DNS 服务器管理员可能会完全禁用 TXT 记录的缓存,这将阻止将其用作有效的缓存机制。
native-dns不会让浏览器自己发送 DNS 请求。 HTTP 请求由浏览器发送到 Node.js DNS server module它将处理服务器上的 DNS 请求并将回复发送到浏览器。因此,您仍然需要向浏览器返回 HTTP 200
或 304
响应,而后者将需要更多工作,因为您必须实现自己的服务器端缓存机制以确定文件是否已更改。
关于http - DNS 请求(例如 txt 记录)是否可以用于提供 .css 和 .js 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27758733/
我知道我要求太多,但也许你也可以帮助解决这个问题。 a.txt 包含单词,b.txt 包含字符串。 我想知道 b.txt 中有多少个字符串以 a.txt 中的单词结尾 例子:一个.txt apple
这个问题在这里已经有了答案: erge text files ordered by numerical filenames in Bash (3 个答案) 关闭 4 年前。 我有一个文件夹,其中包含
我在一个目录中有几个平面文件 (.txt)。所有这些文件的格式都是 *.txt.txt,所以我想将其重命名为 *.txt?有什么简单的方法可以一起重命名? 当我尝试 ren *.txt.txt *.t
这个问题在这里已经有了答案: How can I use a file in a command and redirect output to the same file without trunc
您是否有任何理由应该或不应该允许访问 javascript 或 css 文件?特别是常见的文件,如 jquery。 最佳答案 人们普遍认为,搜索引擎每天为给定站点分配一定数量的带宽或 URL。因此,一
Closed. This question is off-topic。它当前不接受答案。 想要改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。 已关闭
这是相同的代码。我面临的问题是,我无法在任何文件上写入任何内容。请帮忙解决这个问题 #include #include int main() { FILE *fe; FILE *fo;
我想要特定于域的 robots.txt,到目前为止这有效: RewriteRule ^robots\.txt$ robots/%{HTTP_HOST}.txt [L] 但我希望有一个后备方案,因此如果
我正在调试一些构建成功运行的 SQL 命令的代码。 然而,在查询结束时,查询结果似乎被写入了一个文本文件。 完整的查询如下 echo SELECT DATE,DATETABLE,DATE,APPDAT
这个问题已经有答案了: difference between grep Vs cat and grep (5 个回答) 已关闭 8 年前。 我看到一个例子,其中有人这样做: cat source.tx
我想将表中的数据从以 csv 格式存储的文本文件插入到 sql server 表中。为此,我正在使用批量插入语句。现在我需要在“From”子句中指定文件名。我不想在那里使用网络位置或本地位置。我想将我
假设我有一个测试文件夹 (test.domain.com) 并且我不希望搜索引擎在其中抓取,我是否需要在测试文件夹中有一个 robots.txt 或者我可以只放置一个 robots.txt在根目录中,
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
这个问题在这里已经有了答案: order of directives in robots.txt, do they overwrite each other or complement each ot
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 8年前关闭。 Improve this
已关闭。这个问题是 not about programming or software development 。目前不接受答案。 这个问题似乎不是关于 a specific programming
在过去的几年中,当我引用“名字”字段的文本框控件时,我一直使用 FirstNameTxt 命名约定。但是,我注意到大多数其他开发人员倾向于使用命名约定 txtFirstName 哪个是最好的约定?为什
我只想允许目录 /minsc 中的一个文件,但我想禁止该目录的其余部分。 现在 robots.txt 中是这样的: User-agent: * Crawl-delay: 10 # Directorie
我正在编写一个将 youtube.com 映射到另一个域的代理服务器(因此用户可以轻松地从德国等国家/地区访问 youtube,而无需审查搜索结果和视频)。 不幸的是,我的 robots.txt 中存
我没有编程技能,但有一项非常具体的任务:我必须将一个庞大的文本文件拆分成多个,并在特定的文本标记 (@) 处拆分它们。我决定尝试使用 Powershell 脚本来完成此任务。 到目前为止,这就是我想出
我是一名优秀的程序员,十分优秀!