| --- |
| layout: post |
| status: PUBLISHED |
| published: true |
| title: Apache HTTP Server Usage Survey Results |
| author: |
| display_name: Sander Temme |
| login: sctemme |
| email: sctemme@apache.org |
| author_login: sctemme |
| author_email: sctemme@apache.org |
| excerpt: "Wouldn’t it be nice if you had an idea of how people use the software that |
| you write? I wanted to have an idea how the <a href=\"http://httpd.apache.org/\">Apache |
| HTTP Server</a> is being used, and which features users consider important. So, |
| I set up a short online survey of eight questions and sent a link to it to the HTTP |
| Server project user and developer mailing lists. Over the next week and a half, |
| I got 134 responses. Here are the survey results in shiny pie charts with witty |
| interpretation.\r\n\r\n \r\n \r\n \r\n <div id=\"myEventWatcherDiv\" style=\"display: |
| none; \"></div> \r\n <div id=\"myEventWatcherDiv\" style=\"display: none; \"></div> |
| \r\n <div id=\"myEventWatcherDiv\" style=\"display: none; \"></div> \r\n <div |
| id=\"myEventWatcherDiv\" style=\"display: none; \"></div>" |
| id: 25b3d2df-e827-4c34-91f7-a9612800635d |
| date: '2012-02-29 07:32:50 -0500' |
| categories: |
| - General |
| tags: [] |
| comments: [] |
| permalink: httpd/entry/apache_http_server_usage_survey |
| --- |
| <p><em>By <a href="http://www.temme.net/sander/">Sander Temme</a></em></p> |
| <p>Wouldn’t it be nice if you had an idea of how people use the<br /> |
| software that you write? I wanted to have an idea how the <a href="http://httpd.apache.org/">Apache HTTP Server</a> is being used, and which<br /> |
| features users consider important. So, I set up a short online survey of eight<br /> |
| questions and sent a link to it to the HTTP Server project user and developer<br /> |
| mailing lists. Over the next week and a half, I got 134 responses. Here are the<br /> |
| survey results in shiny pie charts with witty interpretation.</p> |
| <h2>On which operating system do you typically use Apache HTTP Server?</h2> |
| <p>This question, actually number two in the survey, received<br /> |
| quite a few write-in responses. I had<br /> |
| only the top four operating systems in the answer list, but respondents wrote<br /> |
| in several more. One respondent wrote: “I use Apache simply because it works<br /> |
| transparently on Linux and Windows,” and another “FreeBSD on my hosting<br /> |
| service, Linux at the office.” One respondent wrote: “<span lang="PT-BR">Estou começando a programar em php!</span>” (I’m<br /> |
| starting to program in PHP!) The following graph has all of the operating<br /> |
| systems that appeared in the survey responses:</p> |
| <p><a href="https://blogs.apache.org/httpd/mediaresource/197eaecf-025e-4a3a-91cd-6a04ec638c38"><img src="https://blogs.apache.org/httpd/mediaresource/197eaecf-025e-4a3a-91cd-6a04ec638c38" alt="operating-systems-full.png" /></a></p> |
| <p>Linux and Windows make up the vast majority of operating<br /> |
| systems in use, accounting for over 80%. Sliced another way, 80% of respondents<br /> |
| uses Apache on Unix-like platforms. </p> |
| <p>Why all those write-ins? My theory is that it has to do with<br /> |
| the desire to make one’s platform of choice known. Usually when we are asked<br /> |
| this question, the asking is done by marketeers trying to save some money by<br /> |
| cutting support for less popular platforms. If we don’t speak up, our platform<br /> |
| might get cut. Fortunately, Apache doesn’t work this way: support for various<br /> |
| operating systems and platforms is provided by the developer community. Whether<br /> |
| a specific operating system is popular does not matter: as long as there are<br /> |
| developers interested in supporting a platform, the Apache HTTP Server will run<br /> |
| on it.</p> |
| <h2>How do you typically obtain your Apache HTTP Server Software</h2> |
| <p>Technically, the httpd project only releases source code:<br /> |
| once the source code archive is up on the download servers, the project is done<br /> |
| with the release. Anyone can download and compile the software for his own use.<br /> |
| However, a lot of users obtain httpd through some other means. They don't have<br /> |
| the expertise to compile their own, or find it unnecessary because their Linux<br /> |
| distribution comes with httpd already installed. Some platforms, like Windows,<br /> |
| ship without a compiler and building Apache on it is non-trivial. When asked<br /> |
| how they typically obtained their Apache HTTP Server software, this is how the<br /> |
| user community answered:</p> |
| <p><a href="https://blogs.apache.org/httpd/mediaresource/1882757d-576a-4996-9815-8907168c79cc"><img src="https://blogs.apache.org/httpd/mediaresource/1882757d-576a-4996-9815-8907168c79cc" alt="how-obtained.png" /></a> </p> |
| <p>A large minority of respondents compiles their own httpd<br /> |
| from source. This is a little surprising: I assumed that more users would use<br /> |
| packages from their distributions or third party downloads. Of course, most<br /> |
| respondents learned about the survey from the httpd developer and user mailing lists:<br /> |
| one can expect a large proportion of sophisticated users that have the<br /> |
| expertise and wish to exercise control over their deployments that requires<br /> |
| custom-built HTTP Server software. What’s interesting is the same data<br /> |
| cross-referenced by operating system:</p> |
| <p><a href="https://blogs.apache.org/httpd/mediaresource/f06f78ca-d33a-4a54-b596-d4d22d09147e"><img src="https://blogs.apache.org/httpd/mediaresource/f06f78ca-d33a-4a54-b596-d4d22d09147e" alt="platform-method.png" /></a></p> |
| <p>Third party packages are popular on Windows, which ships<br /> |
| without a compiler. Also, it is not trivial to build httpd and its supporting<br /> |
| libraries on the platform. It’s much easier to grab an installer, especially<br /> |
| since members of the httpd developer community usually make one available. To<br /> |
| the credit of the port maintainer, all respondents who run FreeBSD install<br /> |
| their httpd from the ports collection.</p> |
| <h2>Which version of Apache HTTP Server do you mostly run?</h2> |
| <p>There is very little surprise here: Apache HTTP Server 2.2.x<br /> |
| is the most popular by far: </p> |
| <p><a href="https://blogs.apache.org/httpd/mediaresource/3e52b95a-7984-41b8-9c5e-7ee9bcab138d"><img src="https://blogs.apache.org/httpd/mediaresource/3e52b95a-7984-41b8-9c5e-7ee9bcab138d" alt="which-version.png" /></a></p> |
| <h2>Which application API modules do you use?</h2> |
| <p>Respondents could select multiple answers to this question.<br /> |
| PHP remains the most popular module: this is unlikely to surprise anyone. </p> |
| <p><a href="https://blogs.apache.org/httpd/mediaresource/7505d1d9-f1d6-4bab-87c4-8c91dcd062f2"><img src="https://blogs.apache.org/httpd/mediaresource/7505d1d9-f1d6-4bab-87c4-8c91dcd062f2" alt="api-modules.png" /></a></p> |
| <p>It’s interesting to see a strong showing for the good old<br /> |
| CGI interface. The results may be slightly skewed by the fact that mod_python<br /> |
| is no longer actively developed: as several people noted, its role has been<br /> |
| taken over by mod_wsgi. I also did not include several integrations that might<br /> |
| prove popular, like FastCGI.</p> |
| <h2>How important are the following features of Apache HTTP Server to you?</h2> |
| <p>This question allowed respondents to indicate how important<br /> |
| various features of httpd are to them. </p> |
| <p><a href="https://blogs.apache.org/httpd/mediaresource/73c4de79-8d90-4459-b36f-7c32b91388ca"><img src="https://blogs.apache.org/httpd/mediaresource/73c4de79-8d90-4459-b36f-7c32b91388ca" alt="feature-temperature.png" /></a></p> |
| <p>The features people feel most passionate about are clearly<br /> |
| SSL support and URL rewriting/mapping: these each got about 50% “can’t live<br /> |
| without.” Nobody does <em>not</em> care about<br /> |
| URL rewriting. Scalability and extensibility are important, but aren’t “can’t<br /> |
| live without” features. The easy configuration gets only a small amount of<br /> |
| passion: I guess that if you are familiar enough with httpd to fill out the<br /> |
| survey, you tend to not be intimidated by its configuration language.</p> |
| <h2>Will you upgrade to Apache HTTP Server 2.4 when it is released?</h2> |
| <p>At the time of the survey, version 2.4 of the server had not<br /> |
| been released. Asked whether they would upgrade immediately upon release, most<br /> |
| respondents chose the safe route of waiting a while. A few intrepid souls (fewer than 20%) planned<br /> |
| to upgrade immediately. </p> |
| <p><a href="https://blogs.apache.org/httpd/mediaresource/0c604e11-85c5-487b-944e-cb1ba9eda497"><img src="https://blogs.apache.org/httpd/mediaresource/0c604e11-85c5-487b-944e-cb1ba9eda497" alt="when-upgrade.png" /></a></p> |
| <h2>In which environment do you mostly use Apache HTTP Server?</h2> |
| <p>This was the only demographic question in the survey: an<br /> |
| attempt to learn a little bit about the respondents. </p> |
| <p><a href="https://blogs.apache.org/httpd/mediaresource/d7e8059e-25e8-4d2c-b85d-668dfc74d185"><img src="https://blogs.apache.org/httpd/mediaresource/d7e8059e-25e8-4d2c-b85d-668dfc74d185" alt="work-environment.png" /></a></p> |
| <p>Almost half of the respondents use httpd in a small or<br /> |
| medium-sized business, and only one eight work in a Fortune 500 company. This discrepancy may be partially caused by<br /> |
| the fact that there are millions of small and medium businesses, and the number<br /> |
| of Fortune 500 companies is limited to… 500. Consultants and non-profit<br /> |
| organizations are well represented; government respondents are a small<br /> |
| minority.</p> |
| <h2>If I could improve one thing about Apache HTTP Server, it would be…</h2> |
| <p>This was a free-form write-in question: respondents could<br /> |
| fill in whatever they wanted. Just under half of the respondents took advantage<br /> |
| of this opportunity. The full list of responses will be shared with the HTTP<br /> |
| Server development community, but I will quote a few. </p> |
| <p>Some respondents wanted to improve the feature set, such as:</p> |
| <ul> |
| <li>“A more advanced interface for adding or removing backend servers in reverse/balancer situations”</li> |
| <li>“Proper cluster synchronized cache”</li> |
| <li>“Easy cache control”</li> |
| </ul> |
| <p>Quite a few addressed the configuration process: </p> |
| <ul> |
| <li>“Ease of configuration”</li> |
| <li>“The overall configuration spaghetti jungle.<br /> |
| While I do understand the–extreme–flexibility, when you investigate someone<br /> |
| else’s server, you have to wade through 10s of files for perhaps one website”</li> |
| <li>“Easier configuration of virtual hosts”</li> |
| <li>“Configuration file syntax; I'd completely re-do it to be more modern and less confusing”</li> |
| <li>“Config process could be simpler.”</li> |
| </ul> |
| <p>One person asked for “a config GUI.” Another suggested a fixed<br /> |
| interval release cycle. Documentation was another frequently raised topic. It<br /> |
| is tempting to address or rebut many of the comments. I purposely refrained<br /> |
| from editorializing here: a discussion about these comments should develop<br /> |
| within the development community, on the developer mailing list.</p> |
| <h2>Conclusion</h2> |
| <p>The survey confirmed several things I suspected. For<br /> |
| instance, Linux and PHP are popular. Apache HTTP Server 2.2.x is by far the<br /> |
| most widely used version of the server. Other findings may be more unexpected:<br /> |
| the importance of SSL and URL rewriting for so many, or the relatively strong<br /> |
| showing of the CGI interface. </p> |
| <p>To my delight, one person offered in the write-in space: “It<br /> |
| serves my needs completely” and another wanted to improve “nothing. The current<br /> |
| product meets my needs. Thank you so much.” </p> |
| <p>You are very welcome. </p> |
| <p><em>Apache HTTP Server</em> is a trademark of the Apache Software Foundation.</p> |
| <div id="myEventWatcherDiv" style="display: none; "></div> |
| <div id="myEventWatcherDiv" style="display: none; "></div> |
| <div id="myEventWatcherDiv" style="display: none; "></div> |
| <div id="myEventWatcherDiv" style="display: none; "></div> |