Questions tagged «http»

HTTP代表超文本传输​​协议,是用于在万维网上传输信息的协议。

2
将上游和位置用于php-fpm有什么区别?
我一直在搜索,但找不到直接的答案,如果有人可以澄清一下,将不胜感激,谢谢! location ~ \.php$ { try_files $uri = 404; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; include fastcgi.conf; } OR / AND? upstream php { server unix:/run/php-fpm/php-fpm.sock; } 谢谢!

3
HTTP GET方法相对于DNS协议如何工作?
我正在尝试了解TCP / IP堆栈中的应用程序层协议。我知道HTTP和DNS协议都位于顶层(应用程序层)。因此,当浏览器想要访问资源时,它必须向HTTP服务器发送请求,例如: GET www.pippo.it/hello.htm HTTP/1.1 根据HTTP协议的规则发出此请求,它使用页面URL,而不是IP地址。 我知道DNS请求是将URL转换为IP所必需的。所以我的问题是:HTTP是否调用DNS协议?在我看来,这是不可能的,因为两者都是高层协议(因此DNS无法为HTTP提供服务)。同样,即使TCP(位于较低级别)也无法要求更高级别协议(例如DNS)的服务。 那么DNS请求何时发生?谁来执行这样的请求?

5
在某些情况下,引荐从HTTPS传递到HTTP。
从理论上讲,浏览器不会将引用信息从HTTPS传递到HTTP站点。以我的经验,这一直都是事实。但是我只是发现了一个例外,并且我想了解它为什么起作用,因此我也可以使用它。 在https://www.google.ca/上搜索“我的推荐人是什么”, 例如:https : //www.google.ca/search? q = what+is+my+referer 有一些网站将显示引荐来源。他们似乎都应该在不应该的情况下“工作”。例如,单击www.whatismyreferer.com。我得到: Your referer: https://www.google.ca/ 请注意,有时很少会得到“没有引荐”的结果。返回并再次单击该链接,下一次它将“运行”。 这不应该发生。www.whatismyreferer.com是非HTTPS网站。引用标头不应传递,但应该传递。 这是怎么回事,如何从我的HTTPS站点到要链接到的HTTP站点执行相同的操作?

1
statsd和石墨的高度可用,可通过网络访问和可扩展的部署
我想设置statsd / graphite,以便我可以记录在HTML设备上运行的JS应用程序(即不在封闭的LAN环境中,并且可能包含大量我不直接控制的传入数据)。 我的约束: 入口点必须使用HTTP:这是通过简单的HTTP-to-UDP-statsd代理(例如github上的httpstatsd)解决的 必须抵抗单个服务器的故障(以对抗墨菲定律:) 必须水平可扩展:网络规模,宝贝!:) 架构应尽可能简单(且便宜) 我的服务器是虚拟机 数据文件将存储在Filer设备上(带有NFS) 我可以使用tcp / udp硬件负载平衡器 简而言之,数据路径:[客户端]-(http)-> [http2statsd]-(udp)-> [statsd]-(tcp)-> [石墨]-(nfs)-> [文件管理器] 到目前为止,我的发现: 缩放http2statsd部分很容易(无状态守护程序) 缩放statsd部分似乎并不简单(我想对于诸如sum,avg,min,max ...之类的汇总数据,我最终会在石墨中得到不连贯的值)。除非HTTP守护程序进行一致的哈希处理以分片密钥。也许是个主意...(但接着是HA的问题) 缩放石墨零件可以通过分片(使用碳中继)来完成(但这也不能解决HA问题)。显然,几个耳语实例不应该写入相同的NFS文件。 扩展文件管理器部分不是问题的一部分(但是IO越少越好:) 缩放Web应用程序似乎很明显(尽管我尚未测试),因为它们仅读取共享的NFS数据 因此,我想知道是否有人可以共享可靠的statsd / graphite部署经验和最佳实践?

2
Google SPDY-有人在Apache上使用它吗?
只是想知道是否有人在Apache上使用过Google SPDY?http://code.google.com/p/mod-spdy/ 我运行了两个Web服务器,并且想知道mod_spdy Apache模块是否存在任何问题,以及是否有人在支持SPDY的浏览器中看到明显的速度提高?
17 apache-2.2  http  google  spdy 

5
Nginx代理的请求方法
是否可以/如何配置Nginx位置块以根据请求方法(即GET / POST)代理到不同的后端? 原因是,我目前正在2个不同的URL处处理2个方法(一个通过http代理,另一个通过fcgi),并试图使其更加“ REST”有效,因此,理想情况下,希望获取资源以返回列表,而在发布到相同资源时应添加到列表中。
17 proxy  nginx  http 

3
nginx:转储HTTP请求以进行调试
Ubuntu 10.04.2 nginx 0.7.65 我看到一些奇怪的HTTP请求进入我的Nginx服务器。 为了更好地了解发生了什么,我想为此类查询转储整个HTTP请求数据。(即,将所有请求标头和正文转储到我可以读取的位置。) 我可以用Nginx做到吗?或者,是否有一些HTTP服务器可以让我直接执行此操作,我可以通过nginx代理这些请求? 更新:请注意,此框有一堆正常的流量,我想避免捕获所有低级别的流量(例如使用tcpdump),然后再将其过滤掉。 我认为,首先在重写规则中过滤良好的流量会容易得多(幸运的是,在这种情况下,我可以很轻松地编写一个流量),然后仅处理虚假流量。 而且我不想将虚假的流量引导到另一个盒子以便能够用它捕获它tcpdump。 更新2:为提供更多详细信息,伪请求foo在其GET查询中具有名为(例如)的参数(该参数的值可以不同)。保证良好的请求永远不会使用此参数。 如果我可以对此进行过滤tcpdump或ngrep以某种方式进行过滤-没问题,我将使用它们。
17 ubuntu  nginx  http 

1
HTTP(S)URL的主机名部分是否区分大小写?
使用http(s)://CompanyName.com/xyz作为URL(例如,用于品牌宣传)而不更改服务端配置是否安全? 我知道DNS不区分大小写,但是还会有副作用吗?我在想,例如链的各个部分都无法匹配CompanyName.com〜companyname.com: 某些Web后端可能不匹配 某些负载平衡器/代理/缓存/应用程序层防火墙可能无法匹配 某些客户端可能错误地应用了同源策略 某些客户端可能在证书检查中不匹配 虽然DNS通常不区分大小写,但IDN是否可以更改图片? 任何人在URL的主机名部分遇到大写字母的那些或其他问题吗? [edit] @Michael Hampton指出,根据HTTP标准,主机名不区分大小写,但是某些软件在这方面不兼容。 我试图了解不兼容软件的流行程度,尤其是客户端。我认为最近使用的所有主流浏览器都可以,但是例如移动应用程序呢?(我最好将其分解为一个单独的SF问题吗?)[/ edit]

5
通过http-host标头阻止mod_security
最近几天,我注意到一些服务器受到未知请求的冲击。 其中大多数如下所示: 60.246.*.* - - [03/Jan/2015:20:59:16 +0200] "GET /announce.php?info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1 HTTP/1.1" 200 - 经过一番记录和搜索后,我发现一些中国ISP(根据whatsmydns.net的结果可能是CERNET)和一些土耳其ISP(可能是TTNET)对dns查询做出了响应,例如a.tracker.thepiratebay.org使用各种与piratebay无关的IP或山洪。换句话说,出于某些奇怪的原因,它们似乎在进行某种DNS缓存中毒。 因此,这些国家/地区的数百个(即使不是数千个)bittorrent客户端向我的Web服务器发出大量的“公告”,这几乎导致DDoS攻击填满了所有Apache的连接。 目前,我完全封锁了中国和土耳其,并且确实可以完成工作,但我想找到一种更好的方式来阻止这些请求。 我正在考虑使用基于HTTP Host标头的mod_security阻止这些请求。 所有这些请求都包含一个HTTP Host标头,例如a.tracker.thepiratebay.org(或thepiratebay.org域的许多其他子域)。 这是通过PHP $_SERVER变量转储的请求标头。 DOCUMENT_ROOT: /usr/local/apache/htdocs GATEWAY_INTERFACE: CGI/1.1 HTTP_ACCEPT_ENCODING: gzip HTTP_CONNECTION: Close HTTP_HOST: a.tracker.thepiratebay.org HTTP_USER_AGENT: uTorrent/342(109415286)(35702) PATH: /bin:/usr/bin QUERY_STRING: info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1 REDIRECT_STATUS: 200 REMOTE_ADDR: 60.246.*.* REMOTE_PORT: 3445 REQUEST_METHOD: GET REQUEST_URI: /announce.php?info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1 SCRIPT_FILENAME: /usr/local/apache/htdocs/announce.php SCRIPT_NAME: …

5
如何在Apache HTTP服务器中启用所有HTTP方法
如何在Apache Web服务器上启用对RFC 2616中定义的所有HTTP方法的处理?这些将是: OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT 我正在使用Apache HTTP Server版本2.2.22(Ubuntu), 这是我的.htaccess文件: <Location /output> Dav On <LimitExcept GET HEAD OPTIONS PUT> Allow from all </LimitExcept> </Location> 这是我从运行Telnet得到的输出–没有PUT方法: Escape character is '^]'. OPTIONS / HTTP/1.0 HTTP/1.1 200 OK Date: Tue, 09 Oct 2012 06:56:42 GMT Server: Apache/2.2.22 (Ubuntu) …
16 apache-2.2  http 

9
使用单个端口通过Nginx处理HTTP和https请求
我想知道nginx是否能够在同一端口上处理http和https请求。[*] 这就是我想要做的。我正在运行用于处理http请求的Web服务器(lighttpd),以及一个通过https服务文档树的特定部分的C程序。这两个进程在同一服务器上运行。 在防火墙级别,我只能有一个端口将流量转发到该服务器。因此,我想在此服务器上设置nginx,以便它在单个端口上侦听请求,然后: A)重定向所有http://myhost.com/ *请求,以便它们转到localhost:8080(lighttpd正在侦听) B)如果用户请求以例如https:// myhost.com/app开头的URL,则会将该请求发送到localhost:8008(C程序)。请注意,在这种情况下,必须对远程浏览器和nginx之间的通信进行加密。 您认为这可能吗?如果是,该怎么办? 我知道如何使用两个不同的端口来执行此操作。我面临的挑战是仅使用一个端口来完成此操作(不幸的是,我无法控制此特定环境上的防火墙配置,因此这是我无法避免的限制)。使用诸如通过ssh进行反向端口转发来绕过防火墙的技术也不起作用,因为这仅适用于仅具有Web浏览器和Internet链接的远程用户。 如果这超出了nginx的功能,您是否知道其他任何可以满足此要求的产品?(到目前为止,我在使用lighttpd和pound进行设置方面一直没有成功)。我也希望避免使用Apache(尽管如果它是唯一的选择,我愿意使用它)。 预先感谢Alex [*]要清楚一点,我说的是通过同一端口处理加密和未加密的HTTP连接。加密是通过SSL还是TLS无关紧要。
16 nginx  http  https  lighttpd 

3
如何在Amazon EC2上设置端口转发
我有一个在Amazon EC2上运行的Web应用程序。它侦听端口9898。 我可以通过输入IP地址和端口号来访问它。 例如1.2.3.4:9898 但是,我真正想做的就是不必输入端口号。 经过研究,看来端口转发可能是解决方案-即将在默认端口(80)上收到的http请求转发到我的非标准端口(9898)。 这是正确的方法吗?如果是这样,如何在EC2上进行设置? 如果没有,那么我如何实现我想要的? 在此先感谢您的帮助。 更新资料 我应该提到EC2实例是Windows Server 2012 AMI。

1
在HTTP2下,多久启动一次新的TCP连接?
我知道HTTP2旨在将所有内容都保持在单个TCP连接下,并且我想知道TCP连接断开的频率。 例如,如果我访问youtube,进行一些浏览,离开站点,然后返回,我将重新使用相同的HTTPS连接(就TCP 4元组而言,不是会话),还是使用其他HTTPS连接? 其中很多可能是特定于应用程序的,并且取决于浏览器如何实现,但是在标准的任何地方都指定了它吗?
15 http  https  tcp 


5
运行API,如果我更正了内容类型标头,会为客户带来麻烦吗?
我们正在运行许多人使用的API。由于对我而言有些传统笨拙,一个端点被返回错误的内容类型标题,js当它应该是json。我的问题是,如果我们通过交换以返回正确的值来解决此问题,那么它会对现有客户造成多大的麻烦?换一种说法,当看到这样的变化时,您是否期望许多不同的HTTP客户端库引发致命错误? 我们正在尝试确定这是否是一项更改,我们可以继续进行而又不费吹灰之力,或者我们应该仔细地向所有用户发送电子邮件,并宣布一个多年的弃用期……或介于两者之间。 这可能取决于使用哪种不同的HTTP客户端,所以我看了一下用户代理。答:很多不同!这里是一些顶级的: “ okhttp / 3.2.0”,“ python-requests / 2.10.0”,“ Ruby”,“ python-requests / 2.7.0”,“ Mozilla / 5.0”,“ Java / 1.8.0_91”,“ python-requests” /2.4.3”、“okhttp/3.3.0”、“Lucee”、“Dalvik/2.1.0”、“Google-HTTP-Java-Client/1.21.0”、“PHP_appname”、“NativeHost”、“Java /1.7.0_67”、“Apache-HttpClient/UNAVAILABLE”、“Dalvik/1.6.0”、“Web-sniffer/1.1.0”、“unirest-objc/1.1” 各种不同的移动和服务器端语言库。通常不是运行javascript的浏览器,但也有一些。 大多数人似乎没有注意到content-type是错误的,但是不时出现一个新的支持请求,抱怨这个问题,因此我们想修复它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.