HTTP连接概述
HTTP 是个应用层协议。HTTP 无需操心网络通信的具体细节;它把联网的细节都交给了通用、可靠的因特网传输协议TCP/IP。
HTTP 协议位于TCP 的上层。HTTP 使用TCP 来传输其报文数据。与之类似,TCP 则位于IP 的上层。
在HTTP 客户端向服务器发送报文之前,需要用网际协议(IP)地址和端口号在客户端和服务器之间建立一条TCP/IP 连接。
在TCP 中,你需要知道服务器的IP 地址,以及与服务器上运行的特定软件相关的TCP 端口号。
例如:
http://207.200.83.29:80/index.html
http://www.netscape.com:80/index.html
http://www.netscape.com/index.html
第一个URL 使用了机器的IP 地址,207.200.83.29 以及端口号80。
第二个URL 没有使用数字形式的IP 地址,它使用的是文本形式的域名,或者称为主机名(www.netscape.com)。主机名就是IP 地址比较人性化的别称。可以通过一种称为域服务(Domain Name Service,DNS)的机制方便地将主机名转换为IP地址,这样所有问题就都解决了。
第三个URL 没有端口号。HTTP 的URL 中没有端口号时,可以假设默认端口号是80。有了IP 地址和端口号,客户端就可以很方便地通过TCP/IP 进行通信了。
基本的浏览器连接处理如下:
步骤如下:
(a) 浏览器从URL 中解析出服务器的主机名;
(b) 浏览器将服务器的主机名转换成服务器的IP 地址;
(c) 浏览器将端口号(如果有的话)从URL 中解析出来;
(d) 浏览器建立一条与Web 服务器的TCP 连接;
(e) 浏览器向服务器发送一条HTTP 请求报文;
(f) 服务器向浏览器回送一条HTTP 响应报文;
(g) 关闭连接,浏览器显示文档。