
1.3.3 HTTP请求/HTTP响应的详细过程
具体地讲,浏览器A访问Web服务器B的某个资源文件C时,需要首先在浏览器地址栏中输入http://,表示浏览器A准备使用HTTP访问Web服务器B上的资源文件C。当然,如今的浏览器已经不再需要在网址前面加上http://了,因为HTTP已经成为浏览器默认的通信协议。
浏览器A访问Web服务器B的某个资源文件C,浏览器A需要知道Web服务器B的IP地址。由于IP地址很难记住,因此出现了域名系统,域名系统将域名映射到IP地址。读者可将IP地址理解为Web服务器B的“电话号码”,域名相当于通讯录里Web服务器B电话号码对应的姓名。域名由DNS维护,DNS相当于全球的“电话号码簿”,确保姓名与电话号码真实有效、一一对应。以百度为例,61.135.169.125是百度某个服务器的IP地址,www.baidu.com是百度的域名,百度的IP地址与域名之间的对应关系由DNS负责维护。
除此之外,浏览器A还需知道Web服务器B上资源文件C的文件名。可是Web服务器B上的资源文件那么多,浏览器A如何知道Web服务器B上的资源文件名呢?答案是通过入口地址(也叫首页)得知。几乎每个Web项目都会提供一个入口地址,可能是index.jsp、index.html或者index.htm。
以百度为例,百度服务器上存在index.html资源文件,浏览器用户在浏览器地址栏输入网址http://www.baidu.com,实际上访问的是百度服务器上的index.html资源文件,继而看到了百度的首页。也可以输入完整的网址:http://www.baidu.com/index.html,打开百度的首页。
说明
index.html可以省略,这是因为index.html、index.jsp等资源文件是Web服务器的默认资源文件。
事实上,更为完整的网址应该是http://www.baidu.com:80/index.html,域名后的“:80”代表百度服务器的Web服务器软件运行在80端口上(稍后讲解端口号的概念)。
说明
“:80”可以省略,这是因为,默认情况下浏览器向Web服务器的80端口发送HTTP请求数据。