用户在浏览器中输入一个url发生的奥秘
在HTTP 客户端向服务器发送报文之前,需要用网际协议(Internet Protocol,IP)地址和端口号在客户端和服务器之间建立一条TCP/IP 连接。
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 进行通信了。
基本的浏览器连接处理,如下图所示:
通讯步骤如下:
- 浏览器从URL中解析出服务器的主机名;
- 浏览器把服务器主机名转换为服务器的IP地址;
- 浏览器从URL中解析出与服务器端通讯的端口号(如果存在);
- 浏览器建立一条与web服务器的TCP连接;
- 浏览器向服务器发送一条HTTP请求报文;
- 服务器接收并返回一条HTTP响应报文给浏览器;
- 关闭连接,浏览器展示服务器返回的结果页面。