标签: server

Chrome会忽略ETag标头,只使用内存缓存/磁盘缓存

如果我理解正确,使用ETags的流程就像现在描述的那样:

  • 浏览器将请求发送到服务器.服务器使用ETag发回图像
  • 浏览器将资源与ETag一起保存
  • 在下一个请求中,浏览器使用If-None-Match包含已保存ETag 的标头发送请求.

返回响应时,chrome dev工具告诉我这些是我的标题

Cache-Control:max-age=7200
Connection:keep-alive
Content-Type:image/png
Date:Thu, 27 Apr 2017 13:42:57 GMT
ETag:"b36f59c868d4678033d318a182658e18371df8f5"
Expires:Thu, 27 Apr 2017 15:42:57 GMT
Server:nginx
Transfer-Encoding:chunked
X-Debug-Token:873c8f
X-Debug-Token-Link:http://localhost:8081/_profiler/873c8f
Run Code Online (Sandbox Code Playgroud)

现在,当我重新加载页面时,不会收集新图像.它可以通过Chrome的内存缓存或磁盘缓存保存,如您所见

Chrome开发标签

但为什么会这样呢?我发送了一个ETag,为什么浏览器不向服务器发出另一个请求,而是使用它自己的缓存?

我问的原因是,我们想要缓存我们的图像,但是一旦它们发生变化,它们应该立即更新.为什么Chrome会这样做?

更新
我刚注意到它在Firefox上很有用,所以这似乎是一个chrome"功能"而不是配置.

更新2
为此图像设置我的新标题后

Cache-Control:max-age=0, private
Connection:keep-alive
Content-Type:image/png
Date:Thu, 27 Apr 2017 14:44:57 GMT
ETag:"e5b18bdebe44ed4bba3acb6584d9e6a81692ee27"
Expires:Fri, 27 Oct 2017 14:44:57 GMT
Server:nginx
Transfer-Encoding:chunked
X-Debug-Token:3447a6
X-Debug-Token-Link:http://localhost:8081/_profiler/3447a6
Run Code Online (Sandbox Code Playgroud)

Chrome仍然使用磁盘缓存来处理数据.这是我的nginx吧

location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
  access_log off;
  add_header Cache-Control "max-age: 0, must-revalidate";
}
Run Code Online (Sandbox Code Playgroud)

更新3
我刚做了一些进一步的研究.设置Expires标记后,Chrome会立即使用内存或磁盘缓存.与...相同max-age.我不明白,即使must-revalidate设置,只要Expiresmax-age=>0设置,Chrome不重新加载的ressource.

google-chrome http nginx server

10
推荐指数
2
解决办法
4970
查看次数

Jitsi服务器对测试环境的硬件要求

我们正在使用 Jitsi 实现安全的视频会议/聊天。我们找不到 Jitsi 服务器的任何硬件要求。您能否分享您对测试和生产环境中 Jitsi 服务器的硬件要求的看法?

谢谢,赛义德

hardware video-conferencing jitsi server

10
推荐指数
1
解决办法
7895
查看次数

java.lang.IllegalArgumentException:从给定视图中找不到合适的父级.请提供有效的观点

我的应用程序在尝试显示服务器消息时崩溃,我认为问题可能出在我的身上getView().下面是registerActivity崩溃发生和我的activity_register.xml

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.fastchat.helper.SQLiteHandler;
import com.fastchat.helper.SessionManager;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;


public class RegisterActivity extends Activity {

private static final String TAG = RegisterActivity.class.getSimpleName();
private Button btnRegister;
private Button btnLinkToLogin;
private EditText inputFullName;
private EditText inputEmail;
private EditText inputPassword;
private ProgressDialog pDialog;
private SessionManager session;
private SQLiteHandler …
Run Code Online (Sandbox Code Playgroud)

java android web server

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

无法连接到 Wildfly

我刚刚安装Wildfly并尝试连接它:

\wildfly-11.0.0.Final\bin>jboss-cli.bat -c
Run Code Online (Sandbox Code Playgroud)

但是给了我以下错误:

无法连接到控制器:控制器在 localhost:9990 上不可用:java.net.ConnectException:WFLYPRT0053:无法连接到远程+ http://localhost:9990。连接失败:WFLYPRT0053:无法连接到远程+ http://localhost:9990。连接失败:连接被拒绝:没有更多信息

我尝试了很多解决方案,但对我不起作用。

java wildfly server

10
推荐指数
2
解决办法
3万
查看次数

如何复制并粘贴到数字海洋中的控制台?

数字海洋中的控制台是这样的:

在此处输入图片说明

我尝试复制并粘贴我的用户名和密码,但它不起作用

我尝试 ctrl+v 并右键单击鼠标。这是行不通的

我该怎么做?

console paste digital-ocean server

10
推荐指数
3
解决办法
5648
查看次数

Express:有必要回复200状态吗?

是否有必要使用状态200代码进行响应还是默认行为?

response.json({
  status: 'OK',
});
Run Code Online (Sandbox Code Playgroud)

response
  .status(200)
  .json({
    status: 'OK',
  });
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中点击路线时,在这两种情况下我都会收到 200 响应

在此输入图像描述

到目前为止,我只对 200 之外的其他响应使用状态代码(例如 404、500)

javascript http node.js express server

10
推荐指数
1
解决办法
4486
查看次数

如何将 returnUrl 传递到 Blazor Server 应用程序中的登录页面?

我有一个简单的 Blazor 服务器应用程序,身份使用个人身份验证。我从 VS 2019 标准dotnet new模板创建了该应用程序。

在应用程序的某些部分,我想将用户定向到登录页面,同时传递一个returnUrl参数。我尝试了以下代码变体来传递此参数(counter是我要返回的页面):

NavigationManager.NavigateTo("Identity/Account/Login?returnUrl=counter", forceLoad: true);
Run Code Online (Sandbox Code Playgroud)
NavigationManager.NavigateTo("Identity/Account/Login?returnUrl='/counter'", forceLoad: true);
Run Code Online (Sandbox Code Playgroud)
NavigationManager.NavigateTo("Identity/Account/Login?returnUrl='./counter'", forceLoad: true);
Run Code Online (Sandbox Code Playgroud)
NavigationManager.NavigateTo("Identity/Account/Login?returnUrl='~/counter'", forceLoad: true);
Run Code Online (Sandbox Code Playgroud)

但是,对于所有这些,我收到一条错误消息,指出“URI 不是本地的”。错误信息是:

“InvalidOperationException:提供的 URL 不是本地的。具有绝对路径的 URL 如果没有主机/权限部分,则被认为是本地的。使用虚拟路径 ('~/') 的 URL 也是本地的。”

在这种情况下,有人可以建议正确格式化 returnUrl 参数吗?有关更多背景信息,我正在关注@iambacon(感谢 Colin!)在他关于重定向到 Blazor 应用程序登录页面的博客文章中的建议。这是一篇很棒的文章,完成了我想要的部分内容:当用户未通过身份验证时重定向到登录。我只想添加在身份验证完成后返回该 URL 的额外功能。

c# identity server blazor

10
推荐指数
1
解决办法
6655
查看次数

存储许多缩略图的有效方式

所以目前我将所有缩略图存储在一个目录中,文件名作为完整大小图像的完整路径的 md5 哈希值。但是我在这里读到,当目录达到数千个文件时,这会导致问题。它们将被 linux 文件系统定位得越来越慢。

考虑到我只能通过原始图像路径找到缩略图,我有哪些选择?日期将是最好的选择,例如year/month/day/md5_hash.jpg,但这需要我从某个地方存储和读取日期,因此需要添加一些额外的步骤。

我正在考虑拆分 md5,例如前两个字符 = 子文件夹名称,其余 = 文件名。这会给我 15*15 个子文件夹,但我想听听更好的选择,谢谢!


我刚刚得到的另一个想法是:创建一个单独的服务器来组织缩略图。服务器将跟踪缩略图计数并在达到某个限制时创建其他文件夹,并在删除缩略图时重新使用旧文件夹。缺点是我需要一个单独的数据库来将哈希映射到缩略图路径:(

directory-structure image thumbnails organization server

10
推荐指数
3
解决办法
869
查看次数

找不到 ProviderSettings 类,它显示无法解析符号 ProviderSettings

我是 Spring Boot 空间的新手。我正在按照教程学习创建 OAuth 身份验证服务器。

配置AuthorizationServerConfig.java讲师时,从包“org.springframework.security.oauth2.server.authrization.config”导入“ProviderSettings”类

但是,我没有从该特定包中获得该类。

我缺少任何依赖项吗?或者该课程现在不可用?

参考文献 1:错误点。无法解析符号 ProviderSettings

@Bean
    public ProviderSettings providerSettings(){
        return ProviderSettings.builder()
                .issuer("http://auth-server:9000")
                .build();
    }
Run Code Online (Sandbox Code Playgroud)

参考2:pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>np.com.oskarshrestha</groupId>
    <artifactId>Oauth-authorization-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Oauth-authorization-server</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency> …
Run Code Online (Sandbox Code Playgroud)

authentication spring spring-security classnotfoundexception server

10
推荐指数
1
解决办法
3196
查看次数

使用.NET和Xamarin的服务器客户端应用程序

我在互联网上搜索了很多时间,但是找不到与我的情况相符的任何东西.

我只想用TCP或UDP实现一个服务器/客户端应用程序,其中我的Android App(Xamarin)充当服务器,我的.NET应用程序充当客户端.由于我没有太多的应用程序开发经验和没有Xamarin的经验,我一直在寻找一个例子.我发现的只有:

http://www.codeproject.com/Articles/340714/Android-How-to-communicate-with-NET-application-vi

首先,这是相反的方式(服务器在.NET和客户端作为应用程序),另外它是为Android Studio所以我很难将这些东西翻译成Xamarin而没有错误.

请有人帮忙,并举例说明如何实现我的问题?

谢谢!

.net c# client xamarin server

9
推荐指数
1
解决办法
1万
查看次数