{"action":"closed","number":11,"pull_request":{"url":"https://api.github.com/repos/apache/httpd/pulls/11","id":16835994,"html_url":"https://github.com/apache/httpd/pull/11","diff_url":"https://github.com/apache/httpd/pull/11.diff","patch_url":"https://github.com/apache/httpd/pull/11.patch","issue_url":"https://api.github.com/repos/apache/httpd/issues/11","number":11,"state":"closed","locked":false,"title":"Specify method to ab","user":{"login":"winfinit","id":1187417,"avatar_url":"https://avatars.githubusercontent.com/u/1187417?v=3","gravatar_id":"","url":"https://api.github.com/users/winfinit","html_url":"https://github.com/winfinit","followers_url":"https://api.github.com/users/winfinit/followers","following_url":"https://api.github.com/users/winfinit/following{/other_user}","gists_url":"https://api.github.com/users/winfinit/gists{/gist_id}","starred_url":"https://api.github.com/users/winfinit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/winfinit/subscriptions","organizations_url":"https://api.github.com/users/winfinit/orgs","repos_url":"https://api.github.com/users/winfinit/repos","events_url":"https://api.github.com/users/winfinit/events{/privacy}","received_events_url":"https://api.github.com/users/winfinit/received_events","type":"User","site_admin":false},"body":"It is useful to be able to benchmark applications that implement \"DELETE\" methods, and other non standard methods, ApacheBench is a very useful tool to do POST/PUT/GET requests, this change will allow one to specify any method with either POST or PUT bindings.\r\n\r\n```bash\r\nromans-air:httpd winfinit$ support/ab -h\r\nUsage: support/ab [options] [http[s]://]hostname[:port]/path\r\nOptions are:\r\n    -n requests     Number of requests to perform\r\n    -c concurrency  Number of multiple requests to make at a time\r\n    -t timelimit    Seconds to max. to spend on benchmarking\r\n                    This implies -n 50000\r\n    -s timeout      Seconds to max. wait for each response\r\n                    Default is 30 seconds\r\n    -b windowsize   Size of TCP send/receive buffer, in bytes\r\n    -B address      Address to bind to when making outgoing connections\r\n    -p postfile     File containing data to POST. Remember also to set -T\r\n    -u putfile      File containing data to PUT. Remember also to set -T\r\n    -T content-type Content-type header to use for POST/PUT data, eg.\r\n                    'application/x-www-form-urlencoded'\r\n                    Default is 'text/plain'\r\n    -v verbosity    How much troubleshooting info to print\r\n    -w              Print out results in HTML tables\r\n    -i              Use HEAD instead of GET\r\n    -x attributes   String to insert as table attributes\r\n    -y attributes   String to insert as tr attributes\r\n    -z attributes   String to insert as td or th attributes\r\n    -C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)\r\n    -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'\r\n                    Inserted after all normal header lines. (repeatable)\r\n    -A attribute    Add Basic WWW Authentication, the attributes\r\n                    are a colon separated username and password.\r\n    -P attribute    Add Basic Proxy Authentication, the attributes\r\n                    are a colon separated username and password.\r\n    -X proxy:port   Proxyserver and port number to use\r\n    -V              Print version number and exit\r\n    -k              Use HTTP KeepAlive feature\r\n    -d              Do not show percentiles served table.\r\n    -S              Do not show confidence estimators and warnings.\r\n    -q              Do not show progress when doing more than 150 requests\r\n    -l              Accept variable document length (use this for dynamic pages)\r\n    -g filename     Output collected data to gnuplot format file.\r\n    -e filename     Output CSV file with percentages served\r\n    -r              Don't exit on socket receive errors.\r\n    -m method       Method name.\r\n    -h              Display usage information (this message)\r\n    -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)\r\n    -f protocol     Specify SSL/TLS protocol\r\n                    (SSL2, SSL3, TLS1 or ALL)\r\n```\r\n\r\nsample command and output:\r\n\r\n```bash\r\nromans-air:httpd winfinit$ support/ab -m PING -n 1 -v 9 http://127.0.0.1:6666/\r\nThis is ApacheBench, Version 2.3 <$Revision$>\r\nCopyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/\r\nLicensed to The Apache Software Foundation, http://www.apache.org/\r\n\r\nBenchmarking 127.0.0.1 (be patient)...INFO: PING header == \r\n---\r\nPING / HTTP/1.0\r\nHost: 127.0.0.1:6666\r\nUser-Agent: ApacheBench/2.3\r\nAccept: */*\r\n\r\n\r\n---\r\nLOG: header received:\r\nHTTP/1.1 200 OK\r\nDate: Fri, 06 Jun 2014 18:37:54 GMT\r\nServer: Apache/2.2.26 (Unix) mod_ssl/2.2.26 OpenSSL/0.9.8y mod_cluster/1.3.1.dev DAV/2\r\nConnection: close\r\nContent-Type: text/plain\r\n\r\nType=PING-RSP&State=OK&id=-322559617\r\n\r\nLOG: Response code = 200\r\n..done\r\n\r\n\r\nServer Software:        Apache/2.2.26\r\nServer Hostname:        127.0.0.1\r\nServer Port:            6666\r\n\r\nDocument Path:          /\r\nDocument Length:        37 bytes\r\n\r\nConcurrency Level:      1\r\nTime taken for tests:   0.001 seconds\r\nComplete requests:      1\r\nFailed requests:        0\r\nTotal transferred:      226 bytes\r\nHTML transferred:       37 bytes\r\nRequests per second:    1572.33 [#/sec] (mean)\r\nTime per request:       0.636 [ms] (mean)\r\nTime per request:       0.636 [ms] (mean, across all concurrent requests)\r\nTransfer rate:          347.02 [Kbytes/sec] received\r\n\r\nConnection Times (ms)\r\n              min  mean[+/-sd] median   max\r\nConnect:        0    0   0.0      0       0\r\nProcessing:     0    0   0.0      0       0\r\nWaiting:        0    0   0.0      0       0\r\nTotal:          1    1   0.0      1       1\r\n```","created_at":"2014-06-06T18:42:39Z","updated_at":"2015-07-21T00:50:23Z","closed_at":"2015-07-21T00:50:23Z","merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/apache/httpd/pulls/11/commits","review_comments_url":"https://api.github.com/repos/apache/httpd/pulls/11/comments","review_comment_url":"https://api.github.com/repos/apache/httpd/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apache/httpd/issues/11/comments","statuses_url":"https://api.github.com/repos/apache/httpd/statuses/72e815fbf694aab7fb3f46eee34a3e50b6456bff","head":{"label":"winfinit:specify_method_to_ab","ref":"specify_method_to_ab","sha":"72e815fbf694aab7fb3f46eee34a3e50b6456bff","user":{"login":"winfinit","id":1187417,"avatar_url":"https://avatars.githubusercontent.com/u/1187417?v=3","gravatar_id":"","url":"https://api.github.com/users/winfinit","html_url":"https://github.com/winfinit","followers_url":"https://api.github.com/users/winfinit/followers","following_url":"https://api.github.com/users/winfinit/following{/other_user}","gists_url":"https://api.github.com/users/winfinit/gists{/gist_id}","starred_url":"https://api.github.com/users/winfinit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/winfinit/subscriptions","organizations_url":"https://api.github.com/users/winfinit/orgs","repos_url":"https://api.github.com/users/winfinit/repos","events_url":"https://api.github.com/users/winfinit/events{/privacy}","received_events_url":"https://api.github.com/users/winfinit/received_events","type":"User","site_admin":false},"repo":{"id":20543938,"name":"httpd","full_name":"winfinit/httpd","owner":{"login":"winfinit","id":1187417,"avatar_url":"https://avatars.githubusercontent.com/u/1187417?v=3","gravatar_id":"","url":"https://api.github.com/users/winfinit","html_url":"https://github.com/winfinit","followers_url":"https://api.github.com/users/winfinit/followers","following_url":"https://api.github.com/users/winfinit/following{/other_user}","gists_url":"https://api.github.com/users/winfinit/gists{/gist_id}","starred_url":"https://api.github.com/users/winfinit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/winfinit/subscriptions","organizations_url":"https://api.github.com/users/winfinit/orgs","repos_url":"https://api.github.com/users/winfinit/repos","events_url":"https://api.github.com/users/winfinit/events{/privacy}","received_events_url":"https://api.github.com/users/winfinit/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/winfinit/httpd","description":"Mirror of Apache HTTP Server","fork":true,"url":"https://api.github.com/repos/winfinit/httpd","forks_url":"https://api.github.com/repos/winfinit/httpd/forks","keys_url":"https://api.github.com/repos/winfinit/httpd/keys{/key_id}","collaborators_url":"https://api.github.com/repos/winfinit/httpd/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/winfinit/httpd/teams","hooks_url":"https://api.github.com/repos/winfinit/httpd/hooks","issue_events_url":"https://api.github.com/repos/winfinit/httpd/issues/events{/number}","events_url":"https://api.github.com/repos/winfinit/httpd/events","assignees_url":"https://api.github.com/repos/winfinit/httpd/assignees{/user}","branches_url":"https://api.github.com/repos/winfinit/httpd/branches{/branch}","tags_url":"https://api.github.com/repos/winfinit/httpd/tags","blobs_url":"https://api.github.com/repos/winfinit/httpd/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/winfinit/httpd/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/winfinit/httpd/git/refs{/sha}","trees_url":"https://api.github.com/repos/winfinit/httpd/git/trees{/sha}","statuses_url":"https://api.github.com/repos/winfinit/httpd/statuses/{sha}","languages_url":"https://api.github.com/repos/winfinit/httpd/languages","stargazers_url":"https://api.github.com/repos/winfinit/httpd/stargazers","contributors_url":"https://api.github.com/repos/winfinit/httpd/contributors","subscribers_url":"https://api.github.com/repos/winfinit/httpd/subscribers","subscription_url":"https://api.github.com/repos/winfinit/httpd/subscription","commits_url":"https://api.github.com/repos/winfinit/httpd/commits{/sha}","git_commits_url":"https://api.github.com/repos/winfinit/httpd/git/commits{/sha}","comments_url":"https://api.github.com/repos/winfinit/httpd/comments{/number}","issue_comment_url":"https://api.github.com/repos/winfinit/httpd/issues/comments{/number}","contents_url":"https://api.github.com/repos/winfinit/httpd/contents/{+path}","compare_url":"https://api.github.com/repos/winfinit/httpd/compare/{base}...{head}","merges_url":"https://api.github.com/repos/winfinit/httpd/merges","archive_url":"https://api.github.com/repos/winfinit/httpd/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/winfinit/httpd/downloads","issues_url":"https://api.github.com/repos/winfinit/httpd/issues{/number}","pulls_url":"https://api.github.com/repos/winfinit/httpd/pulls{/number}","milestones_url":"https://api.github.com/repos/winfinit/httpd/milestones{/number}","notifications_url":"https://api.github.com/repos/winfinit/httpd/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/winfinit/httpd/labels{/name}","releases_url":"https://api.github.com/repos/winfinit/httpd/releases{/id}","created_at":"2014-06-05T22:36:50Z","updated_at":"2015-03-28T22:14:40Z","pushed_at":"2015-03-28T22:14:36Z","git_url":"git://github.com/winfinit/httpd.git","ssh_url":"git@github.com:winfinit/httpd.git","clone_url":"https://github.com/winfinit/httpd.git","svn_url":"https://github.com/winfinit/httpd","homepage":null,"size":205265,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"trunk"}},"base":{"label":"apache:trunk","ref":"trunk","sha":"a783a0807bbe4035f10a5e32193ff313cf5e1faf","user":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"repo":{"id":205423,"name":"httpd","full_name":"apache/httpd","owner":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/apache/httpd","description":"Mirror of Apache HTTP Server","fork":false,"url":"https://api.github.com/repos/apache/httpd","forks_url":"https://api.github.com/repos/apache/httpd/forks","keys_url":"https://api.github.com/repos/apache/httpd/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apache/httpd/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apache/httpd/teams","hooks_url":"https://api.github.com/repos/apache/httpd/hooks","issue_events_url":"https://api.github.com/repos/apache/httpd/issues/events{/number}","events_url":"https://api.github.com/repos/apache/httpd/events","assignees_url":"https://api.github.com/repos/apache/httpd/assignees{/user}","branches_url":"https://api.github.com/repos/apache/httpd/branches{/branch}","tags_url":"https://api.github.com/repos/apache/httpd/tags","blobs_url":"https://api.github.com/repos/apache/httpd/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apache/httpd/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apache/httpd/git/refs{/sha}","trees_url":"https://api.github.com/repos/apache/httpd/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apache/httpd/statuses/{sha}","languages_url":"https://api.github.com/repos/apache/httpd/languages","stargazers_url":"https://api.github.com/repos/apache/httpd/stargazers","contributors_url":"https://api.github.com/repos/apache/httpd/contributors","subscribers_url":"https://api.github.com/repos/apache/httpd/subscribers","subscription_url":"https://api.github.com/repos/apache/httpd/subscription","commits_url":"https://api.github.com/repos/apache/httpd/commits{/sha}","git_commits_url":"https://api.github.com/repos/apache/httpd/git/commits{/sha}","comments_url":"https://api.github.com/repos/apache/httpd/comments{/number}","issue_comment_url":"https://api.github.com/repos/apache/httpd/issues/comments{/number}","contents_url":"https://api.github.com/repos/apache/httpd/contents/{+path}","compare_url":"https://api.github.com/repos/apache/httpd/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apache/httpd/merges","archive_url":"https://api.github.com/repos/apache/httpd/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apache/httpd/downloads","issues_url":"https://api.github.com/repos/apache/httpd/issues{/number}","pulls_url":"https://api.github.com/repos/apache/httpd/pulls{/number}","milestones_url":"https://api.github.com/repos/apache/httpd/milestones{/number}","notifications_url":"https://api.github.com/repos/apache/httpd/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apache/httpd/labels{/name}","releases_url":"https://api.github.com/repos/apache/httpd/releases{/id}","created_at":"2009-05-20T02:02:59Z","updated_at":"2015-07-20T16:16:38Z","pushed_at":"2015-07-20T10:28:22Z","git_url":"git://github.com/apache/httpd.git","ssh_url":"git@github.com:apache/httpd.git","clone_url":"https://github.com/apache/httpd.git","svn_url":"https://github.com/apache/httpd","homepage":null,"size":1094289,"stargazers_count":999,"watchers_count":999,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":268,"mirror_url":"git://git.apache.org/httpd.git","open_issues_count":8,"forks":268,"open_issues":8,"watchers":999,"default_branch":"trunk"}},"_links":{"self":{"href":"https://api.github.com/repos/apache/httpd/pulls/11"},"html":{"href":"https://github.com/apache/httpd/pull/11"},"issue":{"href":"https://api.github.com/repos/apache/httpd/issues/11"},"comments":{"href":"https://api.github.com/repos/apache/httpd/issues/11/comments"},"review_comments":{"href":"https://api.github.com/repos/apache/httpd/pulls/11/comments"},"review_comment":{"href":"https://api.github.com/repos/apache/httpd/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apache/httpd/pulls/11/commits"},"statuses":{"href":"https://api.github.com/repos/apache/httpd/statuses/72e815fbf694aab7fb3f46eee34a3e50b6456bff"}},"merged":false,"mergeable":false,"mergeable_state":"dirty","merged_by":null,"comments":1,"review_comments":0,"commits":3576,"additions":16349,"deletions":4395,"changed_files":2538}}