HTTP概述(二)

HTTP概述(一)这篇博客中,简单介绍了HTTP正式连接前的一些准备概念,那么现在开始正式介绍到底是如何进行、依靠什么进行连接的,下面开始讨论报文是如何通过传输控制协议连接(TCP)从一个地方搬运到另外一个地方的。

1、TCP/IP

先通过一个HTTP网络协议栈图来认识一下:


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

a)无差错的数据连接;

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

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

因特网自身就是基于TCP/IP的,TCP/IP是全世界的计算机和网络设备常用的层次化分组交换网络协议集。TCP/IP隐藏了各种网络和硬件的特点及弱点,使各种类型的计算机和网络都能够进行可靠地通信,可以这么认为只要建立了TCP连接,客户端和服务器端之间的保温交换就不会丢失,不会被破坏,同样也不会在接收时出错;

2、连接、IP地址及端口号

在HTTP客户端向服务器发送报文之前,需要使用网际协议地址(IP)和端口号在客户端和服务器端之间建立一条TCP/IP连接。使用IP地址和端口号类似于给某个公司办公室的人打电话,首先拨打公司的电话号码(等同于IP),这样可以找到公司机构,然后拨打分机号(端口号)找到要联系的那个人。

在TCP中,需要知道服务器的IP地址,光有地址还不够,试想一下只通过IP地址的话,只能找到网络上的某台主机服务器,但实际上这台服务器上运行着若干个程序,到底要连接哪个程序呢?端口号就是用来标识某台主机服务器上的特定软件的。换句话说有了IP地址和端口号,通过TCP协议就可以决定性地向网络上的某台主机上的特定软件发起连接,下面看几个URL:


第一个URL直接使用了IP地址和端口号,这样写肯定是可以连接到远程资源的,但是会发现没有规律的IP地址记忆是个很大的麻烦;

第二个URL没有使用数字形式的IP地址,它使用的是文本形式的域名,或者称为主机名。主机名就是IP地址比较人性化的别称,或者说主机名专门是为方便人的使用而设置的,它可以通过一种称为域名服务的机制方便的将主机名转换为IP地址;

最后一个URL没有端口号。HTTP中的URL没有端口号时,可以假设默认端口号为80;

有了IP地址和端口号,客户端可以很方便的通过TCP/IP进行通信,看如下一个简单的通讯实例:


具体步骤解释下:

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

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

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

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

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

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

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

2、HTTP的协议版本

现在使用的HTTP协议有几个版本。HTTP应用程序要尽量强健地处理各种不同的HTTP协议变体。目前仍在使用的版本如下:

3、Web的结构组件

除了上面介绍的那些以外,还有一些其它的比较重要的应用程序,简单地介绍一下,后期会专门主题讲解博客

●代理:位于客户端和服务器之间的HTTP中间实体。


●缓存:HTTP的仓库,使常用页面的副本可以保存在离客户端更近的地方。


●网关:连接其他应用程序的特殊的Web服务器。


●隧道:对HTTP通信报文进行盲转发的特殊代理。


●Agent代理:发起自动HTTP请求的半智能Web客户端。


好了,上面几个概念先通过几张图片做一个初步的了解,后期会进行详细讲解;

目前为止重点介绍了作为多媒体传输协议使用的HTTP。概要说明了HTTP是怎样使用URI来命名远程服务器上的多媒体资源的,粗略介绍了如何利用HTTP请求和相应报文操纵远程服务器上的多媒体资源,最后简述了几种使用HTTP的Web应用程序,后续会依次详细地介绍HTTP协议、应用程序及资源的技术原理等。


猜你喜欢

转载自blog.csdn.net/yu102655/article/details/52763053