标签: http-status-code-304

如何防止Django测试服务器中的HTTP 304

我在Django有几个项目,偶尔在一个和另一个之间交替.所有这些都有一个/ media/path,由django.views.static.serve提供,它们都有一个/media/css/base.css文件.

问题是,每当我运行一个项目时,对base.css的请求都会返回HTTP 304(未修改),可能是因为时间戳没有改变.但是当我运行另一个项目时,返回相同的304,使浏览器使用前一个项目缓存的文件(因此,使用错误的样式表).

仅供记录,以下是中间件类:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.transaction.TransactionMiddleware',
)
Run Code Online (Sandbox Code Playgroud)

我总是使用默认地址http:// localhost:8000.还有其他解决方案(除了使用不同的端口 - 8001,8002等)?

django caching http-status-code-304

6
推荐指数
1
解决办法
3584
查看次数

从IIS中删除Etag和Last-Modified标头

您是否知道可以通过完全删除ETag和Last-Modifed响应头来阻止浏览器缓存中的文件重新验证以及随后的304响应

当然,这在Apache中很容易,但在IIS 6中就像泥浆一样清晰.有谁知道如何在IIS中删除这两个头文件?

etag caching iis-6 last-modified http-status-code-304

5
推荐指数
1
解决办法
3401
查看次数

304响应没有为mod_headers设置apache的自定义标头

<VirtualHost *:80>
    ServerAdmin webmaster@dev.dom.com
    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
    ServerName dev.dom.com
    ServerAlias dev.dom.com
    ErrorLog "logs/dev.dom.com-error.log"
    CustomLog "logs/dev.dom.com-access.log" common
    PassEnv CLUSTER
    Header always set X-Cluster "%{CLUSTER}e"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这是我的配置.我有一个环境变量,它告诉我我在哪个集群,它在'X-Cluster'中作为标题传递.这在200或404响应上返回正常,但304 Not Modified响应永远不会返回标头,即使它返回其他适当的Apache标头.

如何在304响应期间设置标头?

apache http-headers http-status-code-304

5
推荐指数
2
解决办法
2567
查看次数

Rails 3.1.0.rc4:304未修改.有没有已知的工作配置?

尝试rails 3.1 RC 4中的基本示例,我收到错误

Compiled app/assets/javascripts/application.js
Served asset /application.js - 304 Not Modified
Run Code Online (Sandbox Code Playgroud)

(与默认索引页面上的.css和asset/rails.png相同)

我的工作流程是:

  • rails新例子-j

  • rails g书名:string year:integer

  • rake db:migrate

我在linux 64bit和win7 32位上都出现了这个错误.我尝试了很多建议,但无法让它发挥作用.有没有人能够管理这个已知问题?任何有效的配置(宝石或资产设置配置的组合)?

[这是我的win7 gemlist:abstract(1.0.0)actionmailer(3.1.0.rc4)actionpack(3.1.0.rc4)activemodel(3.1.0.rc4)activerecord(3.1.0.rc4)activeresource(3.1.0. rc4)activesupport(3.1.0.rc4)arel(2.1.3)bcrypt-ruby(2.1.4 x86-mingw32)builder(3.0.0)bundler(1.0.15)coffee-script(2.2.0)coffee-script -source(1.1.1)erubis(2.7.0)execjs(1.2.0)hike(1.1.0)i18n(0.6.0)jquery-rails(1.0.12)json(1.5.3)mail(2.3.0) )mime-types(1.16)multi_json(1.0.3)polyglot(0.3.1)rack(1.3.0)rack-cache(1.0.2)rack-mount(0.8.1)rack-ssl(1.3.2)rack -test(0.6.0)rails(3.1.0.rc4)railties(3.1.0.rc4)rake(0.9.2)rdoc(3.7)sass(3.1.3)sass-rails(3.1.0.rc.3) )sprockets(2.0.0.beta.10)sqlite3(1.3.3 x86-mingw32)thor(0.14.6)倾斜(1.3.2)树顶(1.4.9)tzinfo(0.3.29)uglifier(1.0.0) win32-open3(0.3.2 x86-mingw32)]

assets http-status-code-304 ruby-on-rails-3.1

5
推荐指数
1
解决办法
2351
查看次数

Internet Explorer使用304 Result通过Ajax Pull显示缓存数据

我有一个在Chrome和FF中完美运行的工具.但是对于任何版本的IE浏览器都会显示缓存信息而不是执行Ajax拉取以检索数据.

这是我的设置:

我有循环的标准:

@foreach (var item in Model)
{
        <div class="sizeTDCriteria">
            @Html.DisplayFor(modelItem => item.Text)
        </div>
        <div class="sizeTDCriteriaAction">
            @Ajax.ImageActionLink(Url.Content("~/Content/images/icons/edit.png"), "Edit Criteria", "AddOrEditCriteria", "Management", new { competencySectionId = ViewBag.competencySectionId, criteriaId = item.Id }, new AjaxOptions { UpdateTargetId = "AddOrEditCriteriaFormContainer" }, new { @class = "iconPosition" })
            @Ajax.ImageActionLink(Url.Content("~/Content/images/icons/delete.png"), "Delete Criteria", "RemoveCriteria", "Management", new { criteriaId = item.Id }, new AjaxOptions { UpdateTargetId = "CompetenciesManagementWrapper" }, new { @class = "iconPosition" })
        </div>
}
Run Code Online (Sandbox Code Playgroud)

ImageActionLink只是一个帮助器,可以创建一个内部带有图像的ActionLink,我尝试使用普通的ActionLink进行此操作,同时也会出现问题,因此您可以忽略它.我也尝试用一个<img>带有jQuery触发器的plain来改变整个ImageActionLink ,没有任何区别.

当用户点击编辑链接时,它会对"AddOrEditCriteria"执行ajax调用,ActionResult会找到条件,并将PartialView表单显示回div"#AddOrEditCriteriaFormContainer".到目前为止一切顺利,这在所有浏览器中都能正常运行

但是,当我第二次点击该编辑时,不是进行ajax调用,IE只是显示PartialView,而不是它在缓存中的内容,当所有其他浏览器再次正确地提取数据时(这是必需的,因为该视图允许编辑标准,它可能已被其他人同时编辑).

奇怪的部分是IE正在进行调用但不知何故它从未到达服务器,它只是通过使用结果304来使用缓存.您可以从此网络捕获中看到:

URL Method  Result …
Run Code Online (Sandbox Code Playgroud)

c# internet-explorer http-status-code-304 asp.net-mvc-3

5
推荐指数
1
解决办法
2801
查看次数

浏览器多次发送对相同内容(PNG 图像)的请求

我有一个名为icons.png的 PNG 文件托管在apache服务器上。基本上这个文件是其他小图像元素(CSS Sprite)的组合。当页面第一次加载时,此文件会以正常的200 OK响应加载。

页面加载后;有一些链接悬停在其上触发自定义工具提示。此工具提示icons.png文件中的部分图像显示为某些HTML 元素的背景图像

例如 HTML 代码是这样的:

jQuery(".profile").tipTip({delay: 200, defaultPosition: "top", content: "<a href='#' style='width: 32px; height: 32px; display: block; 背景:网址(图像/图标.png) no-repeat -200px -64px'></a>"});

[HTML 文件中还有一些其他地方引用了icons.png ]


现在,每次我将鼠标悬停在链接上时,都会显示工具提示,但同时浏览器会向服务器发送一个 HTTP 请求以获取icons.png文件。来自服务器的响应代码是304 Not Modified

虽然没有获取文件的内容,但是每次发送标头(大约 166 字节)的开销仍然存在,这反过来又导致了1.5 秒延迟我的连接速度很慢)。在这段 1.5 秒的时间里,工具提示元素没有背景图像 & 突然图像突然出现。


这是一些屏幕截图

  • Chrome 网络面板:

铬合金

  • 萤火虫网面板:

火狐

  • HTTP 标头: …

cache-control browser-cache http-status-code-304

5
推荐指数
1
解决办法
4687
查看次数

ETag 是否使 Cache-Control 标头无效?

我正在从 RESTful Web 服务中获取资源,并在响应中添加以下两个标头:

Cache-Control: public, max-age=120
ETag: "3D03F8066015A1438532E049AE5E16EA"
Run Code Online (Sandbox Code Playgroud)

浏览器第一次收到这个响应时,它正确地缓存了 2 分钟。

但是,下次我请求资源时,我的浏览器现在发送了一个IfNoneMatch标头,并按304 Not Modified预期获得了一个标头,以及另一个Cache-Control要缓存 2 分钟的标头。

但是浏览器没有缓存响应。我不断刷新页面,它不断提出请求,因此不断获得304 Not Modified.

这是正常行为吗?

我如何告诉浏览器在获得 2 分钟后重新验证其缓存资源304 Not Modified,并且不再发出任何请求?

etag caching http-headers http-status-code-304 if-none-match

5
推荐指数
0
解决办法
914
查看次数

Flask - 为我的外部 .css 文件获取 304 状态

我正在构建一个网络应用程序。以前在我的项目目录中工作的所有外部链接都运行良好,但我注意到昨天每次修改 .css 文件时它根本没有呈现此更改。无论我什至删除整个 .css 文件内容,它实际上都以相同的样式冻结。

这是我运行烧瓶时得到的响应:

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger pin code: 230-950-485
127.0.0.1 - - [09/Mar/2017 17:53:09] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [09/Mar/2017 17:53:10] "GET /static/css/main.css HTTP/1.1" 200 -
127.0.0.1 - - [09/Mar/2017 17:53:10] "GET /static/js/main.js HTTP/1.1" 200 -
127.0.0.1 - - [09/Mar/2017 17:53:10] "GET /static/css/main.css HTTP/1.1" 304 -
127.0.0.1 - - [09/Mar/2017 17:53:14] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - …
Run Code Online (Sandbox Code Playgroud)

html css python http-status-code-304

5
推荐指数
1
解决办法
3559
查看次数

在Rails 3.2.3服务器中我得到错误304未修改(5ms)

我现在是ruby和rails的新手几个月了.我参加了红宝石和铁轨课程,这让我可以创建一个餐馆博客网站.好吧,我最近开始改造网站,为我的朋友.因此,它仅仅是改变图片,措辞等方面的一些东西.当我完全创建另一个博客时,我创建了一个登记页面登录页面,他们需要创建一个登录以创建和发布评论等.一切似乎当我为本地主机服务器运行rails时工作正常,但是当我为站点创建一个登录以确保一切正常时.它不允许我创建一个登录,并在我的rails服务器中不断收到错误.见下文!我搜索和搜索,似乎无法找到解决方案.我唯一真正改变的是一些图片和一些措辞.我没有搞乱编码登录,创建登录代码等.任何帮助都会很好,我将继续搜索.在此之前我得到了一个内容长度错误,所以我关注了这个网站http://theresa.multimediatechnology.at/webrick-warnings-in-ruby-1-9-3/.这似乎解决了这个问题,但现在我得到了以下内容.谢谢!

 whitey7@whitey7:~/poe$ rails s
 => Booting WEBrick
=> Rails 3.2.3 application starting in development on
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-07-28 08:59:58] INFO  WEBrick 1.3.1
[2012-07-28 08:59:58] INFO  ruby 1.9.3 (2012-04-20) [x86_64-linux]
[2012-07-28 08:59:58] INFO  WEBrick::HTTPServer#start: pid=4690 port=3000


Started GET "/reviews/register" for 127.0.0.1 at 2012-07-28 09:00:04 -0400
Processing by ReviewsController#register as HTML
  Rendered reviews/register.html.erb within layouts/application (5.9ms)
Completed 200 OK in 75ms (Views: 73.8ms | ActiveRecord: 0.0ms)


Started GET "/assets/reviews.css?body=1" for 127.0.0.1 …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails http-status-codes http-status-code-304

2
推荐指数
1
解决办法
3843
查看次数

jQuery ajax ifModified在调用缓存响应时没有荣幸,应该是304

我正在使用jQuery ajax从ASP.Net MVC应用程序中检索json,并且在进行ajax调用时我没有看到预期的结果ifModified = true.

我正在使用jQuery 1.9.1和Chrome版本26.0.1410.64 m

当使用新的浏览器实例并对已经缓存的内容进行初始请求时,即使在ajax配置中设置了ifModified = true,也不会调用服务器来检查缓存状态.在来自同一浏览器实例的后续请求中,(预期)对服务器进行调用,服务器以304响应.

在初始请求中,浏览器网络跟踪显示内容是从状态为200的缓存传递的,即使从未检查过修改日期.Fiddler没有显示任何请求,并且ASP.Net MVC控制器中的断点未被命中.

这是一个错误,还是有办法让它正常工作?如果它是一个错误,它是一个jQuery错误还是Chrome错误?

这是一个简化的ajax调用:

var req = $.ajax({
    type: "GET",
    dataType: "json",
    url: "/JsonTest/GetJson",
    ifModified: true,
    success: function (data, status, jqXHR) {
        if (data === undefined && status == "notmodified") {
            $.ajax({
                type: this.type,
                dataType: this.dataType,
                url: this.url,
                ifModified: false,
                success: this.success,
                error: this.error,
                complete: this.complete
            });
        } else {
            alert($.toJSON(data));
        }
    },
    error: function (jqXHR, status, error) {
        alert(error);
    },
    complete: function (jqXHR, status) {
    } …
Run Code Online (Sandbox Code Playgroud)

ajax jquery caching google-chrome http-status-code-304

2
推荐指数
1
解决办法
6369
查看次数