标签: http

我应该提供压缩的 PDF 吗?

我想知道是否有一个通用的经验法则来启用 PDF 文件的 gzip 压缩。我使用 NGINX,但我认为这对 Apache 用户也有帮助。

谢谢。

http pdf gzip

4
推荐指数
1
解决办法
1072
查看次数

“通过:HTTP/1.1 GWA”HTTP 标头 - 它是什么?

我的一位客户在他们的网站上安装了一些东西,这使得他们的所有资源都从 googleusercontent.com 域加载。所有 HTTP 请求还具有以下标头:

Via: HTTP/1.1 GWA
Run Code Online (Sandbox Code Playgroud)

我对这个特定标题的所有搜索都显示“Google Web Accelerator”,一种客户端技术于 2006 年停止使用。我当然没有安装它(即使我安装了,我很确定 wget -S 不会利用它)。

你能指出我在这个网站上使用的产品吗?它可能是某种缓存,如 Cloudflare 或 Torbit,但来自 Google。

http google

4
推荐指数
1
解决办法
5376
查看次数

Apache tomcat server win8 本地主机外无法访问

我已经在我的本地 win7 上安装了 apache-tomcat 服务器。我指定的端口是 9999。另外,我使用 apache tomcat 的分布式二进制版本。不安装为 Windows 服务。

我可以通过http://localhost:9999和访问我的服务http://myIPAddress:9999

但是我无法从其他计算机访问我的 apache 服务器。我在互联网上搜索,发现我应该在其高级设置中添加防火墙入站规则。

  1. 右键单击左侧窗格中的“入站规则”
  2. 选择“新规则”
  3. 选择“端口”
  4. 在“特定端口”下输入您的端口号 (9999)
  5. 继续“下一步”直到向导结束,并在询问时命名规则。

这样做之后,还是不行!!

我已经用“netstat -na”检查过: TCP 0.0.0.0:9999 0.0.0.0:0 LISTENING

到目前为止,我找到的唯一方法是关闭我的 Windows 防火墙!但这不是首选,因为存在潜在的安全风险。

一些在线帖子是指 httpd.conf 文件。但是我的 apache-tomcat 没有这种火。

有人能给我一些提示吗?


编辑:

文件中有三个与端口号设置相关的地方/conf/server.xml。

<Server port="8005" shutdown="SHUTDOWN">

<Connector port="9999" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />//我把 8080 改为 9999 供我自己使用。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

http tomcat windows-firewall apache-2.2

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

如何配置 Varnish 不缓存特定文件夹?

我想将 Varnish 设置为 Apache 的反向代理缓存。

如何设置 Varnish 使其不缓存来自特定文件夹(及其子文件夹)的内容,例如 /public_html/shop/

http cache varnish apache-2.2

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

用于 Windows 的 iptables 重定向流量

我目前正在测试我的服务器流量,并希望路由所有传入+传出流量,以便 Burpsuite 进行分析。

理想情况下,来自端口 80 和 443 的所有流量都应通过端口 8080 路由。在 Linux 中,这对 iptables 来说很简单,但我想在 Windows 中执行此操作。建议?

windows http iptables port

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

在 HTTP 中,最初请求的域名是否有任何相似之处,后 DNS 解析?

我对DNS 解析和 Web 浏览器如何工作的理解如下:

  1. 您的浏览器使用最终将其连接到您的注册商名称服务器的 DNS 系统
  2. 然后,您的注册商的名称服务器最终将映射的 IP 地址发送回您的浏览器
  3. 然后,您的浏览器与注册商的名称服务器返回的 IP 地址建立直接 HTTP 连接

如果我到目前为止所说的任何内容不准确或具有误导性,或者遗漏了任何主要组件,请首先纠正我!

假设我对 DNS 解析和 IP 地址查找的理解或多或少处于正轨,那么我有以下问题:

浏览器将域名解析为 IP 地址(通过 DNS)后,会与该 IP 地址建立直接 HTTP 连接。 这样做时,有没有参考任何最初请求的URL?

换句话说, sayblah.example.com被解析为一个 IPv4 地址1.2.3.4。对 的请求http://blah.example.com/fizz将被转换为对 的请求http://1.2.3.4:80/fizz。我的问题是:在第二个请求(直接引用 IP 地址)中,是否有任何标头/元数据引用blah.example.com?

我查看了Wikipedia 的标准 HTTP 请求标头列表,令我沮丧的是,找不到任何突出的标头。我想我有点希望像这样的标题Requested-URL,等等。

必须有某种方式将第二个 HTTP 请求绑定到最初请求的名称,否则我认为代理或负载平衡器永远无法工作。

domain-name-system http proxy

4
推荐指数
1
解决办法
313
查看次数

RHEL Nginx SSL 与非 SSL 性能差异巨大。

我正在设置 Nginx 1.8 反向代理。

简而言之 -

提供 HTML 内容 HTTP 流量比 HTTPS 快 50 倍。

提供 ProxyPass HTTP 流量的速度比 HTTPS 快 7 倍。

操作系统是 RHEL7

硬件:

2 core VMWare Intel(R) Xeon(R) CPU E5-2609 v3 @ 1.90GHz
cpu MHz         : 1897.802
cache size      : 15360 KB
bogomips        : 3795.60
1 Gbit network card
Run Code Online (Sandbox Code Playgroud)

基准测试客户端是 Apache bench,1 跳远,ping 1ms。Apache bench 在运行时使用以下 TLS 协议:

TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Run Code Online (Sandbox Code Playgroud)

服务器 SSL 证书 2048 位 RSA。OCSP 装订已打开并已验证。

/etc/sysctl.conf 有

net.ipv4.ip_local_port_range=1024 65000
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_fin_timeout=15
net.core.netdev_max_backlog=4096
net.core.rmem_max=16777216
net.core.somaxconn=4096
net.core.wmem_max=16777216
net.ipv4.tcp_max_syn_backlog=20480 …
Run Code Online (Sandbox Code Playgroud)

ssl http redhat nginx https

4
推荐指数
1
解决办法
2239
查看次数

Invoke-WebRequest - 即使出现错误也存储请求内容?

我正在使用 Powershell Invoke-WebRequest(这也适用于Invoke-RestMethod)来调用 ElasticSearch 集群。此特定命令通常会返回错误结果 ( 409 conflict)。

Powershell 看到错误状态,抛出一个错误并且没有通过管道传递任何有用的东西,并将响应的主体喷到控制台上:

在此处输入图片说明

但是,a) 即使它有一个错误代码,我也不在乎它是否出错了(只是它被返回了),并且 b) 我希望能够访问该响应的正文,以便我可以实际检查其中包含的数据。

有没有办法让 PowerShell 抑制错误输出(-ErrorAction不起作用)并沿管道传递一些有用的东西?

作为说明,我实际上想用Invoke-RestMethod它来调用它,但是因为它Invoke-WebRequest本质上是相同的命令,所以我将这个问题概括为Invoke-WebRequest

powershell http error-handling

4
推荐指数
1
解决办法
6257
查看次数

nginx add_header 在我的位置之一不起作用

我使用 nginx 1.10.1 与类似的配置:

server {

    (...)

    add_header Header1 "value";

    (...)

    # in this location above add_header directive works
    location / {
         uwsgi_pass unix:/var/run/some.sock;

         (...)
    }

    # ..and it this one it doesn't!
    location ~* (^/$|favicon.ico|robots.txt) {
        return 204;
        expires 24h;
        add_header Cache-Control "public";
        etag on;
    }
}
Run Code Online (Sandbox Code Playgroud)

..所以我的问题是 Header1 是为第一个位置处理的请求设置的,但不是为第二个位置设置的。

为什么?

我已经阅读了add_header文档并知道它默认仅适用于“正”返回代码,但 204 是其中之一(我实际上已经测试过将代码更改为 200、404 并且没有帮助)。

(我也尝试添加always到我的add_header Header1 ...但这是一个相当绝望的尝试,因为它不应该有帮助 - 而它没有。)

http nginx http-headers

4
推荐指数
1
解决办法
2359
查看次数

Nginx 中的 HSTS:是否也应该在子域服务器块中添加 Strict-Transport-Security 标头?

让我们采取以下nginx.conf与配置文件server的块example.com和subdomain.example.com:

http {
    ...

    server {
        listen [::]:80 ipv6only=off default_server;
        server_name example.com;
        return 301 https://example.com$request_uri;
    }
    server {
        listen [::]:443 ipv6only=off ssl default_server;
        server_name example.com;
        add_header Strict-Transport-Security
            "max-age=63072000; includeSubDomains; preload" always;
        ...
    }

    server {
        listen [::]:80 ipv6only=off;
        server_name subdomain.example.com;
        return 301 https://subdomain.example.com$request_uri;
    }
    server {
        listen [::]:443 ipv6only=off ssl;
        server_name subdomain.example.com;
        add_header Strict-Transport-Security
            "max-age=63072000; includeSubDomains; preload" always; # <-- again ???
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

includeSubDomains标题的部分显然告诉浏览器标题也适用于所有子域。

但是,如果该浏览器subdomain.example.com在看到 之前访问example.com …

ssl http nginx https http-headers

4
推荐指数
2
解决办法
3188
查看次数