使用不同的HTTP方法发送请求

时间:2016-05-07 12:16:55

标签: http browser server http-method

如何通过浏览器发送不同的HTTP请求方法?我正在使用chrome,但其他任何人都会这样做。

例如,我想尝试TRACEOPTIONS方法用于教育目的。知道我该怎么做吗?

示例:

请求消息:

OPTIONS * HTTP/1.1
Host: www.joes-hardware.com 
Accept: *

回复讯息:

HTTP/1.1 200 OK
Allow: GET, POST, PUT, OPTIONS 
Context-length: 0

1 个答案:

答案 0 :(得分:1)

浏览器本身不会使用DataRowsGETPOST以外的动词(读取:方法)发出任何请求。然而,通过的权力,他们可以通过XmlHttpRequest对象使用大量其他方法。但是,您将out of luck使用HEAD动词:

  

如果方法TRACECONNECTTRACE的区分大小写的匹配项,请抛出" SecurityError& #34;异常并终止这些步骤。

如果您不想或不需要绑定到浏览器,则有很多选项。首先,Perl的libwww库附带了TRACKGETHEAD命令行实用程序,这些实用程序非常简洁。

更完整的解决方案是cURL,这是一个非常完整的解决方案,适用于多种协议。其最初的目的是简单地从URL( c atch URL = cURL )捕获文件,这并不一定意味着来自HTTP服务器。通过格式良好的URL,cURL可以从IMAP服务器上的电子邮件下载附件。您最感兴趣的是cURL命令行界面的POST选项,它允许您为HTTP请求指定任意谓词。但是尽管可能很强大,但可能no way会发出-X请求。

作为最后的努力,我可以全心全意地推荐netcat,它接受​​管道输入并完全能够处理加密(这比openssl的s_client更舒服)。您可能已经知道可以通过telnet模拟HTTP请求(如果输入的速度足够快)。但我相信你会发现netcat有一些heredoc方式更舒服:

OPTIONS * HTTP/1.1

netcat本身不会说HTTP,因此您自己负责处理请求的语法正确性。另一方面,这使您可以完全自由地进行实验。