标签: http-headers

通过套接字手动发送HTTP请求

当我通过套接字发送正常的HTTP请求时,服务器不响应OK响应.我从FireFox复制了HTTP标头.这是代码:

Socket s = new Socket(InetAddress.getByName("stackoverflow.com"), 80);
PrintWriter pw = new PrintWriter(s.getOutputStream());
pw.print("GET / HTTP/1.1");
pw.print("Host: stackoverflow.com");
pw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String t;
while((t = br.readLine()) != null) System.out.println(t);
br.close();
Run Code Online (Sandbox Code Playgroud)

但是,这是我收到的回复:

HTTP/1.0 408 Request Time-out
Cache-Control: no-cache
Connection: close
Content-Type: text/html

<html><body><h1>408 Request Time-out</h1>
Your browser didn't send a complete request in time.
</body></html>
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过使用URL.openStream(),但为什么服务器在我手动发送时不识别HTTP请求?

java sockets network-programming http http-headers

49
推荐指数
3
解决办法
9万
查看次数

如何用php找到文件的mime-type?

好的,所以我有一个index.php文件,它必须处理许多不同的文件类型.我怎么猜测基于的文件类型REQUEST_URI.

如果我请求http://site/image.jpg,并且所有请求都通过index.php重定向,这看起来像这样

<?php
   include('/www/site'.$_SERVER['REQUEST_URI']);
?>
Run Code Online (Sandbox Code Playgroud)

我该如何正确地完成这项工作?

我应该根据所请求文件的扩展名进行测试,还是有办法获取文件类型?

php filesystems content-type http-headers

48
推荐指数
5
解决办法
11万
查看次数

HTTP"主机"标头参数中是否需要端口号?

假设我发出一个HTTP请求:foosite.com但实际发送请求的端口是6103,我不要将该端口放在Host标头中,例如:

GET /barpage HTTP/1.1
Host: foosite.com
Method: GET
Run Code Online (Sandbox Code Playgroud)

应该http服务器然后识别我正试图在端口6103上与它通话?或者因为它在请求标题中被省略了我在赌博,如果服务器实际上认识到这一点?

我问这个问题:我发现浏览器,至少是firefox + chrome,把端口放在Host头部.但我正在使用的Java应用程序没有.当端口没有通过时,Host服务器会回复以为我在端口80上.所以我需要獾?服务器操作员还是Java程序员?

http http-headers

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

创建一个文本文件,以便即时下载

更新#1

下面发布的内容是让它输出文件.它正在做的是输出字符串数据,然后输出其余的表单HTML.有没有办法阻止放入文件的内容以及刚刚显示给浏览器的内容.

更新#2

刚添加exit(),一切正常.谢谢!

EOU

嗨,

我一直在环顾四周,看到一些类似的东西,但并没有完全掌握我需要做些什么才能完全完成任务.

目前我有一个用户提供一些细节的表单.在提交时,它会回发给自己并处理POST变量.我有一个预制的HTML网页模板,用于放置信息,工作正常和花花公子只是做一个str_replace.

我现在要做的是将其作为下载导出到纯文本文档中的用户.因此,最终结果是用户单击表单上的提交,然后打开下载弹出窗口,将修改后的网页作为.txt文件.

据我所知,我需要使用HTTPs头功能做一些事情.究竟要实现我想要的东西我不确定.我只希望文件可用一次,但我认为它必须存储在某个地方,供用户下载,然后需要在手动后进行清理?

任何帮助或积分都会很棒!谢谢.

php http-headers

47
推荐指数
3
解决办法
10万
查看次数

跨域AJAX不发送X-Requested-With标头

http://www.a.com/service.asmx上创建Web服务,并从http://www.b.com向其发送跨域ajax请求.检查Firebug中的标头,或Live HTTP标头或您希望的任何其他插件.

请求标头中没有X-Requested-With HTTP标头字段的跟踪.

但是,如果您从同一域(例如http://www.a.com/about)向同一服务发送ajax请求,您将看到该头字段.

为什么跨域ajax请求省略了X-Requested-With头字段?

更新:我知道JSONP调用本质上不是AJAX调用.因此,在JSONP调用中,您将看不到任何X-Requested-With标头字段.

ajax cross-domain http-headers cors

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

使用Postman Chrome扩展程序发送多部分/混合内容

我正在努力使用Postman Chrome扩展程序创建POST多部分/混合请求

这是我的卷曲请求什么效果很好

curl -H "Content-Type: multipart/mixed" 
-F "metadata=@simple_json.json; type=application/json "
-F "content=@1.jpg; type=image/jpg" -X POST http://my/api/item -i -v
Run Code Online (Sandbox Code Playgroud)

有趣的回应部分

内容长度:41557

期待:100-继续

内容类型:multipart/mixed; 边界= ---------------------------- 8aaca457e117

  • 额外的东西不精细transfer.c:1037:0 0
  • 具有持久连接的HTTP 1.1或更高版本,支持流水线操作

当我使用Postman时 在此输入图像描述

我得到了这样的回应

{"message":"Could not parse multipart servlet request;
 nested exception is org.apache.commons.fileupload.FileUploadException: 
 the request was rejected because no multipart boundary was     
 found","type":"error","status":500,"requestId":"1861eloo6fpio"}
Run Code Online (Sandbox Code Playgroud)

就是这样 - 我希望摆脱那个错误.如果需要更多信息请问:)

curl google-chrome http-headers http-request postman

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

转移编码:分块

我试图了解更多Transfer-Encoding:chunked.在PHP中引用了一些文章:http: //zoompf.com/blog/2012/05/too-chunky"Transfer-Encoding:chunked"标题.

我仍然没有得到非常清晰的画面.我知道设置此编码允许服务器将块中的内容设置为浏览器,并在使网站响应的同时导致部分内容呈现.

如果我在IBM WAS上托管了一个提供动态内容的Web应用程序(例如:基于JSF的Web应用程序),那么大多数Web页面都设计为服务器丰富的静态内容,包含大量的CSS和JS文件+动态内容.如何为我的页面设置transfer-encoding'chunked'?或者换句话说:

  • 您如何确定哪个页面将具有该页面'Transfer-Encoding: chunked'以及如何为该页面设置该页面?

您的个人经历对我的理解肯定是有价值的.

websphere tomcat http transfer-encoding http-headers

47
推荐指数
2
解决办法
5万
查看次数

在HTTparty中传递标题和查询参数

如何使用HTTparty在post方法中传递查询参数和头文件.我正在做如下但它抛出

query = {:method => "neworder", :nonce => 1404996028, :order_type => "buy", :quantity=>1,:rate=>1}
headers = {:key=> "87819747209090199871234", :sign=> "0a3888ac7f8e411ad73a0a503c55db70a291rsf34bfb9f9a47147d5200882674f717f6ede475669f3453"}

HTTParty.post("https://www.acb.com/api/v2/market/LTC_BTC/", :query => query, :headers => headers )
Run Code Online (Sandbox Code Playgroud)

但它会引发以下错误.如何使用HTTparty处理查询字符串参数和标头.

/home/user/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http/header.rb:172:in `capitalize': undefined method `split' for :key:Symbol (NoMethodError)
from /home/user/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http/header.rb:165:in `block in each_capitalized'
from /home/user/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http/header.rb:164:in `each'
from /home/user/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http/header.rb:164:in `each_capitalized'
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails httparty http-headers

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

设置HTTP代理以插入标头

我需要测试一些与客户端的HTTP交互,而不是修改.我需要测试的是当客户端的请求包含某个静态头时服务器的行为.

我认为运行此测试的最简单方法是设置一个HTTP代理,在每个请求上插入标头.设置它的最简单方法是什么?

apache proxy proxypass http-headers

46
推荐指数
2
解决办法
10万
查看次数

接受和接受 - Charset - 哪个优越?

在HTTP中,您可以在请求中指定您的客户端可以使用accept标头接受响应中的特定内容,其值为application/xml.内容类型规范允许您在内容类型中包含参数,例如charset=utf-8,表示您可以接受具有指定字符集的内容.

还有accept-charset标题,它指定客户端接受的字符编码.

如果指定了两个标头,并且accept标头包含带有charset参数的内容类型,那么服务器应该将其视为高级标头?

例如:

Accept: application/xml; q=1,
        text/plain; charset=ISO-8859-1; q=0.8
Accept-Charset: UTF-8
Run Code Online (Sandbox Code Playgroud)

我已经使用Fiddler向各种服务器发送了一些示例请求来测试它们的响应方式:

例子

W3

请求

GET http://www.w3.org/ HTTP/1.1
Host: www.w3.org
Accept: text/html;charset=UTF-8
Accept-Charset: ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

响应

Content-Type: text/html; charset=utf-8
Run Code Online (Sandbox Code Playgroud)

谷歌

请求

GET http://www.google.co.uk/ HTTP/1.1
Host: www.google.co.uk
Accept: text/html;charset=UTF-8
Accept-Charset: ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

响应

Content-Type: text/html; charset=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

堆栈溢出

请求

GET http://stackoverflow.com/ HTTP/1.1
Host: stackoverflow.com
Accept: text/html;charset=UTF-8
Accept-Charset: ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

响应

Content-Type: text/html; charset=utf-8
Run Code Online (Sandbox Code Playgroud)

微软

请求

GET http://www.microsoft.com/ HTTP/1.1
Host: www.microsoft.com
Accept: text/html;charset=UTF-8
Accept-Charset: ISO-8859-1 …
Run Code Online (Sandbox Code Playgroud)

http http-headers

46
推荐指数
5
解决办法
3万
查看次数