HTTP报文如何连接

TCP/IP

HTTP 是个应用层协议。HTTP 无需操心网络通信的具体细节;它把联网的细节都 交给了通用、可靠的因特网传输协议 TCP/IP。 TCP 提供了: 

• 无差错的数据传输;

• 按序传输(数据总是会按照发送的顺序到达);

• 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)。

HTTP 网络协议栈

 连接、IP地址及端口号

在 HTTP 客户端向服务器发送报文之前,需要用网际协议(Internet Protocol,IP) 地址和端口号在客户端和服务器之间建立一条 TCP/IP 连接。

在 TCP 中,你需要知道服务器的 IP 地址,以及与服务器上运行的特定软件相关的 TCP 端口号。

这就行了,但最初怎么获得 HTTP 服务器的 IP 地址和端口号呢?当然是通过 URL 了!我们前面曾提到过,URL 就是资源的地址,所以自然能够为我们提供存储资源 的机器的 IP 地址。

我们来看几个 URL:

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。

基本的浏览器连接处理

步骤如下:

(a) 浏览器从 URL 中解析出服务器的主机名;

(b) 浏览器将服务器的主机名转换成服务器的 IP 地址;

(c) 浏览器将端口号(如果有的话)从 URL 中解析出来;

(d) 浏览器建立一条与 Web 服务器的 TCP 连接;

(e) 浏览器向服务器发送一条 HTTP 请求报文;

(f) 服务器向浏览器回送一条 HTTP 响应报文;

(g) 关闭连接,浏览器显示文档。

猜你喜欢

转载自blog.csdn.net/weixin_42659625/article/details/82875530