Articles of http

如何禁用Apache的Content-Length响应头?

让我先说这个问题,说明我只想暂时禁用头,并充分意识到浏览器,caching机制等的影响,如果头不存在。 当Content-Length头部不存在于HTTP响应中时,我需要testing一些caching行为。 有没有办法来禁用头文件? 我的第一个尝试是简单地尝试使用PHP和header("Content-Length: 0", true);将其设置为0 header("Content-Length: 0", true); 但这与完全从响应中删除标题不同。 是否可以禁用/删除标题?

从PHP的内容长度标题被覆盖!

我试图找出为什么PHP的Content-Length头被覆盖。 这是demo.php <?php header("Content-Length: 21474836470");die; ?> 请求获取标题 curl -I http://someserver.com/demo.php HTTP/1.1 200 OK Date: Tue, 19 Jul 2011 13:44:11 GMT Server: Apache/2.2.16 (Debian) X-Powered-By: PHP/5.3.3-7+squeeze3 Content-Length: 2147483647 Cache-Control: must-revalidate Content-Type: text/html; charset=UTF-8 请参阅内容长度? 它最大为2147483647字节,即2GB。 现在,如果修改demo.php像这样 <?php header("Dummy-header: 21474836470");die; ?> 标题不会被覆盖。 HTTP/1.1 200 OK Date: Tue, 19 Jul 2011 13:49:11 GMT Server: Apache/2.2.16 (Debian) X-Powered-By: PHP/5.3.3-7+squeeze3 […]

在linux命令行使用curl –datacurlhttp后期file upload

我一直在尝试在linux命令行中使用以下命令将file upload到服务器: curl -v –data 'file=@/var/www/fbapp/images/registration.png' http://myserver/xmltest/curlupload.php 但它不会将file upload到服务器,即使它正在发送回应。 虽然如果我使用这个命令,它会上传文件并发回响应: curl -v -F 'filename=registration.png' -F 'file=@/var/www/fbapp/images/registration.png' http://myserver/xmltest/curlupload.php 但是我想要curl –data格式的命令。 这是我在服务器上的PHP代码: <?php $uploadpath = "images/"; $filedata = $_FILES['file']['tmp_name']; echo "filedata= ".$filedata; if ($filedata != '') copy($filedata,$uploadpath."1.png"); echo "success"; ?> 这是我回头的标题回应: > POST /xmltest/curlupload.php HTTP/1.1 > User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 > Host: myserver […]

HTTP持久连接

尝试使用Linux套接字接口在C中实现一个简单的HTTP服务器我遇到了一些特定的function,我希望它有一些困难,即持久连接。 使用单独的TCP连接一次发送一个文件相对比较容易,但似乎并不是非常有效的解决scheme(考虑多个握手)。 无论如何,服务器应该在一个TCP连接期间处理多个请求(HTML,CSS,图像)。 你能否给我一些线索如何解决这个问题?

检查从简单的Linux CLI应用程序的networkingstream量

我正在命令行上运行一个小应用程序,并试图监视它创build的(http)networkingstream量。 有什么包装程序(如'时间',或'看'),可以显示所有networkingstream量和我的应用程序? (或者至less在文件中复制一份)

wget:不要遵循redirect

如何防止wget跟踪redirect?

在多个node.js HTTP进程中共享一个端口

我有一个根服务器上运行几个node.js项目。 他们应该在自己的进程和目录中分别运行。 考虑这个文件结构: /home +– /node +– /someProject | www.some-project.com | +– index.js | +– anotherFile.img | +– … +– /anotherProject | www.another-project.com | +– /stuff | +– index.js | +– … +– /myWebsite | www.my-website.com | +– /static | +– index.js | +– … +– … | … 每个index.js都应该以cwd设置为其父文件夹( someProject , anotherProject等)的单个进程启动。 想想主机。 每个项目启动一个networking服务器,它监听自己的域名。 […]

对于Linux 3.2内核vs 2.6内核来说,接口不够平衡

我正在运行一个相当大规模的Node.js 0.8.8应用程序,使用具有超线程(所以32个逻辑核心)的16处理器盒上的16个工作进程的集群。 我们发现,自从转向Linux 3.2.0内核(从2.6.32版本)以来,工作进程之间的传入请求的平衡似乎被大大加权到5个左右的进程,而其他11个进程并没有做太多的工作。 这对于吞吐量可能更有效,但似乎增加了请求延迟,对我们来说并不是最优的,因为其中很多都是长寿的websocket连接,可以同时开始工作。 subprocess都接受套接字(使用epoll),而这个问题有一个修复节点0.9(https://github.com/bnoordhuis/libuv/commit/be2a2176ce25d6a4190b10acd1de9fd53f7a6275),这个修复似乎没有帮助我们的testing。 有没有人知道内核调优参数或构build选项可以帮助,还是我们最好的回到2.6内核或跨工作stream程负载平衡使用不同的方法? 我们把它简化成一个简单的HTTP Siegetesting,不过要注意的是,这是在一个带有超线程(12个核心)的12核处理器上运行的12个处理器(有24个逻辑核心),有12个工作进程在套接字上接受,而我们的16在生产过程中。 在Debian上使用节点0.9.3的HTTP Siege在裸机上使用2.6.32内核: reqs pid 146 2818 139 2820 211 2821 306 2823 129 2825 166 2827 138 2829 134 2831 227 2833 134 2835 129 2837 138 2838 除了3.2.0内核,其他所有内容都是一样的 reqs pid 99 3207 186 3209 42 3210 131 3212 34 3214 53 3216 39 3218 54 […]

发送iPhone HTTP请求到Apache PHPnetworking服务器

我是一个游戏和3Dgraphics背景的程序员,现在我想刷新我的networking和Web开发技能。 我有一个任务,我想完成这样做。 我的想法是,我想能够发送一个HTTP请求或类似的东西,我的networking服务器,运行基于LAMP的设置。 我想知道我怎么可以发送一个HTTP请求,包含从我的iPhone使用Cocoa Touch框架的一些信息到我的networking服务器。 我希望Web服务器(使用PHP)能够将发送的信息logging到纯文本文件中,以后我可以使用它来生成图表。 对于我的例子,我们可以发送当前的date。 我认为人们必须经常这样做,我真的想知道如何做到这一点。 谢谢你的帮助。 PS如果你不知道Cocoa代码来发送请求,没关系,我确定我可以弄清楚,但我想至less知道如何让Linux服务器保存HTTP请求,最好是PHP,但另一种适当的语言是好的。 奖金标志为了安全地做到这一点。 另外:我是一个总noob在这个,需要源代码,欢呼声:D

是否可以使用Linux命令从HTTP服务器读取前N个字节?

这是问题。 给定URL http://www.example.com ,我们可以读取页面的前N个字节吗? 使用wget ,我们可以下载整个页面。 使用curl ,有-r,0-499指定前500个字节。 似乎解决了这个问题。 你也应该知道许多HTTP / 1.1服务器没有启用这个function,所以当你试图获得一个范围时,你会得到整个文档。 在python中使用urlib 。 类似的问题在这里 ,但根据康斯坦丁的评论,这是真的吗? 最后一次我尝试这种技术失败了,因为它实际上不可能从HTTP服务器只读取指定数量的数据,即隐式读取所有HTTP响应,然后只读取其中的前N个字节。 所以最后你最终下载了整个1Gb的恶意响应。 所以问题是我们怎样才能从HTTP服务器上读取前N个字节呢? 关心和感谢