HTTP概述

作者: TomGui | 来源:发表于2016-11-07 23:14 被阅读0次

1.1 HTTP——因特网的多媒体信使

HTTP使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,它也能够确保数据在传输的过程中不会被损坏或产生混乱。

1.2 Web客户端和服务器

1.3 资源

Web服务器是Web资源的宿主。Web资源是Web内容的源头。最简单的Web资源就是Web服务器文件系统中的静态文件。这些文件可以包含任意内容:文本文件、HTML文件、Word、JPEG、AVI文件,或所有其他你能够想到的格式。

但资源不一定非得是静态文件。资源还可以是根据需要生成内容的软件程序。这些动态内容资源可以根据你的身份、所请求的信息或每天的不同时段来产生内容。

1.3.1 媒体类型

因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过Web传输的对象都搭上了名为MIME类型(MIME type)的数据格式标签。最初设计MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)是为了解决在不同的电子邮件系统之间搬移报文时存在的问题。MIME在电子邮件系统中工作得非常好,因此HTTP也采纳了它,用它来描述并标记多媒体内容。

MIME类型是一种文本标记,标识一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔。

1.3.2 URI

服务器资源名被称为统一资源标识符(Uniform Resource Identifier,URI)。URI就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。URI有两种形式,分别称为URLURN

1.3.3 URL

统一资源定位符(URL)是资源标识符最常见的形式。

大部分URL都遵循一种标准格式,这种格式包含三个部分。

①URL的第一部分被称为方案(scheme),说明了访问资源所使用的协议类型。这部分通常就是HTTP协议(http://)。

②第二部分给出了服务器的因特网地址(比如,www.joes-hardware.com)

③其余部分指定了Web服务器上的某个资源(比如,/specials/saw-blade.gif)

1.3.4 URN

URI的第二种形式就是统一资源名(URN)。URN是作为特定内容的唯一名称使用的,与目前的资源所在地无关。使用这些与位置无关的URN,就可以将资源四处搬移。通过URN,还可以用同一个名字通过多种网络访问协议来访问资源。

1.4 事务

一个HTTP事务由一条(从客户端发往服务器的)请求命令和一个(从服务器发回客户端的)响应结果组成。这种通信是通过名为HTTP报文(HTTP message)的格式化数据块进行的

包含请求及响应报文的HTTP事务

1.4.1 方法

HTTP支持几种不同的请求命令,这些命令被称为HTTP方法(HTTP Method)。每条HTTP请求报文都包含一个方法。这个方法会告诉服务器要执行什么动作(获取一个Web页面、运行一个网关程序、删除一个文件等)。

常见的HTTP方法

1.4.2 状态码

每条HTTP响应报文返回时都会携带一个状态码。状态码是一个三位数的代码,告知客户端请求是否成功,或者是否需要采取其他动作。

常见的HTTP返回码

1.4.3 Web页面中可以包含多个对象

应用程序完成一项任务时通常会发布多个HTTP事务。比如,Web浏览器会发布一系列HTTP事务来获取并显示一个包含了丰富图片的Web页面。

复合Web页面要为每个嵌入式资源使用一个单独的HTTP事务

1.5 报文

HTTP报文是由一行一行的简单字符串组成的。HTTP报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写。

从Web客户端发往Web服务器的HTTP报文称为请求报文(request message)。从服务器发往客户端的报文称为响应报文(response message),此外没有其他类型的HTTP报文。

HTTP报文包括以下三个部分。
①起始行
    报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。
②首部字段
    起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首部字段和添加新行一样简单。
③主体
    空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给Web服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意的二进制数据(比如图片、视频、音频、软件程序)。当然,主体中也可以包括文本。

1.6 连接

1.6.1 TCP/IP

HTTP是个应用层协议。HTTP无需操心网络通信的具体细节;它把联网的细节都交给了通用、可靠的因特网传输协议TCP/IP。
TCP提供了:
1.无差错的数据传输
2.按序传输(数据总是会按照发送的顺序到达)
3.未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)

1.6.2 连接、IP地址及端口号

在HTTP客户端向服务器发送报文之前,需要用网际协议(Internet Protocal,IP)地址和端口号在客户端和服务器之间建立一条TCP/IP连接。
建立一条TCP连接的过程与给公司办公室的某个人打电话的过程类似。首先,要拨打公司的电话号码。这样就能进入正确的机构了。其次,拨打要联系的那个人的分机号。

步骤如下:
(a)浏览器从URL中解析出服务器的主机名
(b)浏览器将服务器的主机名转换成服务器的IP地址
(c)浏览器将端口号(如果有的话)从URL中解析出来
(d)浏览器建立一条与Web服务器的TCP连接
(e)浏览器向服务器发送一条HTTP请求报文
(f)服务器向浏览器会送一条HTTP响应报文
(g)关闭连接,浏览器显示文档

1.7 协议版本

1.HTTP/0.9
2.HTTP/1.0
3.HTTP/1.1
4.HTTP-NG(HTTP/2.0)

1.8 Web的结构组件

1.8.1 代理

位于客户端和服务器之间的HTTP中间实体,接收所有客户端的HTTP请求,并将这些请求转发给服务器(可能会对请求进行修改之后转发)。对用户来说,这些应用程序就是一个代码,代表用户访问服务器。

在客户端和服务器之间转发流量的代理

1.8.2 缓存

Web缓存(Web cache)或代理缓存(proxy cache)是一种特殊的HTTP代理服务器,可以将经过代理传送的日常文档复制保存起来。

保存常用文档本地副本以提高性能的代理缓存

1.8.3 网关

网关(gateway)是一种特殊的服务器,作为其他服务器的中间实体使用。通常用于将HTTP流量转换成其他协议。

HTTP/FTP网关

1.8.4 隧道

隧道(tunnel)是建立起来之后,就会在两条连接之间对原始数据进行盲转发的HTTP应用程序。HTTP隧道通常用来在一条或多条HTTP连接上转发非HTTP数据,转发时不会窥探数据。
HTTP隧道的一种常见用途是通过HTTP连接承载加密的安全套接字层(SSL,Secure Sockets Layer)流量,这样SSL流量就可以穿过只允许Web流量通过的防火墙了。

隧道可以在非HTTP网络上转发数据(显示的是HTTP/SSL隧道)

1.8.5 Agent代理

用户Agent代理(或者简称为Agent代理)是代表用户发起HTTP请求的客户端程序。比如:Web浏览器。

相关文章

  • HTTP概述

    HTTP HTTP 是什么 HTTP 全称 Hype Text Transfer Protocol(超文本传输协议...

  • Http概述

    Http概述 HTTP使用的是可靠的传输协议,即使数据是来自地球的另一端,它也能够确保数据在传输的过程中不会被损坏...

  • HTTP概述

    1.MIME 数据格式标签。当浏览器 从服务器取回一个对象。会先查看 MIME 类型。看是否能处理。MIME ty...

  • HTTP概述

    前言 HTTP = Hypertext Transfer Protocol = 超文本传输协议是在万维网上进行通信...

  • HTTP概述

    参考资料 《HTTP 权威指南》 引言 本篇简要介绍 HTTP 协议的一些概念,后续详细补充。 一、HTTP——因...

  • HTTP概述

    HTTP是一种能够获取如HTML这样网络资源的协议。它是Web上数据交换的基础,是一种client-server协...

  • HTTP概述

    媒体类型(MIME) Web服务器会为所有的HTTP对象数据附加一个MIME类型。当Web浏览器从服务器取回一个对...

  • HTTP概述

    HTTP是一种能够获取如HTML这样网络资源的协议。它是Web上数据交换的基础,是一种client-server协...

  • HTTP概述

    1.1 HTTP——因特网的多媒体信使 HTTP使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,它也能够...

  • HTTP概述

    HTTP/1.x 在早期,HTTP 使用一个简单的模型来处理这样的连接。这些连接的生命周期是短暂的:每发起一个请求...

网友评论

    本文标题:HTTP概述

    本文链接:https://www.haomeiwen.com/subject/hbwouttx.html