# What does all that "http://" mean?

**URL:** <https://boards.straightdope.com/t/what-does-all-that-http-mean/144317>\
**Category:** Factual Questions\
**Created:** [December 22, 2002, 4:01am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317 "2002-12-22T04:01:43Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![ElizabethB](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@ElizabethB](https://boards.straightdope.com/u/ElizabethB)\
**Post date:** [December 22, 2002, 4:01am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/1 "2002-12-22T04:01:43Z")

</div>

Maybe it’s common knowledge, but I have no idea what all that “http://” is that you have to type to reach a webpage. Does it stand for something? What are its origins?

---

<div class="post-metadata">

**Author:** ![asterion](https://avatars.discourse-cdn.com/v4/letter/a/4da419/32.png) [@asterion](https://boards.straightdope.com/u/asterion)\
**Post date:** [December 22, 2002, 4:04am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/2 "2002-12-22T04:04:32Z")

</div>

HTTP is an acronym for HyperText Transfer Protocol. Not sure about the rest.

---

<div class="post-metadata">

**Author:** ![ElizabethB](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@ElizabethB](https://boards.straightdope.com/u/ElizabethB)\
**Post date:** [December 22, 2002, 4:08am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/3 "2002-12-22T04:08:24Z")

</div>

I forgot to add these questions: Does it have any purpose? If not, why don’t we just get rid of it.  
Thanks!

---

<div class="post-metadata">

**Author:** ![sailor](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@sailor](https://boards.straightdope.com/u/sailor)\
**Post date:** [December 22, 2002, 4:10am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/4 "2002-12-22T04:10:25Z")

</div>

it is the protocol or language used to transfer the information. There are other protocols like ftp etc.

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [December 22, 2002, 4:11am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/5 "2002-12-22T04:11:39Z")

</div>

To expand on what the others have said, http indicates to the computer what type of data to expect, and what type of requests to issue to the computer on the other end.

---

<div class="post-metadata">

**Author:** ![engineer\_comp\_geek](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/engineer_comp_geek/32/504_2.png) [@engineer\_comp\_geek](https://boards.straightdope.com/u/engineer_comp_geek)\
**Post date:** [December 22, 2002, 4:30am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/6 "2002-12-22T04:30:47Z")

</div>

If you are typing the address into the address bar on your browser you can omit the http:// part (on IE 6 anyway), and it will assume that you mean a hyptertext transfer. In general though, that part is needed to tell what type of data transfer is taking place, which could be http (hyptertext transfer protocol, which is basically a web page) ftp (file transfer protocol, how most people moved things around on the internet before web pages became popular) https (secure http), etc.

---

<div class="post-metadata">

**Author:** ![neutron\_star](https://avatars.discourse-cdn.com/v4/letter/n/51bf81/32.png) [@neutron\_star](https://boards.straightdope.com/u/neutron_star)\
**Post date:** [December 22, 2002, 4:33am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/7 "2002-12-22T04:33:08Z")

</div>

Even on older versions of IE and Netscape, you can omit the “http://”.

If not specified, most (all?) browsers assume regular HTTP.

---

<div class="post-metadata">

**Author:** ![engineer\_comp\_geek](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/engineer_comp_geek/32/504_2.png) [@engineer\_comp\_geek](https://boards.straightdope.com/u/engineer_comp_geek)\
**Post date:** [December 22, 2002, 4:33am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/8 "2002-12-22T04:33:46Z")

</div>

Here’s a more detailed explanation:

[http://www.clr.utoronto.ca/COURSES/S95/LAN115S95/helpurl.html](http://www.clr.utoronto.ca/COURSES/S95/LAN115S95/helpurl.html)

---

<div class="post-metadata">

**Author:** ![GuanoLad](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/guanolad/32/42_2.png) [@GuanoLad](https://boards.straightdope.com/u/GuanoLad)\
**Post date:** [December 22, 2002, 10:56am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/9 "2002-12-22T10:56:59Z")

</div>

Most people think of the internet being the world wide web, i.e. web sites, but in fact there are lots of different parts to it, including email, newsgroups, ftp, etc.

The “http://” tells the browser what part of the internet it should be looking to find the internet address (or URL, meaning Universal Resource Locator) that you list afterward.

---

<div class="post-metadata">

**Author:** ![SmileyDeath](https://avatars.discourse-cdn.com/v4/letter/s/eb8c5e/32.png) [@SmileyDeath](https://boards.straightdope.com/u/SmileyDeath)\
**Post date:** [December 22, 2002, 12:36pm UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/10 "2002-12-22T12:36:55Z")

</div>

> [@](#):
>
> \*Originally posted by sailor \*  
> \*\*it is the protocol or language used to transfer the information. There are other protocols like ftp etc. \*\*

Is that file trading protocol?

---

<div class="post-metadata">

**Author:** ![Ice\_Wolf](https://avatars.discourse-cdn.com/v4/letter/i/dfb087/32.png) [@Ice\_Wolf](https://boards.straightdope.com/u/Ice_Wolf)\
**Post date:** [December 22, 2002, 12:44pm UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/11 "2002-12-22T12:44:54Z")

</div>

In this case, it stands for File Transfer Protocol, **SmileyDeath**.

---

<div class="post-metadata">

**Author:** ![black\_rabbit](https://avatars.discourse-cdn.com/v4/letter/b/f19dbf/32.png) [@black\_rabbit](https://boards.straightdope.com/u/black_rabbit)\
**Post date:** [December 22, 2002, 6:41pm UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/12 "2002-12-22T18:41:12Z")

</div>

Technically, the full url of, say, the Straight Dope Home Page should be something like:

[http://www.straightdope.com:80/](http://www.straightdope.com:80/)

…where the number is the port you use to connect to the server. Since virtually all web servers use port 80, though, you usually don’t have to worry about it.

---

<div class="post-metadata">

**Author:** ![black\_rabbit](https://avatars.discourse-cdn.com/v4/letter/b/f19dbf/32.png) [@black\_rabbit](https://boards.straightdope.com/u/black_rabbit)\
**Post date:** [December 22, 2002, 6:42pm UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/13 "2002-12-22T18:42:17Z")

</div>

Make that:

[http://www.straightdope.com:80/index.html](http://www.straightdope.com:80/index.html)

---

<div class="post-metadata">

**Author:** ![Sam\_Stone](https://avatars.discourse-cdn.com/v4/letter/s/ecccb3/32.png) [@Sam\_Stone](https://boards.straightdope.com/u/Sam_Stone)\
**Post date:** [December 22, 2002, 6:54pm UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/14 "2002-12-22T18:54:35Z")

</div>

The whole address is called a “URL”, or “Uniform Resource Locator”.

When you type that into your browser and hit enter, the request goes to a ‘name server’ which will look up the part after the HTTP: section, and resolve the name into a numeric computer address, called an “IP” address. Every computer on the internet has one. The request is then routed to that computer.

If you see a URL with a question mark in it, what you are seeing are ‘parameters’ or data that is passed to the receiving computer. For instance, the URL for this page is: “[http://boards.straightdope.com/sdmb/showthread.php?s=&threadid=151995](http://boards.straightdope.com/sdmb/showthread.php?s=&threadid=151995)”.

The part after the question mark is not used in resolving the address of the computer. It is ignored and passed along to the receiving computer, which is free to do anything with it it wants. THe software for the SDMB is designed so that all page requests can have certain defined parameters like threadid. when the SDMB server receives a request for ‘showthread.php’ (a page of code that will be executed), the showthread.php program reads the parameters, and knows that the other computer has requested to be given the page for threadid 151995.

This technique of passing data is known as using the ‘querystring’. Not all web sites use this. There are other ways to pass data back and forth between the server and client, but they are invisible and outside the scope of your question.

---

<div class="post-metadata">

**Author:** ![Sam\_Stone](https://avatars.discourse-cdn.com/v4/letter/s/ecccb3/32.png) [@Sam\_Stone](https://boards.straightdope.com/u/Sam_Stone)\
**Post date:** [December 22, 2002, 6:58pm UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/15 "2002-12-22T18:58:09Z")

</div>

I should add that when you purchase a domain name, what you are really doing is buying an entry into a name server’s database. These databases are kept by some ‘root nameservers’ run by companies like Internic. So if I had a computer with an IP address of 3.26.156.28, and I wanted to have a domain name of “[happyfunpundit.com](http://happyfunpundit.com)”, I’d pay a fee to Internic, and they will add the entry for [happyfunpundit.com](http://happyfunpundit.com), and assign it to 3.26.156.28. Now people can refer to my computer by name.

---

<div class="post-metadata">

**Author:** ![DRomm](https://avatars.discourse-cdn.com/v4/letter/d/ce73a5/32.png) [@DRomm](https://boards.straightdope.com/u/DRomm)\
**Post date:** [December 23, 2002, 8:16am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/16 "2002-12-23T08:16:50Z")

</div>

The technical explanation is longer (and hence you should pay me lots of money to tell you), but the basic explanation is that “http” is a ‘protocol’ (that is, type of connection) and “//:” is a UNIX thing, describing what your computer is looking for (in this case, a directory such as ‘www’).

Most browsers assume its users are idiots, and therefore the protocol is unnecessary when typing it in.

Hope this helps.

---

<div class="post-metadata">

**Author:** ![dylan\_73](https://avatars.discourse-cdn.com/v4/letter/d/ecccb3/32.png) [@dylan\_73](https://boards.straightdope.com/u/dylan_73)\
**Post date:** [December 23, 2002, 9:10am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/17 "2002-12-23T09:10:08Z")

</div>

www is not the directory, it’s the name of the machine. Obviously this is usually an alias. The format of a URL is protocol://machinename/directory/filename.extension

Directories are generally off the www-root which is specified for the web server. User directories are also allowed which usually default to ~username/public\_html. If a filename is not specified, it uses the specified default which is usually index.html.

I realise I’ve used “usually” a lot here, but that’s because all these settings can be changed.

---

<div class="post-metadata">

**Author:** ![Urban\_Ranger](https://avatars.discourse-cdn.com/v4/letter/u/e9c0ed/32.png) [@Urban\_Ranger](https://boards.straightdope.com/u/Urban_Ranger)\
**Post date:** [December 23, 2002, 11:51am UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/18 "2002-12-23T11:51:17Z")

</div>

> [@](#):
>
> \*Originally posted by black455 \*  
> \*\*Make that:
> 
> [http://www.straightdope.com:80/index.html](http://www.straightdope.com:80/index.html) \*\*

It depends. Some websites need the last part, esp. for personal homepages. Others don’t - the main page might not even be called “index.html.”

---

<div class="post-metadata">

**Author:** ![GuanoLad](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/guanolad/32/42_2.png) [@GuanoLad](https://boards.straightdope.com/u/GuanoLad)\
**Post date:** [December 23, 2002, 1:57pm UTC](https://boards.straightdope.com/t/what-does-all-that-http-mean/144317/19 "2002-12-23T13:57:36Z")

</div>

> [@](#):
>
> \*Originally posted by Urban Ranger \*  
> \*\*It depends. Some websites need the last part, esp. for personal homepages. Others don’t - the main page might not even be called “index.html.” \*\*

Servers need to be set up to recognise what the default page name is. The selection is usually:

index  
default  
home

with extensions of:

.htm  
.html  
.asp  
.php  
.php3

and a bunch of others.

If you are creating a webpage and for some peculiar reason you have a special name for your default home page, you can ask your sysadmin or ISP tech-head to define it for you.
