步骤如下:
- 浏览器从URL中解析出服务器的主机名;
- 浏览器通过域名服务(DNS,Domain Name Service)将服务器主机名转换成服务器的IP地址;
- 浏览器将端口号(如果有的话)从URL中解析出来;
- 浏览器建立一条与Web服务器的TCP连接;
- 浏览器向服务器发送一条HTTP请求报文;
- 服务器向浏览器回送一条HTTP响应报文;
- 关闭连接,浏览器显示文档;
概念介绍:
- URI:每个Web服务器资源都有一个名字,服务器资源名被称为统一资源标识符(Uniform Resource Identifier,URI)。
- URL:统一资源定位符,是资源标识符最常见的形式。URL描述了一台特点服务器上某资源的特定位置。
大部分URL都遵循一种标准格式:
a) URL的第一部分被称为方案(scheme),说明了访问资源所使用的协议类型。这部分通常是HTTP协议(http://)。
b)第二部分给出了服务器的因特网地址(比如,www.aimococo.com)。
c)其余部分指定了Web服务器上的某个资源(比如,/specials/saw-blade.gif)。
现在,几乎所有的URI都是URL。 - URN:URI的第二种形式就是统一资源名(URN)。URN是作为特定内容的唯一名称使用的,与目前的资源所在地无关。使用这些与位置无关的URN,就可以将资源四处搬移。通过URN,还可以用同一个名字通过多种网络访问协议来访问资源。比如,不论因特网标准文档RFC2141位于何处,都可以用下列URN来命名它:urn:ietf:rfc:2141 。URN仍处于试验阶段,还未大范围使用。
- 报文:HTTP报文是由一行一行的简单字符串组成的,都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写。比如:
a) 请求报文:
起始行 GET /test/hi-there.txt HTTP/1.0
首部 Accept:text/*
Accept-Language:en,fr
b) 响应报文:
起始行 HTTP/1.0 200 OK
首部 Content-type:text/plain
Content-length:19
主体 Hi! I’m a message!
- TCP/IP:HTTP是个应用层协议。HTTP无需操心网络通信的具体细节;它把联网的细节都交给了通用、可靠的因特网传输协议TCP/IP。
HTTP协议位于TCP的上层。HTTP使用TCP来传输其报文数据。HTTP(应用层) -> TCP(传输层) -> IP(网络层) -> 网络特有的链路接口(数据链路层) -> 物理网络硬件(物理层)。