Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HEAD requests are sent using HTTP/1.0 even when protocol is set to HTTP/1.1 #229

Open
jasons42 opened this issue Nov 21, 2023 · 1 comment

Comments

@jasons42
Copy link

jasons42 commented Nov 21, 2023

Here is my config which has gmethod = HEAD and protocol = HTTP/1.1 set:

CURRENT  SIEGE  CONFIGURATION
Mozilla/5.0 (apple-arm-darwin23.0.0) Siege/4.1.6
Edit the resource file to change the settings.
----------------------------------------------
version:                        4.1.6
verbose:                        true
color:                          true
quiet:                          false
debug:                          false
protocol:                       HTTP/1.1
HTML parser:                    enabled
get method:                     HEAD
connection:                     close
concurrent users:               25
time to run:                    n/a
repetitions:                    n/a
socket timeout:                 30
cache enabled:                  false
accept-encoding:                gzip, deflate
delay:                          0.000 sec
internet simulation:            false
benchmark mode:                 false
failures until abort:           1024
named URL:                      none
URLs file:                      /opt/homebrew/Cellar/siege/4.1.6/etc/urls.txt
thread limit:                   255
logging:                        false
log file:                       /opt/homebrew/var/log/siege.log
resource file:                  /Users/jsmith/.siege/siege.conf
timestamped output:             false
comma separated output:         false
allow redirects:                true
allow zero byte data:           true
allow chunked encoding:         true
upload unique files:            true
json output:                    false
no-follow:
 - ad.doubleclick.net
 - pagead2.googlesyndication.com
 - ads.pubsqrd.com
 - ib.adnxs.com
proxy auth:
www auth:

Despite this when I send a request using -g I see that a HEAD request is sent, but using HTTP/1.0 instead of HTTP/1.1:

HEAD /siege-home/ HTTP/1.0
Host: www.joedog.org
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (apple-arm-darwin23.0.0) Siege/4.1.6
Connection: close


HTTP/1.1 200 OK
Date: Tue, 21 Nov 2023 21:17:32 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Powered-By: PHP/7.3.33
Set-Cookie: wp_wpfileupload_0=kE67eeGA2HPrwOdfRNhmHZNFOHms2cd6; expires=Thu, 23-Nov-2023 21:17:32 GMT; Max-Age=172800; path=/
X-Pingback: https://www.joedog.org/xmlrpc.php
Link: <https://www.joedog.org/wp-json/>; rel="https://api.w.org/"
Link: <https://www.joedog.org/wp-json/wp/v2/pages/18>; rel="alternate"; type="application/json"
Link: <https://www.joedog.org/?p=18>; rel=shortlink
CF-Cache-Status: DYNAMIC
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=2nZo6%2F7MF2XOlTtvbME6fQil4KgytSVuGWOYuYJsqDbKF6WOwxWIhxaVtRqxWc7Ch4Jhh%2FhHy99tSWe9dx9YePIbb%2BsrThJgM%2BY1QWBZvz%2BaMRTHcVpeA6HWtO1Ne6dupQ%3D%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 829bf5c20fd71267-ORD
Content-Encoding: gzip
alt-svc: h3=":443"; ma=86400

This is an issue for me as we have proxies/loadbalancers configured to reject HTTP/1.0 requests and return 426 Upgrade Required.

@dchekmarev
Copy link

dchekmarev commented Mar 12, 2024

I believe this might be the cause:

if (my.protocol == FALSE || my.get == TRUE || my.print == TRUE) {

  if (my.protocol == FALSE || my.get == TRUE || my.print == TRUE) {
    snprintf(protocol, sizeof(protocol), "HTTP/1.0");
  } else {
    snprintf(protocol, sizeof(protocol), "HTTP/1.1");
  }

For me this looks like ignoring protocol setting, if we're in -g or -p mode it enforces HTTP/1.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants