一、因特网的多媒体信使
Web浏览器、服务器、和相关的Web应用都是通过HTTP相互通信的,HTTP使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,它也能确保数据在传输过程中不会被损坏或者产生混乱。
二、Web客户端和服务器
Web内容都是存储在Web服务器上的,Web服务器所使用的 是HTTP协议,因此会被成为HTTP服务器。如果Web客户端向服务器发出HTTP请求,服务器会在HTTP响应中回送所请求的数据(如果有的话)。如图:
三、资源
Web服务器是Web资源的宿主,Web资源是Web内容的源头。Web资源就是Web服务器文件系统中的静态文件和根据需求产生内容的的软件程序,静态文件包含了很多格式:文本文件,富文本文件(图片、电影、音乐等)。
3.1、媒体类型
互联网中成千上万的不同数据类型用MIME type 来表示。Web服务器为所有HTTP对象数据附加了一个MIME类型。MIME类型是一种文本标记,表示一种一种主要的对象类型和一个特定的子类型,中间用斜杠(/)隔开。常见的有:text/html、text/plaint、image/jpeg、image/gif 等类型。在请求头或者响应头中用Content-type:对象类型/子类型的形式来表示。
3.2、URI
服务器资源名被统一称为统一资源标识符,它就像互联网的邮件地址一样,在世界范围内唯一标识并定位信息资源。URI分为两类:URL和URN。
3.3、URL
URL是统一资源定位符的英文简称,是统一资源标识符的常见形式。URL描述了一台特定服务器上的某个特定资源。URL统一 遵循一个这样的格式:scheme://host/directory/../file,总的说来分为三个部分:
a、方案:说明了访问资源所使用的协议类型。比如:HTTP、FTP、RTSP 等。
b、服务器地址:某个资源所在服务器的IP地址。比如:8.8.8.8(也有可能是域名)。
c、指定的资源所在服务器的资源存在位置。比如:/works.html。
3.4、URN
URN是统一资源名的英文简称,其作为特定内容的唯一名称,与资源所在地无关。
四、事务
事务,一般是指要做的或所做的事情。HTTP事务是指从客户端发送一个HTTP请求开始到服务器返回一个HTTP响应结束的过程。所以:一条HTTP事务有一个请求命令和一个响应结果组成。
4.1、方法
HTTP支持几种不同的请求命令,这些命令被称为HTTP方法。每个HTTP请求报文都包含一个方法,这些方法主要有五种:
4.2、状态码
每个响应报文(在响应行中)都会附带一个状态码,状态码是一个三位数的代码,用于告知客户端请求是否成功,或者是否采取其他动作。伴随着状态码一起出现的还有一条解释性的“原因短语”文本,它是作为状态码的补充。状态码各个三位数 代表的意思请查看状态码合集。
4.3、Web页面中可以包含多个对象。
也即是:应用程序完成一项任务时通常会发布多个HTTP事务。比如一个Web页面的加载需要请求返回HTML页面的服务器,还要请求加载图片的服务器(服务器与之前一个可同可不同)。这是因为一个Web界面通常不只一个元素,而是一组元素。
五、报文
HTTP报文由一行行字符串组成,纯文本,包括请求报文和响应报文。请求报文是客户端发送到服务器的HTTP报文;响应报文是服务器发送到客户端的报文。HTTP报文包括三个部分:首行、首部字段和主体。如图:
六、连接
6.1、TCP/IP
TCP:传输控制协议的英文简称。HTTP协议是应用层协议,TCP是传输层协议。TCP的优点是:无差错的数据传输;按序传输;未分段的数据流(可以在任何时刻任意大小将将数据发送出去)。
TCP/IP协议:全世界的计算机和网络设备常用的层次化分组交换网络协议集。HTTP位于TCP上层,TCP位于IP上层。HTTP使用TCP来传输其报文数据。
6.2、连接、IP地址及端口号
在HTTP客户端向服务器发送报文的时候,需要 使用IP地址以及端口号在客户端和服务器之间建立一条TCP/IP连接。IP地址是:服务器的网络地址;端口号是与服务器上运行的特定软件相关的TCP连接唯一标识。这里是端口号合集
一般来说建立连接(浏览器为例)的步骤是:
a、浏览器从URL中解析出主机名;
b、浏览器将主机名转换成IP地址 ;
c、浏览器从URL中解析出端口号(如果没有,默认是80);
d、建立一条与Web服务器的TCP连接;
e、浏览器向服务器发送一条HTTP请求报文;
f、服务器向浏览器发送一条HTTP响应报文;
g、关闭连接,浏览器显示文档
七、协议版本
(略)
八、Web的结构组件
8.1、代理
位于服务器与客户端之间的中间实体。
8.2、缓存
HTTP的仓库,使常用的页面副本可以保存在离客户端更近的地方。
8.3、网关
一种特殊服务器,作为其他服务器的中间实体使用。通常将HTTP流量转换成其他协议。下面是 一个HTTP/FTP网关的示意图:
8.4、隧道
隧道是建立起来之后,就可以在两条连接之间对原始数据进行盲转发的HTTP应用程序。通常用来在一条或者多条HTTP连接上转发非HTTP数据,转发过程中不会窥探数据。
8.5、Agent代理
代表用户发起HTTP请求的客户端程序。有Web浏览器、网络爬虫、网络机器人等。
《完》