当我发送304响应时.浏览器将如何解释我与304一起发送的其他标头?
例如
header("HTTP/1.1 304 Not Modified");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
Run Code Online (Sandbox Code Playgroud)
这是否会确保浏览器不会发送另一个有条件的GET请求(也没有任何请求),直到$ offset时间"用完"?
另外,其他标题呢?
我应该像304一样发送这样的标题:
header('Content-Type: text/html');
Run Code Online (Sandbox Code Playgroud)
我必须发送:
header("Last-Modified:" . $modified);
header('Etag: ' . $etag);
Run Code Online (Sandbox Code Playgroud)
为确保浏览器在下次$ offset已"用完"时发送条件GET请求,或者只是保存旧的Last Modified和Etag值?
发送304响应标头时是否还有其他事项需要注意?
是否可以在Node.js上使用WebRTC数据通道,以模仿Socket.io(WebSockets)的功能(最好是API),除非使用UDP?
本质上,我希望有一个运行Node.js的服务器,浏览器客户端可以通过JavaScript建立全双工双向UDP连接.
我正在使用带标题的数组.每个标题索引对应于数据库中的id,该id包含该给定标题的html.
假设我有一个包含其中一个标题的字符串.
title = "why-birds-fly";
titles[] // an array which contains all the titles
Run Code Online (Sandbox Code Playgroud)
要使用字符串"title"来获取相应的ID,我可以这样做:
for (i = 0; i < titles.length-1; i++) {
if (titles[i] == title)
return i+1;
}
Run Code Online (Sandbox Code Playgroud)
我可以使用的另一种方法是创建一个关联数组和titles数组,这与titles完全相反.也就是说,它使用字符串作为索引并返回数字.
titles_id {blah:0,why-birds-fly:1,blah2:2}
Run Code Online (Sandbox Code Playgroud)
然后我可以通过以下方式访问ID:
return titles_id[title]+1;
Run Code Online (Sandbox Code Playgroud)
考虑到CPU,内存等,最有效的是什么?
另外,如果我的逻辑完全错误,请告诉我.
谢谢威廉
我正在向一个PHP应用程序发送AJAX GET请求,并希望缓存请求返回以供以后使用.
由于我使用GET,因此不同的请求请求不同的URL(例如getHTML.php?page = 2和getHTML.php?page = 5).
我需要在PHP应用程序中声明哪些标头,以使客户端浏览器以正确的方式缓存请求URL内容?我是否需要在处理AJAX请求的Javascript中声明任何内容(我使用jQuery的$ .ajax函数,它具有缓存参数)?
我如何处理更改例如getHTML.php?page = 2的内容的编辑,以便客户端不会回退到缓存版本?向GET请求添加另一个参数,例如getHTML.php?page = 2&version = 2是不可能的,因为无需任何检查(最好是我想要的方式),自动创建到请求的URL的链接.
当我尝试AJAX请求缓存的请求URL时,浏览器将如何反应?AJAX请求会立即返回成功吗?
谢谢
威廉
简单的问题.我的.htaccess中可以有多少RewriteRules是否有限制,或者我可以将其中的大量RewriteRules放在那里,而Apache不会对我产生任何问题?
是否存在服务器简单潜水的相对限制因为需要迭代的许多规则?
谢谢!
这是XMLHttpRequest:
$.ajax({
method: "get",
url: "getPage.php",
data: $data,
dataType: 'json',
timeout: 2000,
success: function(result) {
handleContent(result);
}
});
Run Code Online (Sandbox Code Playgroud)
这是getPage.php?data = data
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
header("Cache-Control: max-age=" . $offset . ", public");
header("HTTP/1.1 301 Moved Permanently");
header("Location: $location);
Run Code Online (Sandbox Code Playgroud)
这是$ location:
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
header("Cache-Control: max-age=" . $offset . ", public");
print $print;
Run Code Online (Sandbox Code Playgroud)
客户端浏览器正确缓存$ location.但是它不会在getPage.php?data = data中缓存重定向
每次调用ajax-request时,它都会请求GET getPage.php?data = …