Keep Server Online
If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.
or
A donation makes a contribution towards the costs, the time and effort that's going in this site and building.
Thank You! Steffen
Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
| |
|
Topic: Header Accept-Ranges ? |
|
Author |
|
Danll
Joined: 02 Aug 2013 Posts: 49 Location: USA, Houston
|
Posted: Thu 03 Apr '14 16:13 Post subject: Header Accept-Ranges ? |
|
|
I'm trying to restrict range requests to my server, to cut down on the 206 requests. Seems like it ought to be easy, right?
I have, at the top of my .htaccess file
Code: | Header set Accept-Ranges none
|
OK, but gives me
HTTP/1.1 200 OK
Date: Thu, 03 Apr 2014 14:04:50 GMT
Server: Apache/2.2.26 (Unix) PHP/5.3.28 DAV/2 mod_ssl/2.2.26 OpenSSL/0.9.8y mod_perl/2.0.5 Perl/v5.12.4
Content-Location: index.html.en
Vary: negotiate
TCN: choice
Last-Modified: Tue, 18 Feb 2014 20:45:47 GMT
ETag: "56d99-2d-4f2b45b5254c0"
Accept-Ranges: bytes
Content-Length: 45
Content-Type: text/html
Content-Language: en
Duh, what? "Accept-Ranges: bytes"? No no no. So give me a hint. What's going on? I tell it no ranges, and it is advertising that it accepts ranges? |
|
Back to top |
|
Steffen Moderator
Joined: 15 Oct 2005 Posts: 3092 Location: Hilversum, NL, EU
|
Posted: Fri 04 Apr '14 11:11 Post subject: |
|
|
What happens when :
Header unset Accept-Ranges
? |
|
Back to top |
|
Danll
Joined: 02 Aug 2013 Posts: 49 Location: USA, Houston
|
Posted: Fri 04 Apr '14 15:33 Post subject: |
|
|
When I replace that .htaccess command with
Code: | Header unset Accept-Ranges |
the header is unchanged. It still says
Accept-Ranges: bytes
Now, this is a .htaccess file that I do a lot of stuff with. I know it's being used by the system. Is there something somewhere else that is overriding this Accept-Ranges directive? Nothing I can see in my httpd.conf file that refers to "Ranges".
BTW, I'm assuming when I make this change in my .htaccess file, I don't need to restart Apache to make it take effect. |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Fri 04 Apr '14 19:47 Post subject: |
|
|
Danll, it seems we visited this before, but with Apache 1.3.33. The same however works for me on 2.2, from .htaccess and with mod_headers loaded and on 2.2 did not require a restart.
Code: | Header unset Accept-Ranges
Header set Accept-Ranges none
|
I get;
HTTP/1.1 200 OK
Date: Fri, 04 Apr 2014 17:27:51 GMT
Server: Apache/2.2.26 (Win32) mod_ssl/2.2.26 OpenSSL/1.0.1f mod_antiloris/0.4.1 mod_geoip/1.2.7a mod_limitipconn/0.23 mod_uptime/0.2.0 mod_security2/2.7.5 mod_fcgid/2.3.7 mod_h264_streaming/2.7.7
Accept-Ranges: none
Content-Length: 818
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=UTF-8
You may still want to use MaxRanges, it will not change the header but Apache will deliver the entire content of the request which should in turn reduce the 206s in your logs. |
|
Back to top |
|
Danll
Joined: 02 Aug 2013 Posts: 49 Location: USA, Houston
|
Posted: Sat 05 Apr '14 0:58 Post subject: |
|
|
That is correct. We talked about this a few months ago before I upgraded. In fact, I believe that Apache 1.3.33 didn't even offer the option. But 2.2 is supposed to, and I have it now.
I'm pretty baffled.
I put
Code: | Header unset Accept-Ranges
Header set Accept-Ranges none
|
at the top of my .htaccess file, and I get
Accept-Ranges: bytes
in my header. So something isn't working. I have to assume that something is overriding this Header command but, for the life of me, I can't find it. |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Sat 05 Apr '14 2:23 Post subject: |
|
|
Maybe you need to clear the cache? Are you sure no other .htaccess further into the directory tree is intervening?
Regardless, if you set MaxRanges to none (has to be done server config, virtual host, directory), Apache will serve the request in it's entirety ignoring any range info the browser sends .. so it is documented. This directive came about due to the range-headers attack back more than a year ago and is in 2.2.21 and up.
Have a look
http://httpd.apache.org/docs/2.2/mod/core.html#maxranges |
|
Back to top |
|
Danll
Joined: 02 Aug 2013 Posts: 49 Location: USA, Houston
|
Posted: Sat 05 Apr '14 5:07 Post subject: |
|
|
OK, I set
in my httpd.conf file, and restarted Apache. Seems to work now. I now get Accept-Ranges: none in my Header.
That's nice, but I'm not quite sure why
Code: |
Header set Accept-Ranges none |
in my .htaccess file doesn't do it for the particular directory. This way, Accept-Ranges is set to none systemwide.
Thanks for the help! |
|
Back to top |
|
|
|
|
|
|