# Web Server gurus, Please explain this technical jargon.

**URL:** <https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165>\
**Category:** Factual Questions\
**Created:** [June 1, 2004, 11:39pm UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165 "2004-06-01T23:39:14Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![ready29003](https://avatars.discourse-cdn.com/v4/letter/r/71e660/32.png) [@ready29003](https://boards.straightdope.com/u/ready29003)\
**Post date:** [June 1, 2004, 11:39pm UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/1 "2004-06-01T23:39:14Z")

</div>

From this page: [Real audio web server streaming](http://www.realnetworks.com/resources/contentdelivery/documentation/httpstream.html)

Could someone please explain exactly what this paragraph means? Sort of a “this paragraph for dummies” type of explanation.

“The only requirement for HTTP streaming is that your host server must recognize the .ra, .ram, .rm and .rpm mime types, which are standardized file classifications. Many servers already do. If not, it’s a relatively simple process to configure your host server for these mime types and you can request that your service provider add this feature for you.”

Why does the web server need to recognize special “mime types” for this to work? What is a mime type? HElp!

---

<div class="post-metadata">

**Author:** ![Bill\_H](https://avatars.discourse-cdn.com/v4/letter/b/a5b964/32.png) [@Bill\_H](https://boards.straightdope.com/u/Bill_H)\
**Post date:** [June 1, 2004, 11:57pm UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/2 "2004-06-01T23:57:59Z")

</div>

A mime type is just a type of file, like html or calendar entry or plain text, or jpeg graphic (there are tons of them). Servers can be configured to do certain things to different file types. For example, a web server may send .html files, execute .cgi files, and ignore requests for .txt files.

This paragraph is just saying that you must set your web server up to recognize and handle real audio files.

However, for the love of all that’s holy, please just say no to real audio.

---

<div class="post-metadata">

**Author:** ![Mr.Duality](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mr.duality/32/4098_2.png) [@Mr.Duality](https://boards.straightdope.com/u/Mr.Duality)\
**Post date:** [June 2, 2004, 12:44am UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/3 "2004-06-02T00:44:08Z")

</div>

Say “hello” to [the Free Online Dictionary of Computing.](http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?query=mime+type&action=Search//)

---

<div class="post-metadata">

**Author:** ![leenmi](https://avatars.discourse-cdn.com/v4/letter/l/f1d935/32.png) [@leenmi](https://boards.straightdope.com/u/leenmi)\
**Post date:** [June 2, 2004, 1:15am UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/4 "2004-06-02T01:15:30Z")

</div>

> [@](#):
>
> “The only requirement for HTTP streaming is that your host server must recognize the .ra, .ram, .rm and .rpm mime types, which are standardized file classifications. Many servers already do. If not, it’s a relatively simple process to configure your host server for these mime types and you can request that your service provider add this feature for you.”

To do HTTP streaming, your server (the host through which you communicate with the internet) must be set up to recognize that files ending in .ra, .ram, .rm and .rpm can be processed using a certain application, program or code. Just like Windows is set up to associate .txt files with Notepad and .html with Internet Explorer. If a .html file is invoked, Internet Explorer is called to handle it. Likewise, if the server sees one of those extensions, the defined code is called to deal with it.

If the host server is not configured and you are unable to configure it yourself, the service provider can do it. A service provider is the entity you pay for internet access such as AOL, Earthlink, [Copper.net](http://Copper.net), etc…

---

<div class="post-metadata">

**Author:** ![LSLGuy](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/lslguy/32/5813_2.png) [@LSLGuy](https://boards.straightdope.com/u/LSLGuy)\
**Post date:** [June 2, 2004, 2:15am UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/5 "2004-06-02T02:15:33Z")

</div>

> [@Bill H.](#):
>
> However, for the love of all that’s holy, please just say no to real audio.

[hijack]  
Bill, I have a lot of respect for your expertise. Why are you not fond of real audio, and what do you prefer in its place & why?

I’m not a big-time MS-hater, but in general I try to favor anybody but them to give the market at least a little chance for innovation before they eat the apparent winner and squelch everyone else.  
[/hijack]

---

<div class="post-metadata">

**Author:** ![ftg](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ftg/32/2801_2.png) [@ftg](https://boards.straightdope.com/u/ftg)\
**Post date:** [June 2, 2004, 3:39am UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/6 "2004-06-02T03:39:41Z")

</div>

Just to chime in. Don’t ever get sucked into that 25th level of hell that is RealMedia. It’s so awful that even MS products look significantly better.

The user software is so spyware ridden that many people refuse to install it on their computer. Ergo, you are significantly limiting your audience.

And on top of it all, their compression methods are really, really crappy. So why does anybody use it???

As to a really high quality, free, open source, runs on all the common platforms, audio format, use [Ogg Vorbis.](http://www.vorbis.com/) And it also does streaming. You pretty much can’t beat it.

---

<div class="post-metadata">

**Author:** ![Bill\_H](https://avatars.discourse-cdn.com/v4/letter/b/a5b964/32.png) [@Bill\_H](https://boards.straightdope.com/u/Bill_H)\
**Post date:** [June 2, 2004, 4:20am UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/7 "2004-06-02T04:20:37Z")

</div>

**LSLGuy** wrote

> [@](#):
>
> Bill, I have a lot of respect for your expertise.

You do? Another sucker falls prey to my charm and bullshit bravado. Thanks for the kind words.

> [@](#):
>
> Why are you not fond of real audio, and what do you prefer in its place & why?
> 
> I’m not a big-time MS-hater, but in general I try to favor anybody but them to give the market at least a little chance for innovation before they eat the apparent winner and squelch everyone else.

My complaints with Real Audio:

- it embeds itself like a virus; it’s way too hard to uninstall
- It mandates that you give it an email address (and other personal stuff) to use it.
- The trickery they use to sell their premium products

And on top of all that, they keep their formats proprietary, so you can’t play .rm files in Windows Media player for example.

In fairness, if I were in Real Audio’s shoes, I’m sure I’d do the same that they do. They have to really scramble, because the truth is they’re just another way to deliver files, and there’s absolutely zero technical advantage of what they have over any of the others. But that doesn’t mean that I as a consumer have to give them a break.

Others may not like this, but I prefer MS to deliver my browser and the stuff that comes through it along with my O/S. It’s much more convenient, and there really is no technical or quality advantage to using a competing component. Being a monopoly actually does bring some advantages to consumers, and complete solutions is the main one.

---

<div class="post-metadata">

**Author:** ![Bill\_H](https://avatars.discourse-cdn.com/v4/letter/b/a5b964/32.png) [@Bill\_H](https://boards.straightdope.com/u/Bill_H)\
**Post date:** [June 2, 2004, 4:25am UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/8 "2004-06-02T04:25:16Z")

</div>

**ftg** wrote

> [@](#):
>
> As to a really high quality, free, open source, runs on all the common platforms, audio format, use Ogg Vorbis. And it also does streaming. You pretty much can’t beat it.

You may want to read my little rant about my not-so-wise choice to rip all 750+ of my cds in Ogg over [here](http://boards.straightdope.com/sdmb/showthread.php?t=248003). I’m afraid it’s not a common platform where it’s very often needed, namely in personal players and car stereos.

---

<div class="post-metadata">

**Author:** ![Ms2001](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ms2001/32/18463_2.png) [@Ms2001](https://boards.straightdope.com/u/Ms2001)\
**Post date:** [June 2, 2004, 4:58am UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/9 "2004-06-02T04:58:53Z")

</div>

> [@leenmi](#):
>
> To do HTTP streaming, your server (the host through which you communicate with the internet) must be set up to recognize that files ending in .ra, .ram, .rm and .rpm can be processed using a certain application, program or code. […] if the server sees one of those extensions, the defined code is called to deal with it.

Actually, in this case, it looks like no special processing happens on the server. All you need to do to make HTTP streaming of RealAudio work is tell the server that files ending in .ra and .ram (and .rm?) have the MIME type “audio/x-pn-realaudio”, and files ending in .rpm are “audio/x-pn-realaudio-plugin”. As far as the server is concerned, the RealAudio player is just another web browser downloading a file.

The server passes that information straight through to the client’s web browser, which is where the, er, real magic happens. A browser with the RealAudio plugin installed will see the MIME type, then hand the stream over to the RealAudio player, which plays the file as it downloads.

[Here’s another article](http://www.htmlgoodies.com/tutors/ra.html) about setting up HTTP streaming for RealAudio.

---

<div class="post-metadata">

**Author:** ![ready29003](https://avatars.discourse-cdn.com/v4/letter/r/71e660/32.png) [@ready29003](https://boards.straightdope.com/u/ready29003)\
**Post date:** [June 3, 2004, 5:06pm UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/10 "2004-06-03T17:06:41Z")

</div>

I don’t understand why the server would need a special setting. If the client computer receives a .ra file, doesn’t it already know to launch the real audio plugin to play it? Just as if it receives a .txt file it knows to launch notepad to read it?

Is the problem that the browser will attempt to open the file if the server doesn’t tell it otherwise?

---

<div class="post-metadata">

**Author:** ![micco](https://avatars.discourse-cdn.com/v4/letter/m/5f8ce5/32.png) [@micco](https://boards.straightdope.com/u/micco)\
**Post date:** [June 3, 2004, 6:28pm UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/11 "2004-06-03T18:28:56Z")

</div>

> [@ready29003](#):
>
> I don’t understand why the server would need a special setting. If the client computer receives a .ra file, doesn’t it already know to launch the real audio plugin to play it? Just as if it receives a .txt file it knows to launch notepad to read it?

The browser knows what to do with it because the HTTP header sent by the server contains a MIME type telling it what kind of file it is. The browser isn’t (shouldn’t be…) going strictly by file extension. In theory at least, you could make your TXT file use a .gobbledygook file extension as long as the server was configured to include the text/plain MIME type in the HTTP header for that extension. YMMV as some browsers may pay attention to the extension instead of the specified MIME type.

---

<div class="post-metadata">

**Author:** ![ready29003](https://avatars.discourse-cdn.com/v4/letter/r/71e660/32.png) [@ready29003](https://boards.straightdope.com/u/ready29003)\
**Post date:** [June 3, 2004, 7:55pm UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/12 "2004-06-03T19:55:12Z")

</div>

Hope I am not beating a dead horse. Just want to be clear.

So I have an mp3 file on my server. I type in its web address…and my computer immediately launches media player to play it (while it continues to download).

You are saying my computer does this, because of the Mime type in the http header? It doesn’t do it because it sees the .mp3 extension and simply knows what to do with such a file?

---

<div class="post-metadata">

**Author:** ![Ms2001](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ms2001/32/18463_2.png) [@Ms2001](https://boards.straightdope.com/u/Ms2001)\
**Post date:** [June 3, 2004, 11:16pm UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/13 "2004-06-03T23:16:22Z")

</div>

> [@ready29003](#):
>
> Hope I am not beating a dead horse. Just want to be clear.
> 
> So I have an mp3 file on my server. I type in its web address…and my computer immediately launches media player to play it (while it continues to download).
> 
> You are saying my computer does this, because of the Mime type in the http header? It doesn’t do it because it sees the .mp3 extension and simply knows what to do with such a file?

Correct. Notice that this SDMB page has the extension .php, and pages on other sites have extensions like .asp, .cgi, .shtml, etc. Pages on some sites like eBay even have the extension .dll. Your computer probably doesn’t know what .php, .asp, .cgi, or .shtml mean, unless you have a web server installed, and it has a totally different idea of what .dll means, but your browser is able to display the pages anyway because the server says “Content-type: text/html”.

Also, think about URLs like [http://www.google.com/](http://www.google.com/). What is the extension there? Your browser can’t figure out what the content type of that URL is supposed to be unless the server tells it.

---

<div class="post-metadata">

**Author:** ![daffyduck](https://avatars.discourse-cdn.com/v4/letter/d/ec9cab/32.png) [@daffyduck](https://boards.straightdope.com/u/daffyduck)\
**Post date:** [June 4, 2004, 2:55am UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/14 "2004-06-04T02:55:02Z")

</div>

> [@Mr2001](#):
>
> Also, think about URLs like [http://www.google.com/](http://www.google.com/). What is the extension there? Your browser can’t figure out what the content type of that URL is supposed to be unless the server tells it.

This isn’t an example of MIME type the way I learned it. The server is simply set to automatically serve the index.html file if no file is specified. HTML is ascii text and MIME types are for non-ascii files. At least that is what mama says…

---

<div class="post-metadata">

**Author:** ![Ms2001](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ms2001/32/18463_2.png) [@Ms2001](https://boards.straightdope.com/u/Ms2001)\
**Post date:** [June 4, 2004, 7:35am UTC](https://boards.straightdope.com/t/web-server-gurus-please-explain-this-technical-jargon/248165/15 "2004-06-04T07:35:34Z")

</div>

> [@daffyduck](#):
>
> This isn’t an example of MIME type the way I learned it. The server is simply set to automatically serve the index.html file if no file is specified.

That’s true in general, but the thing is, your browser doesn’t _know_ the server is serving a file called index.html. All it knows is it asked for [http://www.google.com](http://www.google.com) and the server sent back a “text/html” document.

And in fact, the server doesn’t have to have a file called index.html - it could be index.shtml, or index.php, or index.asp, or it could be generated on the fly and not exist as a file at all.

When you request a script like index.php, or when the server decides that it wants to serve the script to you for some reason, there are usually two MIME types involved. One is used to tell the web server that it’s a script - the server admin says something like “any file ending in .php has the type internal/x-php”, then “any file with the type internal/x-php should be passed through the PHP interpreter”. The other type is the content type of script’s output, which is determined by the script itself, and is usually text/html. (It could be anything, though - you could have one PHP script that generates HTML pages, another that generates ZIP files, and another that generates JPEG images. The MIME type decided by the script, not the script file’s extension, tells the browser what to do with it.)

> [@](#):
>
> HTML is ascii text and MIME types are for non-ascii files. At least that is what mama says…

All files have a MIME type, whether they’re binary or text. Plain text is “text/plain”, HTML is “text/html”.
