Articles of http headers

IIS设置http头Expires为-1,如何用mod_expires覆盖这个

我正在使用带有Apache HTTP反向代理的IIS网站( ProxyRequests Off mod_proxy)。 我想在apache中控制expires头文件(不要问),但是IIS设置头文件Expires: -1 。 这会导致mod_expires忽略该请求,因为它已经有了一个值。 我试过在https://stackoverflow.com/questions/7930140/overwrite-cache-headers-with-mod-expires的解决scheme,但它不起作用(早期的技巧不起作用)。 如何禁用IIS以指定Expires: -1 ? 要么 我如何强制mod_expires重写它(因为我使用Apache作为反向代理,我应该能够做到这一点!)

apache:在静态文件的HTTP头中发送请求URI

为了满足PubSubHubbub 0.4规范的要求,我必须为每个文件发送rel=self标题。 我现在试图用Apache的mod_headers和环境variables来做到这一点: Header append Link '<http://example.org%{REQUEST_URI}e>; rel="self"' 这个工作只要文件是由PHP处理,但不适用于没有被mod_php或任何CGI进程处理的静态文件(如*.htm )。 似乎没有办法获得所有当前Apache环境variables的列表,所以我不能检查哪些实际可用。 所以我的问题是:我怎样才能访问Header append指令中当前请求的URL的相对path? 在Apache 2.2.22-13+deb7u4上发生在Debian 7上。

Nginx的`if_modified_since`只能在静态资源上工作吗?

我似乎无法find足够的文档。 我有一个应用程序生成一些dynamic的响应,但仍然可以受益于Last-Modified头 – 所以我发送它。 但是,启用if_modified_since (设置为before ,根据http://nginx.org/en/docs/http/ngx_http_core_module.html#if_modified_since )似乎对非静态资源没有任何影响。 例如,PHP,Python应用程序。 这是因为Nginx不只是看我的回应Last-Modified头? 因为我可以看到他们似乎设置正确,如下所示: > GET /3.0/view.json?id=2 HTTP/1.1 > Host: xxxxxxxxxxxxx > Accept: */* > If-Modified-Since: Sat, 02 May 2015 19:43:02 GMT > < HTTP/1.1 200 OK * Server nginx/1.4.7 is not blacklisted < Server: nginx/1.4.7 < Date: Fri, 01 May 2015 19:56:05 GMT < Content-Type: application/json; charset=utf-8 […]

标题集访问控制允许来源不与mod_rewrite + mod_jk工作

我在SF上的第一个问题,所以请原谅我,如果我设法博克的职位。 🙂 无论如何,我在我的一台机器上使用了mod_rewrite,并且有一条简单的规则,可以在另一台机器上redirect到一个webapp。 我也在这两台机器上设置标题“Access-Control-Allow-Origin”。 问题是当我重写规则时,我放弃了“Access-Control-Allow-Origin”标题设置。 以下是第一台机器的Apacheconfiguration示例: NameVirtualHost 10.0.0.2:80 <VirtualHost 10.0.0.2:80> DocumentRoot /var/www/host.example.com ServerName host.example.com JkMount /webapp/* jkworker Header set Access-Control-Allow-Origin "*" RewriteEngine on RewriteRule ^/otherhost http://otherhost.example.com/webapp [R,L] </VirtualHost> 下面是第二个Apacheconfiguration的例子: NameVirtualHost 10.0.1.2:80 <VirtualHost 10.0.1.2:80> DocumentRoot /var/www/otherhost.example.com ServerName otherhost.example.com JkMount /webapp/* jkworker Header set Access-Control-Allow-Origin "*" </VirtualHost> 当我点击host.example.com我们看到标题已设置: $ curl -i http://host.example.com/ HTTP/1.1 302 Moved Temporarily Server: […]

如何在apache中发送Content-Disposition头文件?

我有一个文本文件的目录,我服务了Apache 2.通常当我(或任何用户)访问文件,他们在浏览器中看到他们。 我想“强制”* Web浏览器popup一个“另存为”对话框。 我知道这是可以做的Content-Disposition标题( 更多信息 )。 有没有办法打开每个文件? 理想情况下,我想这样的事情: <Directory textfiles> AutoAddContentDispositionHeaders On </Directory> 然后apache会设置正确的内容处置标题,包括使用相同的文件名。 像这样的东西可能是与Apache Header指令。 奖励点,如果它包括在debian站在阿帕奇。 我可以做一个简单的PHP包装脚本,它接受一个filename参数,调用header(…) ,然后打印文件,但然后我必须validationinput等,这是我试图避免的工作。 *我知道,当涉及到networking时,你实际上无法强制

内容长度标题不存在

我在Linux上安装了nginx服务器。 当我用curl发送请求时, Content-Length头部在响应中缺失。 1.php文件是: <?php echo "hello"; ?> 示例请求是: curl api.mysite.com/taxi/1.php -i HTTP/1.1 200 OK Server: nginx/1.2.1 Date: Wed, 17 Sep 2014 06:16:00 GMT Content-Type: text/html; charset=utf8 Vary: Accept-Encoding X-Powered-By: PHP/5.4.4-14+deb7u14 Age: 0 X-Cache: MISS from cache.turonnet.uz Transfer-Encoding: chunked Connection: keep-alive 我该如何解决这个问题?

如何操纵ADFS 3的x-frame-options HTTP头?

默认情况下,ADFS 3响应包含“X-Frame-Options:DENY”HTTP标头。 这可以防止ADFS在iframe中运行,因为这提供了点击劫持攻击的机会。 目前我的公司正在实现一个集成,这个安全规则应该是一个例外:某个域上的页面应该能够将ADFSembedded到iframe中。 但似乎ADFS不允许改变这个开箱即用的方式。 那么修改这个HTTP头的最好方法是什么? 例如RFC( https://tools.ietf.org/html/rfc7034#section-2.3.2.3 )中所build议的? 想要在帧中呈现所请求的内容的页面将其自己的起源信息提供给提供要经由查询string参数成帧的内容的服务器。 服务器validation主机名是否符合其标准,以便允许页面被目标资源框起。 例如,这可以通过查找被允许构build页面的可信域名白名单来实现。 例如,对于Facebook的“Like”button,服务器可以检查提供的主机名是否与该“Like”button所期望的主机名匹配。 如果在步骤#2中符合适当的条件,则服务器返回“X-Frame-Options:ALLOW-FROM”中的主机名。 浏览器强制执行“X-Frame-Options:ALLOW-FROM”标题。

当文件是PHP时,mod_headers不发送头文件

我有我的.htaccess文件设置为以下内容: Header set MyHeader "I'm Set!" 如果我转到没有默认索引文件的目录( http://example.com/test/ ),并查看networking活动(在这种情况下,使用Chrome),我可以看到标题正在发送。 如果我去一个PHP文件( http://example.com/test/test.php ),头不会被发送。 我已经创build了一个index.html(简单地把<pre>Hi作为内容)并发送出去。 我将文件名更改为.php ,没有标题。 如果我更改orignal test.php到test.html ,它会输出垃圾代码,并发送头文件。 如果我将test.php更改为test.png ,我会得到一个破碎的图标,然后发送标题。 因此,如果没有在MIMEtypes和文件扩展名方面进行超出上述testing的话,那么只会出现.php文件(合法的或其他),或者设置为不具有.htaccess规则,或者特别指定mod_headers指令。 但我不知道如何testing这个,因为它是一个共享服务器,所以我没有httpd.conf访问权限。 任何想法,为什么Apache会跳过发送头文件的PHP文件? 我也试过: <FilesMatch "\.(php)$"> Header set MyHeader "I'm Set!" </FilesMatch>

这个HTTP POST请求有什么问题?

我试图使用Sulley模糊框架来模糊服务器。 我在Wireshark中观察下面的stream。 这个错误提到了JSONparsing的问题,但是,当我使用Google Chrome的Postman扩展尝试相同的HTTP POST请求时,它成功了。 任何人都可以请解释什么可能是错误的这个HTTP POST请求? JSON似乎有效。 POST /restconf/config HTTP/1.1 Host: 127.0.0.1:8080 Accept: */* Content-Type: application/yang.data+json { "toaster:toaster" : { "toaster:toasterManufacturer" : "Geqq", "toaster:toasterModelNumber" : "asaxc", "toaster:toasterStatus" : "_." }} HTTP/1.1 400 Bad Request Server: Apache-Coyote/1.1 Content-Type: */* Transfer-Encoding: chunked Date: Sat, 07 Jun 2014 05:26:35 GMT Connection: close 152 <?xml version="1.0" encoding="UTF-8" standalone="no"?> […]

Haproxy:拒绝来自文件的用户代理的stream量

我试图通过使用haproxy ACL和-f选项来拒绝来自特定用户代理的连接(通过匹配user-agent头的子string)从文件读取。 然而,它不工作,它运行,如configuration被忽略。 有没有更好的经验与haproxy找出我失踪? 或者关于如何debugging这个haproxyconfiguration的一些提示? 我正在运行haproxy 1.4.18。 这是haproxy.cfg的摘录: listen http 0.0.0.0:80 acl abuser hdr_sub(user-agent) -f /etc/haproxy/abuser.lst tcp-request content reject if abuser mode http server www1 127.0.0.1:8080 maxconn 10000 这是abuser.lst文件的内容: # annoying bots annoyingbot1 annoyingbot2