X-FORWARDED-FOR包含多个IP地址吗? 如果是这样,为什么? 一个说明性的例子会很棒。
我正在使用curl来请求一个使用Location:行redirect到另一个URL的URL: Location:/path/to/resource#name 据我了解,redirect响应中的那一行对于HTTP规范是无效的,所以整个curl调用可以理解地失败(在这种情况下,有一个400响应代码)。 但是,使用wget或Web浏览器请求URL成功呈现页面(我假设通过启发式填充绝对path或在redirect之前删除锚标记)。 有没有什么办法可以让curl做同样的事情(即使是“正式”畸形的成功地执行redirect也需要做什么? 编辑:一些更多的细节。 最终的响应代码是400(不是404或其他)。 当我做一个HEAD请求( curl -I -L ),我得到一个302 Found (与Location: /Error ),redirect到500 Server Error 。 但是,如果我做了一个常规的请求(没有-I选项,但有-L选项),我得到一个400的–write-out (curl的–write-out )。 所以在这种情况下HEAD请求看起来与标准GET不同。
我有以下设置并configuration为发送所有/ api请求到不同的服务器: location /api { proxy_pass https://myapp.herokuapp.com; rewrite ^/api/(.*) /$1 break; } 我的应用程序发送一个头(USER_CUSTOMER),当它直接与myapp.herokuapp.com进行通信时,它的工作,但是通过代理服务器请求时,API值上显示NULL。 下面在NGINX中有效,但是我需要App能够设置USER_CUSTOMER的值。 location /api { proxy_pass https://app.herokuapp.com; proxy_set_header USER_CUSTOMER ABC; rewrite ^/api/(.*) /$1 break; } 我可能会在将来发送额外的头文件,所以我希望有一个标志将所有头文件从代理传递到API服务器。 Ubuntu nginx/1.1.19
我使用Squid来修改客户端发送的一些HTTP头。 出于testing的目的,我想完全删除'User-Agent'头。 这是我的configuration: request_header_access User-Agent deny all header_replace User-Agent Timmy logformat mylogformat %>a [%{%H:%M}tl] "%rm %ru HTTP/%rv" %>Hs "Accept:%{Accept}>ha User-Agent:%{User-Agent}>ha" {%Ss:%Sh} 我使用语法'> ha'来logging“适配和redirect之后的HTTP请求头部”,正如这里所说的那样:http://www.squid-cache.org/Versions/v3/3.1/cfgman/logformat.html 不幸的是,根据我的日志文件access.log,标题没有被修改: xxxx [19:18] "GET http://example.org/favicon.ico HTTP/1.1" 404 "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent:Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2" {TCP_MISS:DIRECT}` 但是,当通过代理向我的Nginx服务器发出请求时,Nginx会正确地logging下这个头文件: [06/Mar/2012:19:18:07 +0100] "GET /sites/all/modules/colorbox/styles/default/images/controls.png HTTP/1.1" 200 2104 "http://example.org/sites/default/files/css/css_zpYGaC6A9wUNMpW3IPg55mz-mMAjvhuo-SZTcX-lqFQ.css" "Timmy" 什么是正确的语法来正确logging修改后的HTTP头,URL重写等鱿鱼日志文件? 我的鱿鱼版本是2.7.STABLE9,它运行在Debian SQueeze 64位上。 谢谢你的帮助
我想强制运行在RHEL 5.8上的Apache 2.2.3服务器上的所有HTTP请求的Keep Alive或Persistent连接。 许多networking爬虫正在使用HTTP 1.0出于某种原因,我想或者强制持久连接,或者强迫这些连接使用HTTP 1.1,以便在Apacheconfiguration中保持活跃设置将导致持久的HTTP。 这是因为我想减less打开的TCP连接数。 我怎样才能做到这一点?
有谁知道是否有什么奇怪的事情发生? 看来,我的反向代理设置,并不保留从原来的虚拟主机正确的caching头。 让我解释… 我目前正在使用PHP Slim为我的networking应用程序创build一个API。 它有自己的caching机制,安装和运行良好。 所以,例如在访问资源api.example.com/info ,我设置了一个Last-Modified ,它可以caching(不会经常更改)。 因此,标题看起来像这样: Request URL:http://api.example.com/info Request Method:GET Status Code:304 Not Modified 请求头 Accept:text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8 Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-GB,en-US;q=0.8,en;q=0.6 Cache-Control:max-age=0 Connection:keep-alive Host:api.example.com If-Modified-Since:Mon, 04 Oct 2010 08:00:52 1100 User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5 响应头 Connection:Keep-Alive Date:Tue, 19 Jun 2012 22:34:45 GMT Keep-Alive:timeout=5, max=100 Server:Apache/2.2.21 […]
文档说这个: 当且仅当在当前级别上没有定义add_header指令时,这些指令才从前一级inheritance。 我的问题是,我有几个location块,我想要caching,就像这样: add_header X-Frame-Options SAMEORIGIN; add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; location ~ ^/img/(.*)\.(png|jpg|jpeg|gif|bmp)$ { expires 1w; add_header Cache-Control public; } 但是这样会让我失去在块之外声明的所有头文件。 所以显然唯一的办法是在每个位置块上重复这些标题,例如: add_header X-Frame-Options SAMEORIGIN; add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; location ~ ^/img/(.*)\.(png|jpg|jpeg|gif|bmp)$ { expires 1w; add_header Cache-Control public; add_header X-Frame-Options SAMEORIGIN; add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; } 看起来不正确。 有任何想法吗?
我最近遇到了一个特定的安全设备(BlueCoat),它要求所有到Internet的连接都必须通过它来代理(你好,中间人),并相应地使用特殊的SSL证书来拦截所有的stream量。 这阻止了Git的正常操作,即使设置了适当的http.proxy和http.sslCAInfo属性来确保SSL连接本身正常工作。 使用环境variablesGIT_CURL_VERBOSE=1 ,我们发现使用git clone ,会发生HTTP 407(需要代理身份validation)。 Git正确地完成了这个authentication,最后,设备返回一个带有Cookie头部Set-Cookie的HTTP 200。 然后Git将连接到目标服务器,但没有 cookie,导致HTTP 401。 解决方法是设置gitconfiguration选项http.saveCookies=true 问题: RFC标准是否允许中间代理添加Cookie? Anthony Rich 向http-state邮件列表提出了同样的问题,但没有任何回应。 他确实注意到了 RFC 2965 HTTP状态pipe理机制,3.5高速caching代理angular色它说:代理不能在代理响应(请求)中引入自己的Set-Cookie2(Cookie)头。 然而, 取代的RFC 6265完全没有提到这一点。
我一直在尝试将build议的修复程序应用于Apache的CVE-2011-3192,这是要添加到httpd.conf # Drop the Range header when more than 5 ranges. # CVE-2011-3192 SetEnvIf Range (,.*?){5,} bad-range=1 RequestHeader unset Range env=bad-range 但是,在Apache 2.0.59中,configtest说 Syntax error on line …. header unset takes two arguments 我们仍然需要使用范围标题,以便取消整个范围部分不是真正的select。 任何想法得到这个工作?
对于大多数情况,我对Content-Type标头有很好的理解。 我明白,对于以下四个示例,您通常会使用charset=your-charset-here的MIMEtypes。 Content-Type "text/plain; charset=utf-8" Content-Type "text/html; charset=utf-8" Content-Type "text/javascript; charset=utf-8" Content-Type "text/xml; charset=utf-8" …和图像,没有字符集: Content-Type "image/gif" Content-Type "image/x-icon" etc. 但是这两个呢? 他们是否应该包括charset ? Content-Type "application/x-javascript" Content-Type "application/xml" 我意识到如果他们不包括字符集也没问题,但是如果可能的话,我想包括它。 毕竟,它们只是基于文本的文件。