想要讨论JavaScript这门语言,就不得不从互联网开始,因为JavaScript是为互联网而生的。互联网中的每台计算机都有一个只属于自己的IP地址。计算机之间可以通过IP地址互相访问。有的计算机中存放着一些网页文件,专门供其他计算机查询浏览。我们把前者称为Web服务器,把后者称为客户机。Web服务器24小时连续工作,它里边始终运行着一个程序。这个程序监听着服务器的一个端口,一般是编号为80的端口。一旦有客户机发送请求到这个端口上,程序就马上把对方请求的网页发送过去。为了方便跟服务器打交道,客户机会借助Web浏览器这种软件实现上述操作。而网页文件都是用文本编写成的,它们本质上只是一种文本文档。服务器要做的就是把这些文本发送给客户机的浏览器。于是工程师们在两者之间建立起一种主要用于传输文本的规则,也就是我们经常提到的HTTP协议。下面是一个写在浏览器地址栏中的网页文件的地址(URL):
```
http://220.181.38.150:80/index.htm
```
其中,“http://”告知浏览器通信协议的类型。“220.181.38.150”是服务器的IP地址。“:80”表示要与对方的80号端口通信,“/index.htm”表示浏览器要请求的文件。不过,目前这个IP地址毫无逻辑,难以记忆。于是我们编排一组文字来代替数字,这串文字叫做**域名**。我们用“www.baidu.com”代替原来的IP地址,就可以把刚才的网页地址改写成下面的样子:
```
http://www.baidu.com:80/index.htm
```
遗憾的是,浏览器只能通过IP地址找到服务器。域名虽然方便记忆,但不能直接使用。我们把各种域名和对应的IP地址存放在一种特殊的服务器中。这种服务器就是域名解析服务器(DNS)。在访问网站之前,浏览器先把域名发送给DNS,DNS查到对应的IP地址再发回浏览器,这样就完成了从域名到IP地址的转换。你可能曾经遇到这样的状况,电脑无法访问网站,但是QQ和微信却正常通信。这就是DNS连接失败造成的,导致域名不能被转换成IP地址。而像QQ或者微信这类软件,它们直接使用IP地址交换数据,故不受影响。
书归正传,Web服务一般都使用80号端口,约定成俗。如果我们不写端口号,浏览器默认把请求发送到80号端口上。还有,大多数服务器程序都设置了默认的页面,如果我们不写明请求的文件,服务器程序会把默认的页面发送过来。所以,在浏览器的地址栏里,我们完全可以省略端口和请求的文件:
```
http://www.baidu.com
```
在现代的浏览器中,你甚至可以不写协议类型,也就是说可以省略“http://”,由服务器决定使用哪种协议进行通信。